Peppox Developer Platform

Send your first invoice through Peppol, step by step.

Choose the route that matches your system. Every identifier, request and next action is explained from the first API call to delivery tracking.

PEPPOX / INTEGRATION FLOW
  1. 01Dashboard
  2. 02API key
  3. 03Invoice
  4. 04Validate
  5. 05Peppol
READY TO BUILD
01 · Before the first call

Four things to prepare once

Complete the account and supplier configuration first. Your application can then reuse the same credentials for every document.

  1. 01

    Create your Peppox account

    Register the legal company that will send documents.

  2. 02

    Complete the supplier profile

    Company, VAT, bank and Peppol routing data are loaded from your registered account.

  3. 03

    Open the integration environment

    Use the dashboard tools to test calls safely before production.

  4. 04

    Copy your API key

    Keep it on your server. Never expose it in browser or mobile application code.

02 · Choose the shortest route

Start from the data you already have

ERP / accounting / SaaS
{ }

I have structured invoice data

Create the header, add each line, optionally attach the visual PDF, then generate the Peppol UBL document.

See this workflow →
03 · PDF2Peppol

A complete send flow in four API calls

This is the most direct documented route when your system already produces invoices as PDF files.

  1. 01

    Upload the PDF

    Send a file, Base64 content or a remote URL. Save the returned queue_guid.

    POST/pdf2peppol/add
  2. 02

    Check the extracted data

    Poll until processing is complete, then review buyer, totals, VAT and lines.

    GET/pdf2peppol/check
  3. 03

    Confirm the document

    Confirm only after the extracted invoice data is correct.

    POST/pdf2peppol/confirm
  4. 04

    Send to Peppol

    Dispatch the confirmed document. Save the returned document GUID.

    POST/pdf2peppol/send
  5. 05

    Follow delivery

    Use the sent-document list or the dashboard to track the final status.

    GET/doc-sent/header/list
Minimal example

Upload → check → confirm → send

Replace the placeholders with your real key and the identifiers returned by the previous call.

pdf2peppol.sh
curl -X POST "https://api.peppox.com/pdf2peppol/add/" \
  -F "supplier_id=YOUR_SUPPLIER_ID" \
  -F "pdf=@invoice.pdf" \
  -F "network=integration"

# Save queue_guid, then check it
curl "https://api.peppox.com/pdf2peppol/check/?supplier_id=YOUR_SUPPLIER_ID&queue_guid=QUEUE_GUID"

curl -X POST "https://api.peppox.com/pdf2peppol/confirm/" \
  -H "Content-Type: application/json" \
  -d '{"supplier_id":"YOUR_SUPPLIER_ID","queue_guid":"QUEUE_GUID","confirmed":1}'

curl -X POST "https://api.peppox.com/pdf2peppol/send/" \
  -H "Content-Type: application/json" \
  -d '{"supplier_id":"YOUR_SUPPLIER_ID","queue_guid":"QUEUE_GUID"}'
04 · Structured Invoice API

Build a Peppol-ready invoice from your own data

Ideal when your ERP already stores every invoice field and line in a structured format.

  1. 01

    Create the header

    Send customer, dates, currency, payment and delivery data. Save invoice_guid.

    POST/invoice/add
  2. 02

    Add invoice lines

    Repeat the call for each product or service line.

    POST/invoice_line/add
  3. 03

    Attach the PDF (optional)

    Add the human-readable invoice by file, Base64 or URL.

    POST/invoice_attach_pdf/add
  4. 04

    Generate the UBL XML

    Peppox combines the header, lines and attachment. A successful response returns XML_BUILT.

    POST/xml/generate
  5. 05

    Track and operate

    Inspect the document and its status from the dashboard or sent-document APIs.

    GET/doc-sent/header/list
API NOTE

Important: the published structured-invoice reference currently documents XML generation but no separate final /send endpoint. If your integration requires an explicit final send call, use the PDF2Peppol workflow or complete dispatch from the configured Peppox workflow/dashboard.

05 · Endpoint map

Every endpoint, in plain language

01Invoices

POST/invoice/add

Create a sales invoice header and receive invoice_guid.

POST/invoice_line/add

Add one line to an existing invoice.

POST/invoice_attach_pdf/add

Attach or replace the invoice PDF.

02UBL generation

POST/xml/generate

Generate a Peppol-compatible UBL XML document.

03Credit notes

POST/creditnote/add

Create a credit note header.

POST/creditnote_line/add

Add one line to a credit note.

POST/creditnote_attach_pdf/add

Attach or replace a credit note PDF.

04Sent documents

GET/doc-sent/header/list

List sent-document headers with filters and pagination.

GET/doc-sent/lines/list

Get the lines of one sent document.

05Received documents

GET/doc-received/header/list

List received-document headers with filters and pagination.

GET/doc-received/lines/list

Get the lines of one received document.

06PDF2Peppol

POST/pdf2peppol/add

Upload a PDF and start extraction.

GET/pdf2peppol/check

Check extraction status and extracted fields.

POST/pdf2peppol/confirm

Confirm verified invoice data.

POST/pdf2peppol/send

Send the confirmed document through Peppol.

06 · No-code testing

Understand every request in the dashboard before you code it

The Peppox dashboard provides guided forms that call the APIs for you. They make it easy to discover required parameters, test realistic documents and understand the JSON response before connecting your ERP.

  1. 01Choose an endpoint and fill in its fields
  2. 02Run the request without writing a test client
  3. 03Inspect returned GUIDs, JSON data and errors
  4. 04Validate the workflow in the integration environment
  5. 05Reuse the working request in your backend
  6. 06Monitor sent and received documents
Keep these identifiers

Your integration state is simple

invoice_guid

Links a structured header, lines, PDF and generated XML.

queue_guid

Links the four PDF2Peppol calls while extraction is in progress.

document GUID

Links the final document to delivery tracking and reconciliation.

If a request fails

400Check missing or invalid fields.401Verify the API key and environment.404Verify the GUID created by the previous call.429Slow down and retry with exponential backoff.500Log the request ID and retry safely; contact Peppox if it persists.
Peppox

One connection to the Peppol network.

Send, receive and monitor Peppol documents through one secure API and one clear dashboard.