Overview
With the e-invoice.be API you create, send and receive Peppol invoices and credit notes. The API converts each document to UBL BIS Billing 3.0 and transmits it on the Peppol network. This page is an overview. The endpoint pages in this tab give the parameters and the schemas of each operation. For the changes to the API and to this documentation, see the Changelog.Base URL
There is one API host:Develop and test with a sandbox company. A sandbox company runs in test mode: the API sends each document as UBL XML to the contact email address of the company, and nothing goes to the Peppol network. The API host and the endpoints are the same as for a production company. See Test mode and sandbox companies.
Authentication
Send the API key of your company as a bearer token in theAuthorization header:
Endpoints
Documents
Schemas: Document schema, LineItem schema.
Guides: Create e-invoices, Create credit notes, Self-billing and debit notes, Advanced invoicing, Send UBL documents, Create documents from PDF, Document lifecycle and delivery tracking.
Attachments
Guide: Attachments and PDF.
Document lists
Guides: Receive documents for requests, responses, inbox filters and the pattern to prevent double processing. List, filter and manage documents for filters, sort options and drafts.
Mailbox
Guide: Send invoices by email (Mailbox).
Validation
Validation is not a separate mandatory call.
POST /api/documents/ rejects a payload that does not pass the same rules. Use POST /api/validate/json while you develop, because it returns all rule failures and the generated UBL.Lookup
Guide: Look up Peppol participants.
PDF conversion
Guide: Create documents from PDF.
Webhooks
Guide: Webhooks.
Account and usage
Guides: Authentication, Usage statistics and credits.
Admin API for resellers
Resellers that manage more than one customer company use a separate Admin API. It requires an organisation API key and is available to approved resellers only. The Admin API endpoints are not in the OpenAPI specification. In the Admin API, the name of a company is “tenant”. With the Admin API you can:- Create and manage the companies of your customers
- Create and rotate the API keys of these companies
- Register these companies on the Peppol network
Admin API
Manage the companies of your customers as a reseller
Request and response format
Request format
Requests with a body use JSON, with the headerContent-Type: application/json. The endpoints that accept files (POST /api/documents/ubl, POST /api/documents/pdf, POST /api/validate/ubl, POST /api/conversion/pdf) use multipart/form-data.
406). Before you run this example, replace the vendor fields with those of your own company.
Response format
A successful request returns JSON with a2xx status code. This example shows the first fields of the response to a create request:
Error responses
The API returns these error status codes:400, 401, 403 (Admin API only), 404, 405, 406, 409, 415, 422, 429, 500. Most errors have this body:
Pagination
The document list endpoints (/api/inbox/, /api/outbox/, /api/drafts/) use page (default 1) and page_size (default 20, maximum 100). The response contains items, total, page, page_size, pages and has_next_page.
For filters, sort options and a loop sample, see List, filter and manage documents.
The Admin API list endpoints (
/api/admin/tenants and its API-key routes) use skip and limit parameters. See the Admin API.Rate limiting
The API applies a rate limit for each API key to these endpoints:POST /api/documents/andPOST /api/documents/ublPOST /api/validate/jsonandPOST /api/validate/ubl
429 Too Many Requests with a Retry-After header that contains a number of seconds. Do not write a fixed limit into your code. Read Retry-After and wait. See Rate limits.
Document states
You can send a document only when it is in the
DRAFT or FAILED state. For the transitions, the retry behaviour and the webhook events of each state, see Document lifecycle and delivery tracking.
To follow the state changes, use webhooks or the timeline. See Document lifecycle and delivery tracking for the state diagrams, the transitions and the timeline.
Supported currencies
Thecurrency field accepts these ISO 4217 codes:
EUR, USD, GBP, JPY, CHF, CAD, AUD, NZD, CNY, INR, SEK, NOK, DKK, SGD, HKD
The default is EUR.
Peppol participant IDs
A Peppol ID has the formatscheme:identifier. For example, a Belgian company uses the scheme 0208 with its enterprise number: 0208:1018265814.
For the list of schemes and for the lookup of a participant, see Look up Peppol participants.
OpenAPI specification
The reference is generated from theopenapi.json file in the docs repository, which a CI check compares with the live spec at https://api.e-invoice.be/api/openapi.json.
You can use the live specification to:
- Generate a client library in your programming language
- Import the API into a test tool (for example Postman or Insomnia)
- Validate request and response structures
Support
Support
Send an email to the support team
GitHub
See the open-source projects
Next Steps
Quickstart
Send a first invoice with a sandbox company
Authentication
Get and use an API key
Create e-invoices
Create and send an e-invoice
Validation during development
Validate invoices while you develop