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.
Create a production API key
In Developer portal › API keys, create a key under Production API keys. Give it Write access if it sends invoices. See Create an API key.
Link the production source
With Production selected, open Source management and link the source you added during onboarding to your integration mapping and the company’s branch. See Manage sources and their links.
Pass the required test cases
Check that the test cases for Belgium show Passed in Test your mapping. If your workspace uses the Default GETS Mapping, production documents are refused with 412 until they do.
Switch your requests to production
- Load the production key in place of the sandbox key.
- Send
"environment": "production"in every Unify request. - Set
sourceto the production source’sname:version. - If you use an SDK, change its environment setting to production. Each SDK guide shows where.
Check credits and webhooks
- In the Invoice Portal, open Credits with Production selected and check the balance. See Check your credit balance and usage.
- To receive purchase invoices from your suppliers through webhooks, create a separate webhook for Production that points to your live endpoint. See Set up a webhook.
Send the first production invoice
Send one real invoice to a buyer and follow it with its documentId until isTerminal is true. See Submit and retrieve. final_valid means it was accepted. rejected or final_invalid means it was not: 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.
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