Nordlet

← Grunnleggende / SDK-er

Utsending og mottak av fakturaer med Peppol

Koble din bedrifts egne Peppol-aksesspunkt (Recommand, Storecove eller e-invoice.be) til Nordlet, send fakturaer og kreditnotaer via Peppol, følg leveransen, og gjør mottatte e-fakturaer om til leverandørfakturaer.

Peppol er det europeiske nettverket for utveksling av strukturert e-faktura mellom bedrifter og offentlige organer. Hver faktura går fra avsenderens aksesspunkt til mottakerens aksesspunkt. Nordlet genererer Peppol BIS Billing 3.0-fakturaer og -kreditnotaer, og sender og mottar dem gjennom bedriftens egen aksesspunktkonto.

Peppol fastsetter reglene for hvordan aksesspunkter utveksler dokumenter med hverandre, men ikke hvordan programvaren din kommuniserer med ditt eget aksesspunkt: Hver leverandør har sin egen API. Nordlet fungerer sammen med følgende leverandører:

Leverandør Sender Leveringsstatus Mottar
Recommand ja via webhook og på forespørsel ja
Storecove ja kun via webhook ja
e-invoice.be ja via webhook og på forespørsel ja

Uten et aksesspunkt vil Nordlet fremdeles opprette Peppol-filen for hver utstedt faktura og kreditnota slik at du kan laste den ned og videresende den på en annen måte, men programvaren vil da hverken sende eller motta noen dokumenter.

Dette trenger du

  • En konto hos en av leverandørene ovenfor, der bedriften din er registrert på Peppol gjennom dem. Hver leverandør tar betalt for sin tjeneste; se deres respektive prislistene.
  • I Nordlet må bedriftens organisasjonsnummer, MVA-nummer eller Peppol-ID være fylt ut (Konto → Bedrifter → Peppol-ID). Hver kunde du sender til, må også ha minst ett av disse registrert på sitt partnerkort.

Sette opp aksesspunktet

Gå til Konto → Samsvar (Compliance) → EU → Peppol-aksesspunkt, velg leverandør i feltet Leverandør, fyll ut feltene for denne leverandøren som beskrevet nedenfor, og lagre. La feltet API-base-URL stå tomt med mindre leverandøren din har oppgitt en annen adresse. Etter lagring viser siden bedriftens Webhook-URL: https://api.nordlet.com/v1/peppol/webhooks/{provider}/{companyId}, der {provider} er recommand, storecove eller e-invoice-be, og {companyId} er bedriftens ID. Hver Nordlet-bedrift har sin egen webhook-URL.

Nordlet godtar kun webhook-kall som beviser at de kjenner webhook-hemmeligheten din, slik at kall som ikke kommer fra din aksesspunktkonto, blir avvist. Nordlet kontakter utelukkende offentlige internettadresser når programvaren ringer opp aksesspunktet ditt.

Recommand

  1. Åpne bedriften din i Recommand, og kopier bedrifts-ID-en inn i Konto-ID på aksesspunktet.
  2. Opprett en API-nøkkel i Recommand, og kopier nøkkelen og dens hemmelighet inn i API-nøkkel og API-hemmelighet.
  3. Finn på en lang, tilfeldig tekst som bare du og Recommand kjenner til, og skriv den inn i Webhook-hemmelighet. Lagre.
  4. Opprett en webhook for bedriften din i Recommand ved hjelp av webhook-URL-en som vises i Nordlet, og bruk den samme webhook-hemmeligheten.

Recommand signerer hvert webhook-kall med denne hemmeligheten.

Storecove

  1. Opprett en juridisk enhet (legal entity) for bedriften din i Storecove, sett den til å både sende og motta, og kopier ID-en inn i Konto-ID på aksesspunktet.
  2. Gå til API-nøkkel (API Keys) i Storecove, opprett en API-nøkkel, og kopier den inn i API-nøkkel. La API-hemmelighet stå tomt.
  3. Finn på en lang, tilfeldig tekst, og skriv den inn i Webhook-hemmelighet. Lagre.
  4. Sett opp en push-webhook i Storecove med webhook-URL-en fra Nordlet, beskyttet med HTTP Basic-autentisering: et valgfritt brukernavn, og webhook-hemmeligheten som passord.

Storecove har ikke anrop for statusen til et sendt dokument, så for Storecove hentes leveringsstatusen utelukkende fra deres webhook, og fakturasiden mangler knappen Sjekk Peppol-status. En Storecove-sandkassekonto sender på Peppol-testnettverket; produksjons-API-nøkler fås fra Storecove-brukerstøtten.

e-invoice.be

  1. Gå til API-innstillinger (API Settings) i e-invoice.be-appen, og kopier bedriftens API-nøkkel inn i API-nøkkel. La feltene Konto-ID på aksesspunktet og API-hemmelighet stå tomme. Lagre.
  2. Opprett en webhook via e-invoice.be-API-et (POST https://api.e-invoice.be/api/webhooks/) med webhook-URL-en som vises i Nordlet, og med hendelsene document.received, document.sent og document.sent.failed.
  3. Kopier secret-verdien som API-et returnerer for den nye webhooken, inn i feltet Webhook-hemmelighet i Nordlet, og lagre på nytt.

e-invoice.be signerer hvert webhook-kall med denne hemmeligheten. En sandkassebedrift hos e-invoice.be sender dokumentene via e-post i stedet for å sende dem over Peppol.

Sende en faktura

  1. Opprett fakturaen eller kreditnotaen.
  2. Kontroller at kunden har en Peppol-ID, et MVA-nummer eller et organisasjonsnummer registrert på sitt partnerkort.
  3. Gå til fakturasiden, finn seksjonen Levering, klikk på Send via Peppol, og bekreft. Leveringsseksjonen vises for utstedte fakturaer som ennå ikke er betalt, og knappen vises kun når aksesspunktet er tilkoblet.

Nordlet bygger Peppol-filen og overleverer den til aksesspunktet ditt. Fakturasiden vil deretter vise en seksjon for Peppol-levering:

Status Betydning
pending Overlevert til aksesspunktet; kundens aksesspunkt har ikke bekreftet mottaket ennå
delivered Kundens aksesspunkt har bekreftet mottak av fakturaen
rejected Kunden har avvist fakturaen; årsaken vises under statusen
failed Fakturaen kunne ikke leveres; årsaken vises under statusen hvis aksesspunktet oppgir en

Statusen oppdaterer seg automatisk når aksesspunktet melder om en endring via sin webhook. Sjekk Peppol-status henter gjeldende status direkte fra Recommand eller e-invoice.be. For e-invoice.be leser denne funksjonen også kundens faktasvar, og en avvisning (svarkode RE) vises som avvist. En avvist eller feilet faktura kan sendes på nytt etter at du har rettet opp årsaken. Dersom aksesspunktet avviser en faktura direkte, for eksempel fordi kunden ikke er registrert på Peppol, viser Nordlet årsaken, og fakturaen forblir usendt.

Knappen Peppol-XML øverst på fakturasiden laster ned den samme Peppol-filen uten å sende den.

For EU-intern handel benyttes fakturadatoen som leveringsdato og kundens land som leveringsland, i tråd med Peppol-reglene.

Motta fakturaer

Når aksesspunktet melder om et mottatt dokument via sin webhook, laster Nordlet ned Peppol-filen fra aksesspunktet. Fakturaer og kreditnotaer som bedriften din mottar, dukker opp under Kjøp → Dokumentmottak, markert som mottatt via Peppol fra avsenders Peppol-ID. Nordlet leser Peppol-filen selv, slik at mottak ikke forbruker noen dokumentgjenkjenningskvoter.

  1. Åpne det mottatte dokumentet.
  2. Kontroller leverandør, datoer og linjer, og velg leverandøren fra partnerne dine eller opprett en ny.
  3. Klikk på Lagre utkast. Nordlet oppretter et utkast til leverandørfaktura, eller et utkast til leverandørkreditnota hvis det gjelder en mottatt kreditnota, med den opprinnelige Peppol-filen vedlagt. Behandle den deretter på samme måte som en vanlig leverandørfaktura.

Leverandørfakturalinjer i Nordlet kan ikke være negative. Rabatter og gebyrer for hele dokumentet samt negative linjer fordeles på linjene med samme mva-sats. Beløp som ikke kan plasseres på noen linje med den aktuelle mva-satsen, for eksempel en returvare med en mva-sats som fakturaen ikke har andre linjer for, vises i en tabell nummer to: Kreditnotalinjer for en mottatt faktura, eller Fakturalinjer for en mottatt kreditnota. Disse linjene lagres som et eget dokument for samme leverandør: en leverandørkreditnota knyttet til den nye fakturaen med nummeret "-CR", eller en leverandørfaktura med nummeret "-INV". De to dokumentene utgjør til sammen totalen for det mottatte dokumentet.

Kontrollere om en kunde er på Peppol

POST /v1/peppol/participants/lookup med en partnerId eller en participantId (":") sjekker med Peppol-nettverket om mottakeren er registrert, og hvilke dokumenter vedkommende godtar. Dette fungerer uten et tilkoblet aksesspunkt.

Gjøre det samme via API-et

Oppgave Kall
Koble til aksesspunktet POST /v1/declarations/configs/update med system: "peppol" og config som inneholder provider (recommand, storecove eller e-invoice-be), accountId, apiKey, apiSecret, webhookSecret samt valgfri apiBaseUrl
Motta aksesspunktets webhook POST /v1/peppol/webhooks/{provider}/{companyId}, kalles av aksesspunktet
Laste ned Peppol-filen POST /v1/sales/invoices/peppol-xml
Sende POST /v1/sales/invoices/peppol-send (gir 422 uten aksesspunkt)
Lese leveringsstatus POST /v1/sales/invoices/peppol-status (gir 422 for Storecove); fakturaer inneholder feltene peppolMessageId, peppolStatus, peppolDetail, peppolSentAt, peppolCheckedAt
Finne mottatte dokumenter POST /v1/capture/documents/list; mottatte dokumenter har provider: "peppol" og senderId
Gjøre om et dokument til en leverandørfaktura POST /v1/capture/documents/confirm, med oppositeLines for det andre dokumentet

Webhook-hendelser: sale_invoice.peppol_sent, sale_invoice.peppol_delivered, sale_invoice.peppol_rejected, sale_invoice.peppol_failed og document_capture.peppol_received. Se API-konvensjoner for informasjon om feilmeldinger, idempotens og webhooks.