← Documentatie / Handleidingen
Facturen verzenden en ontvangen via Peppol
Verbind het eigen Peppol-toegangspunt van uw bedrijf (Recommand, Storecove of e-invoice.be) met Nordlet, verstuur facturen en creditnota's via Peppol, volg de bezorging en zet ontvangen e-facturen om in inkoopfacturen.
Peppol is het Europese netwerk voor het uitwisselen van gestructureerde e-facturen tussen bedrijven en overheden. Elke factuur reist van het toegangspunt van de verzender naar het toegangspunt van de ontvanger. Nordlet maakt Peppol BIS Billing 3.0-facturen en -creditnota's aan, en verzendt en ontvangt deze via het eigen toegangspuntaccount van uw bedrijf.
Peppol stelt regels vast voor hoe toegangspunten documenten met elkaar uitwisselen, maar niet hoe uw software communiceert met uw eigen toegangspunt: elke provider heeft een eigen API. Nordlet werkt samen met deze providers:
| Provider | Verzenden | Bezorgstatus | Ontvangen |
|---|---|---|---|
| Recommand | ja | via webhook en op verzoek | ja |
| Storecove | ja | alleen via webhook | ja |
| e-invoice.be | ja | via webhook en op verzoek | ja |
Zonder toegangspunt maakt Nordlet nog steeds het Peppol-bestand aan van elke uitgegeven factuur en creditnota, zodat u dit kunt downloaden en op een andere manier kunt doorgeven; er wordt dan niets verzonden of ontvangen.
Wat u nodig hebt
- Een account bij een van de bovenstaande providers, waarbij uw bedrijf via die provider is geregistreerd op Peppol. Elke provider brengt kosten in rekening voor zijn dienst; raadpleeg hiervoor de desbetreffende prijslijst.
- In Nordlet het btw-nummer of KvK-nummer van het bedrijf, of het Peppol-ID van het bedrijf (Account → Bedrijven → Peppol-ID). Elke klant waarnaar u verzendt, moet dit ook hebben op de respectievelijke partnerkaart.
Uw toegangspunt verbinden
Open Account → Compliance → EU → Peppol-toegangspunt, kies uw provider bij Provider, vul de velden voor die provider in zoals hieronder beschreven en sla de wijzigingen op. Laat API-basis-URL leeg, tenzij uw provider u een afwijkend adres heeft verstrekt. Na het opslaan toont de pagina de Webhook-URL van uw bedrijf: https://api.nordlet.com/v1/peppol/webhooks/{provider}/{companyId}, waarbij {provider} gelijk is aan recommand, storecove of e-invoice-be en {companyId} het ID van uw bedrijf is. Elk Nordlet-bedrijf heeft een eigen webhook-URL.
Nordlet accepteert een webhook-aanroep alleen wanneer kan worden aangetoond dat het webhook-geheim bekend is, waardoor een aanroep die niet afkomstig is van uw toegangspuntaccount wordt geweigerd. Nordlet neemt alleen contact op met openbare internetadressen wanneer het uw toegangspunt aanroept.
Recommand
- Open uw bedrijf in Recommand en kopieer het bedrijfs-ID naar Account-ID bij het toegangspunt.
- Maak een API-sleutel aan in Recommand en kopieer de sleutel en bijbehorende geheime sleutel naar API-sleutel en API-geheim.
- Bedenk een lange, willekeurige tekst die alleen bij u en Recommand bekend is en voer deze in bij Webhook-geheim. Sla op.
- Maak in Recommand een webhook aan voor uw bedrijf met de webhook-URL die Nordlet toont en hetzelfde webhook-geheim.
Recommand ondertekent elke webhook-aanroep met dat geheim.
Storecove
- Maak in Storecove een rechtspersoon (legal entity) aan voor uw bedrijf, ingesteld om zowel te verzenden als te ontvangen, en kopieer het bijbehorende ID naar Account-ID bij het toegangspunt.
- Maak onder API-sleutels (API Keys) in Storecove een API-sleutel aan en kopieer deze naar API-sleutel. Laat API-geheim leeg.
- Bedenk een lange, willekeurige tekst en voer deze in bij Webhook-geheim. Sla op.
- Stel in Storecove een push-webhook in met de webhook-URL die Nordlet toont, beveiligd met HTTP Basic-authenticatie: een willekeurige gebruikersnaam en het webhook-geheim als wachtwoord.
Storecove heeft geen aanroep voor de status van een verzonden document, dus bij Storecove is de bezorgstatus uitsluitend afkomstig van de webhook en bevat de factuurpagina geen knop Peppol-status controleren. Een Storecove-sandboxaccount verzendt op het Peppol-testnetwerk; productie-API-sleutels zijn verkrijgbaar bij de ondersteuning van Storecove.
e-invoice.be
- Kopieer in de e-invoice.be-app onder API-instellingen (API Settings) de API-sleutel van uw bedrijf naar API-sleutel. Laat Account-ID bij het toegangspunt en API-geheim leeg. Sla op.
- Maak een webhook aan via de e-invoice.be-API (
POST https://api.e-invoice.be/api/webhooks/) met de webhook-URL die Nordlet toont en de gebeurtenissendocument.received,document.sentendocument.sent.failed. - Kopieer het
secretdat de API retourneert voor de nieuwe webhook naar Webhook-geheim in Nordlet en sla opnieuw op.
e-invoice.be ondertekent elke webhook-aanroep met dat geheim. Een sandboxbedrijf bij e-invoice.be e-mailt de documenten die het normaliter zou verzenden in plaats van ze via Peppol te versturen.
Een factuur verzenden
- Maak de factuur of creditnota aan.
- Controleer of de klant een Peppol-ID, btw-nummer of registratienummer heeft op de partnerkaart.
- Klik op de factuurpagina in de sectie Bezorging op Verzenden via Peppol en bevestig. De sectie Bezorging wordt getoond voor uitgegeven facturen die nog niet zijn betaald, en de knop verschijnt alleen wanneer het toegangspunt is verbonden.
Nordlet bouwt het Peppol-bestand en overhandigt dit aan uw toegangspunt. De factuurpagina toont vervolgens een sectie Peppol-bezorging:
| Status | Betekenis |
|---|---|
| pending | Overgedragen aan het toegangspunt; het toegangspunt van de klant heeft dit nog niet bevestigd |
| delivered | Het toegangspunt van de klant heeft bevestigd dat de factuur is ontvangen |
| rejected | De klant heeft de the factuur geweigerd; de reden wordt weergegeven onder de status |
| failed | De factuur kon niet worden bezorgd; de reden wordt weergegeven onder de status wanneer het toegangspunt er een verstrekt |
De status wordt automatisch bijgewerkt wanneer het toegangspunt een wijziging doorgeeft via de webhook. Met Peppol-status controleren kunt u direct de huidige status opvragen bij Recommand of e-invoice.be; bij e-invoice.be wordt hiermee tevens de factuurreactie van de klant uitgelezen, waarbij een weigering (responscode RE) wordt getoond als geweigerd. Een geweigerde of mislukte factuur kan opnieuw worden verzonden nadat u de oorzaak heeft verholpen. Wanneer het toegangspunt een factuur direct weigert, bijvoorbeeld omdat de klant niet op Peppol is geregistreerd, toont Nordlet de reden en blijft de factuur onverzonden.
Met de knop Peppol-XML bovenaan de factuurpagina kunt u hetzelfde Peppol-bestand downloaden zonder het te verzenden.
Een intracommunautaire levering vermeldt de factuurdatum als leveringsdatum en het land van de klant als land van levering, zoals vereist door de Peppol-regels.
Facturen ontvangen
Wanneer het toegangspunt een ontvangen document meldt via de webhook, downloadt Nordlet het Peppol-bestand van het toegangspunt. Facturen en creditnota's die uw bedrijf ontvangt, verschijnen bij Inkoop → Documentverwerking, gemarkeerd als ontvangen via Peppol van het Peppol-ID van de verzender. Nordlet leest het Peppol-bestand zelf uit, waardoor er voor het ontvangen geen tegoeden voor documentherkenning worden verbruikt.
- Open het ontvangen document.
- Controleer de leverancier, de datums en de regels; selecteer de leverancier uit uw partners of maak deze aan.
- Klik op Ontwerp opslaan. Nordlet maakt een concept-inkoopfactuur aan (of een concept-inkoopcreditnota voor een ontvangen creditnota), met het originele Peppol-bestand als bijlage. Registreer het document zoals elke andere inkoopfactuur.
Inkoopfactuurregels in Nordlet kunnen niet negatief zijn. Kortingen en toeslagen voor het gehele document, evenals negatieve regels, worden verdeeld over de regels met hetzelfde btw-tarief. Een bedrag dat door geen enkele regel met dat btw-tarief kan worden gedragen, zoals een geretourneerd artikel met een btw-tarief waarvoor de factuur geen andere regels bevat, wordt weergegeven in een tweede tabel: Creditnotaregels voor een ontvangen factuur, of Factuurregels voor een ontvangen creditnota. Die regels worden opgeslagen als een tweede document voor dezelfde leverancier: een inkoopcreditnota tegenover de nieuwe factuur, genummerd "
Controleren of een klant op Peppol zit
Met POST /v1/peppol/participants/lookup en een partnerId of een participantId ("
Hetzelfde doen via de API
| Taak | Aanroep |
|---|---|
| Het toegangspunt verbinden | POST /v1/declarations/configs/update met system: "peppol" en config met daarin provider (recommand, storecove of e-invoice-be), accountId, apiKey, apiSecret, webhookSecret en optioneel apiBaseUrl |
| De webhook van het toegangspunt ontvangen | POST /v1/peppol/webhooks/{provider}/{companyId}, aangeroepen door het toegangspunt |
| Het Peppol-bestand downloaden | POST /v1/sales/invoices/peppol-xml |
| Verzenden | POST /v1/sales/invoices/peppol-send (422 zonder toegangspunt) |
| De bezorgstatus uitlezen | POST /v1/sales/invoices/peppol-status (422 bij Storecove); facturen bevatten peppolMessageId, peppolStatus, peppolDetail, peppolSentAt, peppolCheckedAt |
| Ontvangen documenten opzoeken | POST /v1/capture/documents/list; ontvangen documenten hebben provider: "peppol" en senderId |
| Een document omzetten in een inkoopfactuur | POST /v1/capture/documents/confirm, met oppositeLines voor het tweede document |
Webhook-gebeurtenissen: sale_invoice.peppol_sent, sale_invoice.peppol_delivered, sale_invoice.peppol_rejected, sale_invoice.peppol_failed en document_capture.peppol_received. Raadpleeg API-conventies voor informatie over fouten, idempotentie en webhooks.