Peppol Gateway
Send e-invoices directly via the Peppol network to authorities and businesses across Europe. Including delivery confirmation and status tracking.
What is Peppol?
Peppol (Pan-European Public Procurement OnLine) is a pan-European network for the secure exchange of e-invoices and other business documents.
Peppol dispatch over AS4 is planned for Q1/2027. Until then the API delivers the finished Peppol BIS 3.0 document; certificates, SMP lookup and AS4 transport stay with your access point.
Send Invoice
1curl -X POST https://service.invoice-api.xhub.io/api/v1/peppol/send \2 -H "Authorization: Bearer sk_live_abc123..." \3 -H "Content-Type: application/json" \4 -d '{5 "invoiceId": "inv_xyz789",6 "recipient": {7 "peppolId": "0204:DE123456789",8 "name": "Behörde XY"9 }10 }'Alternative: Direct with XML
1curl -X POST https://service.invoice-api.xhub.io/api/v1/peppol/send \2 -H "Authorization: Bearer sk_live_abc123..." \3 -H "Content-Type: application/json" \4 -d '{5 "xml": "<?xml version=\"1.0\"?>\n<Invoice>...</Invoice>",6 "format": "xrechnung-3.0",7 "recipient": {8 "peppolId": "0204:DE123456789"9 }10 }'Response
1{2 "transmissionId": "pep_abc123xyz",3 "status": "sent",4 "timestamp": "2025-01-15T10:30:00Z",5 "invoice": {6 "id": "inv_xyz789",7 "invoiceNumber": "RE-2025-001"8 },9 "recipient": {10 "peppolId": "0204:DE123456789",11 "name": "Behörde XY",12 "endpoint": "https://ap.example.de/as4"13 },14 "sender": {15 "peppolId": "0204:DE987654321",16 "name": "Meine Firma GmbH"17 },18 "messageId": "msg_xyz789abc",19 "protocol": "AS4"20}Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
invoiceId | string | - | ID of a previously created invoice. Alternative: xml + format |
xml | string | - | XML invoice as string (if no invoiceId) |
format | string | - | Format of the XML invoice (when xml is provided) |
recipient.peppolId | string | Peppol Participant ID of the recipient | |
recipient.name | string | - | Name of the recipient (for verification) |
Peppol Participant IDs
Peppol IDs consist of a schema prefix and an identifier. Commonly used schemas:
| Schema | Name | Example | Country |
|---|---|---|---|
0204 | Leitweg-ID | 0204:991-12345-67 | DE |
0088 | EAN/GLN | 0088:5790000123456 | EU |
9930 | DE:VAT | 9930:DE123456789 | DE |
0184 | DUNS | 0184:123456789 | INT |
0190 | OFT (NL) | 0190:NL12345678 | NL |
0007 | SIRET (FR) | 0007:12345678901234 | FR |
Check Delivery Status
GET /api/v1/peppol/transmissions/{transmissionId}
1{2 "transmissionId": "pep_abc123xyz",3 "status": "delivered",4 "timeline": [5 {6 "status": "sent",7 "timestamp": "2025-01-15T10:30:00Z",8 "message": "E-Rechnung an Peppol-Netzwerk übergeben"9 },10 {11 "status": "received",12 "timestamp": "2025-01-15T10:30:05Z",13 "message": "Access Point des Empfängers hat Nachricht empfangen"14 },15 {16 "status": "delivered",17 "timestamp": "2025-01-15T10:30:12Z",18 "message": "Empfangsbestätigung (MDN) erhalten"19 }20 ],21 "mdn": {22 "received": true,23 "timestamp": "2025-01-15T10:30:12Z",24 "disposition": "automatic-action/MDN-sent-automatically; processed"25 }26}Status Values
pendingE-invoice waiting for transmissionsentHanded over to Peppol networkreceivedRecipient AP has received messagedeliveredDelivery confirmation (MDN) receivedfailedTransmission failedPeppol Webhooks
Receive automatic notifications about delivery status:
peppol.sentInvoice handed over to Peppol network
peppol.deliveredDelivery confirmation (MDN) received
peppol.failedTransmission failed
Webhook configuration: Webhooks Documentation
Your existing access point
Until our gateway ships (planned Q1/2027), the API produces Peppol BIS 3.0 compliant documents that you send through your existing access point. The format is a public standard — it is not tied to us.
Business and Enterprise Plan
The Peppol Gateway is not available yet — planned for Q1/2027. On release it becomes part of the Business plan; it is not included in the Free and Starter plans.