Overview
The e-invoice.be API enables you to create, send, and manage Peppol-compliant e-invoices and credit notes. All invoices are automatically converted to UBL BIS Billing 3.0 format and transmitted via the Peppol network.Base URL
e-invoice.be runs on a single API host:Testing without Peppol: There is no separate staging or development host. To test without touching the Peppol network, use a sandbox company (a workspace in test mode). In test mode, documents are delivered as UBL XML attachments to the
company_email address instead of being transmitted over Peppol, and inbound documents are simulated — perfect for testing without affecting real recipients.Test Mode Details
Learn about test mode and sandbox companies
Authentication
All API requests require authentication using an API key in theAuthorization header:
API Structure
The e-invoice.be API is organized into several main sections:Documents
Create, manage, and send invoices and credit notes via Peppol. Key Endpoints:POST /api/documents/- Create a new documentGET /api/documents/{id}- Get document detailsPOST /api/documents/{id}/send- Send document via PeppolDELETE /api/documents/{id}- Delete a document
GET /api/outbox/ (sent documents) and GET /api/inbox/ (received documents).
Schemas:
Related Guides:
Validation
Validate invoice JSON or UBL XML before creating documents. Key Endpoints:POST /api/validate/json- Validate JSON invoice dataPOST /api/validate/ubl- Validate UBL XMLGET /api/validate/peppol-id- Verify Peppol participant ID
Inbox
Receive and manage incoming invoices from other Peppol participants. Key Endpoints:GET /api/inbox/- List received documentsGET /api/inbox/invoices- List received invoicesGET /api/inbox/credit-notes- List received credit notes
GET /api/documents/{id}.
Lookup
Search for Peppol participants and verify their registration status. Key Endpoints:GET /api/lookup/participants- Search for participantsGET /api/lookup- Get participant details
Alternative Formats
Create documents from UBL XML or PDF files. Key Endpoints:POST /api/documents/ubl- Create from UBL XMLPOST /api/documents/pdf- Create from PDF (with metadata)
Webhooks
Configure webhook endpoints to receive real-time notifications about document events. Key Endpoints:GET /api/webhooks/- List webhook subscriptionsPOST /api/webhooks/- Create webhook subscriptionDELETE /api/webhooks/{id}- Delete webhook subscription
Admin API (Resellers Only)
For resellers and service providers managing multiple customer organizations, we provide a separate Admin API with organization-level capabilities:- Tenant Management - Create and manage customer organizations
- API Key Provisioning - Generate API keys for customers
- Peppol Registration - Register customers on the Peppol network
- Credential Rotation - Manage API keys without customer involvement
Admin API Documentation
Complete guide to the Admin API for managing customer tenants (resellers only)
Request & Response Format
Request Format
All requests use JSON format:Response Format
Successful responses return JSON with a 2xx status code:Error Responses
Errors return JSON with an appropriate HTTP status code:400 Bad Request- Invalid request data401 Unauthorized- Missing or invalid API key404 Not Found- Resource not found422 Unprocessable Entity- Validation error429 Too Many Requests- Rate limit exceeded500 Internal Server Error- Server error
Pagination
Document list endpoints (inbox and outbox) support pagination withpage and page_size parameters:
page- Page number (default: 1)page_size- Number of items per page (default: 20, max: 100)
The Admin API list endpoints (
/api/admin/tenants and its API-key routes) use skip and limit parameters instead. See the Admin API documentation.Rate Limiting
Write and validation endpoints are rate-limited per API key to ensure service quality. The limit applies to:POST /api/validate/jsonandPOST /api/validate/ublPOST /api/documents/andPOST /api/documents/ubl
GET /api/documents/{id}, inbox, and outbox) are not rate-limited.
Exceeding a limit returns 429 Too Many Requests with a Retry-After header indicating the number of seconds to wait before retrying. Clients should honor Retry-After and use exponential backoff.
Document States
Documents progress through different states:Outbound Document Flow
Documents you create and send follow this state progression:
Automatic Retry Strategy: Documents in
TRANSIT state use an exponential backoff strategy with 10 retry attempts before transitioning to FAILED. Retry delays are: 1, 2, 4, 8, 16, 32, 64, 128, 256, and 360 minutes (final retry capped at 6 hours). This ensures maximum delivery success even during temporary network issues or recipient downtime.Manual Retry: Documents in FAILED state can be retried by calling POST /api/documents/{id}/send again, which will transition them back to TRANSIT for another delivery attempt.Coming soon: Detailed transmission attempt history will be available in a future release, allowing you to view all retry attempts, timestamps, and failure reasons for each transmission.Inbound Document Flow
Documents received from other Peppol participants:
Supported Currencies
The API supports the following ISO 4217 currency codes:EUR, USD, GBP, JPY, CHF, CAD, AUD, NZD, CNY, INR, SEK, NOK, DKK, SGD, HKD
Default: EUR
Peppol Participant IDs
Peppol IDs use the formatscheme:identifier:
Common schemes:
- Belgium:
0208:0123456789(CBE number) - Netherlands:
0106:12345678(KVK number) - Germany:
0204:DE123456789(VAT number) - France:
0009:12345678901234(SIRET)
Getting Started
Quickstart
Get started in 5 minutes
Authentication
Set up API authentication
Creating Invoices
Learn how to create e-invoices
Validation
Validate before sending
OpenAPI Specification
The complete OpenAPI specification is available at:- Generate client libraries in your programming language
- Import into API testing tools (Postman, Insomnia, etc.)
- Validate request/response structures
Need Help?
Support
Contact our support team
GitHub
View our open-source projects