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 URLs
e-invoice.be provides two environments: Production:Key difference: Staging uses email delivery instead of the Peppol network. Documents are sent as UBL XML attachments to the
company_email address, making it perfect for testing without affecting real recipients. The same API credentials work in both environments.Environment Details
Learn more about production vs. staging environments
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/- List all documentsGET /api/documents/{id}- Get document detailsPOST /api/documents/{id}/send- Send document via PeppolDELETE /api/documents/{id}- Delete a document
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/{id}- Get received document detailsPOST /api/inbox/{id}/accept- Accept received invoicePOST /api/inbox/{id}/reject- Reject received invoice
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
List endpoints support pagination withskip and limit parameters:
skip- Number of records to skip (default: 0)limit- Maximum records to return (default: 100, max: 1000)
Rate Limiting
API requests are rate-limited to ensure service quality:- Standard tier: 100 requests per minute
- Premium tier: 1000 requests per minute
429 Too Many Requests with a Retry-After header.
Document States
Documents progress through different states:| State | Description |
|---|---|
DRAFT | Created but not sent |
TRANSIT | Being transmitted via Peppol |
SENT | Successfully delivered |
FAILED | Transmission failed |
RECEIVED | Received from another party |
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 multiple retry attempts over 24 hours before transitioning to FAILED. 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