← Alapok / SDK-k
Számlák küldése és fogadása a Peppol hálózaton keresztül
Csatlakoztassa cége saját Peppol hozzáférési pontját (access point) a Nordlet rendszeréhez (Recommand, Storecove vagy e-invoice.be), küldjön számlákat és jóváíró számlákat a Peppolon keresztül, kövesse nyomon a kézbesítésüket, és alakítsa át a beérkezett e-számlákat szállítói számlákká.
A Peppol az európai hálózat, amelyet a vállalkozások és a közintézmények közötti strukturált e-számlák cseréjére hoztak létre. Minden egyes számla a feladó hozzáférési pontjától (access point) jut el a címzett hozzáférési pontjához. A Nordlet összeállítja a Peppol BIS Billing 3.0 formátumú számlákat és jóváíró számlákat, majd elküldi és fogadja azokat a vállalat saját hozzáférési pontján keresztül.
A Peppol szabályozza, hogy a hozzáférési pontok hogyan cserélnek dokumentumokat egymással, de azt nem, hogy az Ön szoftvere hogyan kommunikál a saját hozzáférési pontjával, mivel minden szolgáltatónak saját API-ja van. A Nordlet a következő szolgáltatókkal kompatibilis:
| Szolgáltató | Küldés | Kézbesítési státusz | Fogadás |
|---|---|---|---|
| Recommand | igen | webhookon keresztül és kérésre | igen |
| Storecove | igen | csak webhookon keresztül | igen |
| e-invoice.be | igen | webhookon keresztül és kérésre | igen |
Hozzáférési pont hiányában a Nordlet továbbra is előállítja minden kiállított számla és jóváíró számla Peppol-fájlját, amelyet letölthet és más módon továbbíthat; ilyenkor azonban küldést vagy fogadást nem végez.
Amire szüksége lesz
- Fiók a fenti szolgáltatók egyikénél, amelyen keresztül a cége regisztrálva van a Peppol hálózatban. Minden szolgáltató díjat számít fel a szolgáltatásáért; ezzel kapcsolatban tekintse meg az adott szolgáltató árlistáját.
- A cég adószáma vagy cégjegyzékszáma, illetve Peppol-azonosítója a Nordletben (Account → Companies → Peppol ID). Minden olyan vevőnek is rendelkeznie kell ezek valamelyikével, akinek számlát küld, a partnerkártyáján feltüntetve.
A hozzáférési pont csatlakoztatása
Nyissa meg a Account → Compliance → EU → Peppol access point menüpontot, válassza ki a szolgáltatót a Provider mezőben, töltse ki az adott szolgáltatóra vonatkozó alábbi mezőket, majd mentse el a beállításokat. Az API base URL mezőt hagyja üresen, kivéve, ha a szolgáltató ettől eltérő címet adott meg. Mmentés után az oldal megjeleníti a cég Webhook URL címét: https://api.nordlet.com/v1/peppol/webhooks/{provider}/{companyId}, ahol a {provider} a recommand, storecove vagy e-invoice-be érték, a {companyId} pedig a vállalat azonosítója. Minden Nordlet-vállalat saját webhook URL-címmel rendelkezik.
A Nordlet csak akkor fogad el webhookhívást, ha az igazolja a webhooktitok (webhook secret) ismeretét, így a hozzáférési pont fiókjától nem származó hívásokat a rendszer elutasítja. A Nordlet kizárólag a nyilvános internetes címekkel lép kapcsolatba a hozzáférési pont hívásakor.
Recommand
- Nyissa meg cégét a Recommand rendszerében, és másolja be a cégazonosítót (company ID) az Account ID at the access point mezőbe.
- Hozzon létre egy API-kulcsot (API key) a Recommandban, majd másolja a kulcsot és a titkos kulcsot az API key és az API secret mezőkbe.
- Találjon ki egy hosszú, véletlenszerű szöveget, amelyet csak Ön és a Recommand is ismer, és írja be a Webhook secret mezőbe. Mentse el a beállításokat.
- Hozzon létre egy webhookot a cégéhez a Recommandban a Nordlet által megjelenített Webhook URL-lel és ugyanezzel a webhooktitokkal.
A Recommand minden webhookhívást aláír ezzel a titkos kulccsal.
Storecove
- Hozzon létre egy jogi személyt (legal entity) a cégéhez a Storecove rendszerében, küldési és fogadási beállítással, majd másolja be az azonosítóját az Account ID at the access point mezőbe.
- Az API Keys menüpont alatt hozzon létre egy API-kulcsot a Storecove-ban, és másolja be az API key mezőbe. Az API secret mezőt hagyja üresen.
- Találjon ki egy hosszú, véletlenszerű szöveget, és írja be a Webhook secret mezőbe. Mentse el a beállításokat.
- Állítson be egy push webhookot a Storecove-ban a Nordlet által megjelenített Webhook URL-lel, HTTP alapú hitelesítéssel (HTTP Basic authentication) védve: bármilyen felhasználónévvel, és jelszóként a webhooktitokkal.
A Storecove nem rendelkezik az elküldött dokumentum státuszának lekérdezésére szolgáló hívással, így a Storecove esetében a kézbesítési státusz kizárólag a webhookján keresztül érkezik meg, és a számlaoldalon nem jelenik meg a Check Peppol status gomb. A Storecove tesztfiókja (sandbox) a Peppol teszthálózaton keresztül küld; az éles API-kulcsokat a Storecove ügyfélszolgálata biztosítja.
e-invoice.be
- Az e-invoice.be alkalmazásban az API Settings alatt másolja be a cég API-kulcsát az API key mezőbe. Az Account ID at the access point és az API secret mezőket hagyja üresen. Mentse el.
- Hozzon létre egy webhookot az e-invoice.be API-ján keresztül (
POST https://api.e-invoice.be/api/webhooks/) a Nordlet által megjelenített Webhook URL-lel, valamint adocument.received,document.sentésdocument.sent.failedeseményekkel. - Másolja be az API által az új webhookhoz visszaadott
secretértéket a Nordlet Webhook secret mezőjébe, majd mentse el újra.
Az e-invoice.be minden webhookhívást aláír ezzel a titkos kulccsal. Az e-invoice.be tesztcége (sandbox) a Peppol hálózaton való küldés helyett e-mailben küldi el az érintett dokumentumokat.
Számla küldése
- Állítsa ki a számlát vagy a jóváíró számlát.
- Ellenőrizze, hogy a vevő rendelkezik-e Peppol-azonosítóval, adószámmal vagy cégjegyzékszámmal a partnerkártyáján.
- A számlaoldalon, a Delivery szekcióban kattintson a Send via Peppol gombra, majd erősítse meg a műveletet. A Delivery szekció a még ki nem egyenlített, kiállított számlák esetében látható, a gomb pedig csak akkor jelenik meg, ha a hozzáférési pont csatlakoztatva van.
A Nordlet összeállítja a Peppol-fájlt, és átadja azt a hozzáférési pontnak. Ezt követően a számlaoldalon megjelenik a Peppol delivery szekció:
| Státusz | Jelentés |
|---|---|
| pending | Átadva a hozzáférési pontnak; a vevő hozzáférési pontja még nem erősítette meg |
| delivered | A vevő hozzáférési pontja megerősítette a számla fogadását |
| rejected | A vevő elutasította a számlát; az ok a státusz alatt látható |
| failed | A számlát nem sikerült kézbesíteni; az ok a státusz alatt látható, amennyiben a hozzáférési pont megadja azt |
A státusz automatikusan frissül, amikor a hozzáférési pont jelentést küld a változásról a webhookon keresztül. A Check Peppol status gomb azonnal lekérdezi az aktuális státuszt a Recommandtól vagy az e-invoice.be-től; az e-invoice.be esetében a vevő számlaválaszát is beolvassa, az elutasítást (RE válaszkód) pedig elutasítottként (rejected) jeleníti meg. Az elutasított vagy sikertelenül küldött számla a hiba okának kijavítása után újra elküldhető. Ha a hozzáférési pont határozottan elutasítja a számlát (például mert a vevő nincs regisztrálva a Peppol hálózatban), a Nordlet megjeleníti az okot, és a számla elküldetlen marad.
A számlaoldal tetején található Peppol XML gomb ugyanezt a Peppol-fájlt tölti le anélkül, hogy elküldené azt.
Az EU-n belüli értékesítések esetén a Peppol előírásainak megfelelően a teljesítési dátum as-is a kiállítási dátum, a teljesítési ország pedig a vevő országa lesz.
Számlák fogadása
Amikor a hozzáférési pont webhookon keresztül jelent egy beérkezett dokumentumot, a Nordlet letölti a Peppol-fájlt a hozzáférési pontról. A vállalat által fogadott számlák és jóváíró számlák a Purchases → Document capture menüpont alatt jelennek meg, Peppolón keresztül érkezettként megjelölve, a feladó Peppol-azonosítójával. Mivel a Nordlet maga olvassa be a Peppol-fájlt, a fogasztás nem von le dokumentumfelismerési krediteket.
- Nyissa meg a beérkezett dokumentumot.
- Ellenőrizze a szállítót, a dátumokat és a tételeket; válassza ki a szállítót a partnerek közül, vagy hozza létre úóként.
- Kattintson a Save draft gombra. A Nordlet létrehoz egy beszerzésiszámla-tervezetet vagy egy beszerzési jóváíró-számla tervezetet a beérkezett jóváíró számlához, amelyhez a eredeti Peppol-fájl csatolva van. Könyvelje le úgy, mint bármely más szállítói számlát.
A Nordlet szállítói számláinak tételei nem lehetnek negatív összegűek. A teljes dokumentumra vonatkozó árengedményeket és költségeket, valamint a negatív tételeket a rendszer az azonos ÁFA-kulcsú tételek között osztja szét. Az olyan összeget, amelyet a saját ÁFA-kulcsához tartozó egyetlen tétel sem tud felvenni (például egy olyan visszáru, amelynek ÁFA-kulcsához nincs más tétel a számlában), a rendszer egy második táblázatban jeleníti meg: beérkezett számla esetén a Credit note lines, beérkezett jóváíró számla esetén pedig az Invoice lines táblázatban. Ezeket a tételeket a rendszer egy második dokumentumként menti el ugyanahhoz a szállítóhoz: egy újabb számlával szembeni beszerzési jóváíró számlaként, a „<dokumentumszám>-CR” számozással, vagy egy „<dokumentumszám>-INV” számozású beszerzési számlaként. A két dokumentum együtt adja ki a beérkezett dokumentum összesen értékeit.
Annak ellenőrzése, hogy egy vevő szerepel-e a Peppol hálózatban
A POST /v1/peppol/participants/lookup végpont egy partnerId vagy participantId („
Ugyanez az API-n keresztül
| Feladat | Hívás |
|---|---|
| A hozzáférési pont csatlakoztatása | POST /v1/declarations/configs/update a system: "peppol" paraméterrel, valamint a config objektumban a provider (recommand, storecove vagy e-invoice-be), accountId, apiKey, apiSecret, webhookSecret és az opcionális apiBaseUrl megadásával |
| A hozzáférési pont webhookjának fogadása | POST /v1/peppol/webhooks/{provider}/{companyId}, amelyet a hozzáférési pont hív |
| A Peppol-fájl letöltése | POST /v1/sales/invoices/peppol-xml |
| Küldés | POST /v1/sales/invoices/peppol-send (hozzáférési pont nélkül 422-es hibát ad) |
| A kézbesítési státusz olvasása | POST /v1/sales/invoices/peppol-status (Storecove esetén 422-es hiba); a számlák a következő mezőket tartalmazzák: peppolMessageId, peppolStatus, peppolDetail, peppolSentAt, peppolCheckedAt |
| Beérkezett dokumentumok keresése | POST /v1/capture/documents/list; a beérkezettek a provider: "peppol" és senderId mezőkkel rendelkeznek |
| Átalakítás szállítói számlává | POST /v1/capture/documents/confirm, a második dokumentumhoz tartozó oppositeLines paraméterrel |
Webhook-események: sale_invoice.peppol_sent, sale_invoice.peppol_delivered, sale_invoice.peppol_rejected, sale_invoice.peppol_failed és document_capture.peppol_received. A hibákkal, az idempotenciával és a webhookokkal kapcsolatban lásd az API-konvenciókat.