← Dokumentation / Guides
Afsendelse og modtagelse af fakturaer med Peppol
Forbind din virksomheds eget Peppol-adgangspunkt (Recommand, Storecove eller e-invoice.be) til Nordlet, send fakturaer og kreditnotaer via Peppol, følg deres levering, og omdan modtagne e-fakturaer til købsfakturaer.
Peppol er det europæiske netværk til udveksling af strukturerede e-fakturaer mellem virksomheder og offentlige myndigheder. Hver enkelt faktura bevæger sig fra afsenderens adgangspunkt til modtagerens adgangspunkt. Nordlet opretter Peppol BIS Billing 3.0-fakturaer og -kreditnotaer og sender og modtager dem via din virksomheds egen adgangskonto.
Peppol fastsætter reglerne for, hvordan adgangspunkter udveksler dokumenter med hinanden, men ikke hvordan din software kommunikerer med dit eget adgangspunkt: Hver udbyder har sin egen API. Nordlet fungerer sammen med følgende udbydere:
| Udbyder | Sender | Leveringsstatus | Modtager |
|---|---|---|---|
| Recommand | ja | via webhook og efter anmodning | ja |
| Storecove | ja | kun via webhook | ja |
| e-invoice.be | ja | via webhook og efter anmodning | ja |
Uden et adgangspunkt genererer Nordlet stadig Peppol-filen for hver udstedt faktura og kreditnota, så du kan downloade den og videresende den på en anden måde; systemet sender eller modtager dog intet automatisk.
Hvad du skal bruge
- En konto hos en af ovenstående udbydere, hvor din virksomhed er registreret på Peppol gennem denne. Hver udbyder opkræver betaling for sin tjeneste, se deres respektive prislister.
- I Nordlet skal virksomhedens CVR-nummer, registreringsnummer eller Peppol-id være udfyldt (Konto → Virksomheder → Peppol-id). Hver kunde, du sender til, skal også have en af disse oplysninger på sit stamkort.
Forbindelse af dit adgangspunkt
Åbn Konto → Overholdelse → EU → Peppol-adgangspunkt, vælg din udbyder under Udbyder, udfyld felterne for den pågældende udbyder som beskrevet herunder, og gem. Lad feltet API-basis-URL stå tomt, medmindre din udbyder har givet dig en anden adresse. Efter lagring viser siden din virksomheds Webhook-URL: https://api.nordlet.com/v1/peppol/webhooks/{provider}/{companyId}, hvor {provider} er recommand, storecove eller e-invoice-be, og {companyId} er din virksomheds id. Hver Nordlet-virksomhed har sin egen webhook-URL.
Nordlet accepterer kun et webhook-kald, hvis det beviser kendskab til din webhook-hemmelighed (webhook secret), så et kald, der ikke stammer fra din adgangskonto, afvises. Nordlet kontakter kun offentlige internetadresser, når systemet kalder dit adgangspunkt.
Recommand
- Åbn din virksomhed i Recommand, og kopier dens virksomheds-id ind i Konto-id ved adgangspunktet.
- Opret en API-nøgle i Recommand, og kopier nøglen samt dens hemmelighed ind i API-nøgle og API-hemmelighed.
- Find på en lang, tilfældig tekst, som kun du og Recommand kender, og indtast den i Webhook-hemmelighed. Gem.
- Opret en webhook for din virksomhed i Recommand ved hjælp af den webhook-URL, som Nordlet viser, og den samme webhook-hemmelighed.
Recommand signerer hvert webhook-kald med denne hemmelighed.
Storecove
- Opret en juridisk enhed (legal entity) for din virksomhed i Storecove, indstillet til både at sende og modtage, og kopier dens id ind i Konto-id ved adgangspunktet.
- Opret en API-nøgle under API-nørkler (API Keys) i Storecove, og kopier den ind i API-nøgle. Lad feltet API-hemmelighed stå tomt.
- Find på en lang, tilfældig tekst, og indtast den i Webhook-hemmelighed. Gem.
- Opsæt en push-webhook i Storecove med den webhook-URL, som Nordlet viser, beskyttet med HTTP Basic-godkendelse: et vilkårligt brugernavn og webhook-hemmeligheden som adgangskode.
Storecove har ikke et kald til forespørgsel på status for et sendt dokument, så ved Storecove kommer leveringsstatus udelukkende via deres webhook, og fakturasiden indeholder derfor ikke knappen Kontroller Peppol-status. En Storecove-sandkassekonto sender på Peppol-testnetværket, og produktions-API-nøgler fås ved at kontakte Storecoves support.
e-invoice.be
- Under API-indstillinger i e-invoice.be-appen skal du kopiere din virksomheds API-nøgle ind i feltet API-nøgle. Lad felterne Konto-id ved adgangspunktet og API-hemmelighed stå tomme. Gem.
- Opret en webhook via e-invoice.be API'et (
POST https://api.e-invoice.be/api/webhooks/) med den webhook-URL, som Nordlet viser, samt hændelsernedocument.received,document.sentogdocument.sent.failed. - Kopier den
secret, som API'et returnerer for den nye webhook, ind i Webhook-hemmelighed i Nordlet, og gem igen.
e-invoice.be signerer hvert webhook-kald med denne hemmelighed. En sandkassevirksomhed hos e-invoice.be sender de pågældende dokumenter via e-mail i stedet for at sende dem over Peppol.
Afsendelse af en faktura
- Udsted fakturaen eller kreditnotaen.
- Kontroller, at kunden har et Peppol-id, CVR-nummer eller registreringsnummer på sit stamkort.
- På fakturasiden skal du under afsnittet Levering klikke på Send via Peppol og bekræfte. Leveringsafsnittet vises for udstedte fakturaer, der endnu ikke er betalt, og knappen vises kun, når adgangspunktet er forbundet.
Nordlet danner Peppol-filen og overdrager den til dit adgangspunkt. Fakturasiden viser derefter et afsnit med Peppol-levering:
| Status | Betydning |
|---|---|
| pending | Overdraget til adgangspunktet; kundens adgangspunkt har endnu ikke bekræftet modtagelsen |
| delivered | Kundens adgangspunkt har bekræftet modtagelse af fakturaen |
| rejected | Kunden har afvist fakturaen; årsagen vises under status |
| failed | Fakturaen kunne ikke leveres; årsagen vises under status, hvis adgangspunktet angiver en |
Status opdateres automatisk, når adgangspunktet rapporterer en ændring via sin webhook. Kontroller Peppol-status forespørger straks hos Recommand eller e-invoice.be om den aktuelle status; ved e-invoice.be læser funktionen desuden kundens fakturasvar, og en afvisning (svarkode RE) vises som afvist. En afvist eller fejlet faktura kan sendes igen, når du har rettet årsagen. Hvis adgangspunktet afviser en faktura direkte, eksempelvis fordi kunden ikke er registreret på Peppol, viser Nordlet årsagen, og fakturaen forbliver usendt.
Knappen Peppol XML øverst på fakturasiden downloader den samme Peppol-fil uden at sende den.
Et EU-internt leveringssalg angiver faktureringsdatoen som leveringsdato og kundens land som leveringsland i overensstemmelse med Peppol-reglerne.
Modtagelse af fakturaer
Når adgangspunktet rapporterer et modtaget dokument via sin webhook, downloader Nordlet Peppol-filen fra adgangspunktet. Fakturaer og kreditnotaer, som din virksomhed modtager, vises under Køb → Dokumentfangst, markeret som modtaget over Peppol fra afsenderens Peppol-id. Nordlet læser selv Peppol-filen, hvorfor modtagelsen ikke forbruger point til dokumentgenkendelse.
- Åbn det modtagne dokument.
- Kontroller leverandøren, datoerne og linjerne; vælg leverandøren blandt dine partnere, eller opret den.
- Klik på Gem kladde. Nordlet opretter en købsfakturaudkast (eller et købskreditnotaudkast for en modtaget kreditnota) med den originale Peppol-fil vedhæftet. Bogfør den som enhver anden købsfaktura.
Nordlets købsfakturalinjer kan ikke være negative. Rabatter og gebyrer for hele dokumentet samt negative linjer fordeles på linjerne med samme momssats. Et beløb, som ingen linje med den pågældende momssats kan bære (såsom en returvare med en momssats, som fakturaen ikke har andre linjer til), vises i en anden tabel: Kreditnotalinjer for en modtaget faktura eller Fakturalinjer for en modtaget kreditnota. Disse linjer gemmes som et ekstra dokument for den samme leverandør: en købskreditnota knyttet til den nye faktura med nummeret "
Kontrol af om en kunde er på Peppol
POST /v1/peppol/participants/lookup med et partnerId eller et participantId ("
Gør det samme via API'et
| Opgave | Kald |
|---|---|
| Forbind adgangspunktet | POST /v1/declarations/configs/update med system: "peppol" og config indeholdende provider (recommand, storecove eller e-invoice-be), accountId, apiKey, apiSecret, webhookSecret og eventuelt apiBaseUrl |
| Modtag adgangspunktets webhook | POST /v1/peppol/webhooks/{provider}/{companyId}, der kaldes af adgangspunktet |
| Download Peppol-filen | POST /v1/sales/invoices/peppol-xml |
| Send | POST /v1/sales/invoices/peppol-send (returnerer 422 uden et adgangspunkt) |
| Læs leveringsstatus | POST /v1/sales/invoices/peppol-status (returnerer 422 med Storecove); fakturaer indeholder peppolMessageId, peppolStatus, peppolDetail, peppolSentAt, peppolCheckedAt |
| Find modtagne dokumenter | POST /v1/capture/documents/list; modtagne dokumenter har provider: "peppol" og senderId |
| Omdan et dokument til en købsfaktura | POST /v1/capture/documents/confirm med oppositeLines for det andet dokument |
Webhook-hændelser: sale_invoice.peppol_sent, sale_invoice.peppol_delivered, sale_invoice.peppol_rejected, sale_invoice.peppol_failed og document_capture.peppol_received. Se API-konventioner vedrørende fejl, idempotens og webhooks.