Sending Sales Invoices with Peppol
Send sales invoices to your customers through the Peppol network directly from your integration.
Overview
Peppol enables secure, standards-based e-invoicing between organizations. This guide focuses on sending a sales invoice with Peppol. It follows a similar flow as Creating Sales Invoices, but adds the Peppol-specific requirements.
Prerequisites
- You have an access token and your administration ID. See Getting started and Authentication.
- Your administration is registered for Peppol. Follow the signup steps in the Moneybird Help Center: Aanmelden voor Peppol.
- Your customer (contact) has a Peppol identifier on file (
si_identifier_type
andsi_identifier
). For Dutch KVK this issi_identifier_type
=0106
andsi_identifier
= your customer’s KVK number.
Tip: You can verify a registration via Participant Lookup by entering
0106
and the KVK number as described in the signup article above.
Step-by-step
1. Ensure Peppol is enabled for your administration
Follow the steps in the Help Center article to enable Peppol in your Moneybird account: Aanmelden voor Peppol.
2. Create or update the contact with a Peppol identifier
The contact must include a valid Peppol identifier so we can deliver via the network. You can also set the contact’s preferred delivery_method
to Peppol
.
Create a new contact with a Peppol identifier:
Code
Update an existing contact to add a Peppol identifier (if needed):
Code
Notes:
- A contact requires a non-blank
company_name
,firstname
, orlastname
. country
should be an ISO 3166-1 alpha-2 code (e.g.,NL
,DE
).si_identifier_type
accepts specific codes (e.g.,0106
for Dutch KVK). Use the appropriate code for your market.
3. Create the sales invoice (draft)
Create a draft sales invoice that references the contact:
Code
4. Send the invoice with Peppol
Send the draft invoice through Peppol by specifying delivery_method: Peppol
in the send request:
Code
After sending, the invoice status changes from "draft" to "open". Track status changes with Webhooks or by polling the invoice resource.
Troubleshooting
- Delivery fails with validation errors (422): Ensure the contact has a valid
si_identifier_type
andsi_identifier
, and your administration is Peppol-enabled. - Customer not found on Peppol: Confirm the correct identifier (e.g., KVK for NL with type
0106
) and verify registration via Participant Lookup as noted in the Aanmelden voor Peppol article.