Go live in Belgium
Work through this checklist before you send Belgian invoices over Peppol in production. You need Belgian documents that already pass in sandbox and the company's registered Peppol details.
Onboard the company in production
A company onboarded in sandbox is not registered in production.
- In the Invoice Portal, select Belgium and Production.
- Follow Onboard a Belgian company with the company’s real details.
- In the Peppol setup, register a participant or use the company’s existing participant ID. Never use a test ID in production.
Open Onboard and wait until the company’s registration is complete. A Pending registration is not ready to send invoices.
Move your integration to production
- Create a key under Production API keys with Write access. See Create an API key.
- With Production selected, link the source you added during onboarding to your mapping and the company’s branch. See Manage sources and their links.
- Send
"environment": "production"and the production source’sname:versionin every Unify request. If you use an SDK, change its environment setting; each SDK guide shows where. - Check the production credit balance in Credits. To receive purchase invoices from your suppliers through webhooks, create a separate production webhook. See Credits and Set up a webhook.
Check the required test cases
If your workspace uses the Default GETS Mapping, the test cases for Belgium must show Passed in Test your mapping. Until they do, Unify refuses invoices with 412 and failed_precondition, in sandbox and in production.
Send the first production invoice
Send one real invoice to a buyer and follow it with its documentId. See Submit and retrieve. For Belgium, Complyance’s last step is delivering the invoice to the buyer’s Peppol access point: the Invoice Portal then shows it as Submitted, with delivery Delivered. The API does not report final_valid for a Belgian invoice, and isTerminal stays false after delivery. Stop checking when state is delivery_success or delivery_failed. rejected means it failed validation: read errors for the reason. Confirm with the buyer that the invoice arrived.
Belgian checks
- Replace every sample participant ID from your tests with the real, registered IDs of both parties. With scheme
0208, the ID is the ten-digit enterprise number without theBEprefix. - Include a buyer reference or a purchase order reference on every invoice.
- Check each document type against the Belgium field reference and the validation rules.
If something goes wrong
The company stays Pending: use Refresh status if it is offered, and check again later.
403 with permission_denied: the key is a sandbox key. Use a production key with "environment": "production".
412 with failed_precondition: the required test cases for Belgium have not all passed. Run them, then send the document again. Unify errors lists each reason.
The buyer does not receive the invoice: check the buyer’s participant ID and scheme with them, then check the document’s status.
Last updated