Nordlet

← 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. Találjon ki egy hosszú, véletlenszerű szöveget, és írja be a Webhook secret mezőbe. Mentse el a beállításokat.
  4. Á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

  1. 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.
  2. 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 a document.received, document.sent és document.sent.failed eseményekkel.
  3. 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

  1. Állítsa ki a számlát vagy a jóváíró számlát.
  2. Ellenőrizze, hogy a vevő rendelkezik-e Peppol-azonosítóval, adószámmal vagy cégjegyzékszámmal a partnerkártyáján.
  3. 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.

  1. Nyissa meg a beérkezett dokumentumot.
  2. 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.
  3. 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 („:”) megadásával lekérdezi a Peppol hálózattól, hogy a címzett regisztrálva van-e, és milyen dokumentumokat fogad. Ez a művelet hozzáférési pont nélkül is működik.

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.