Peppox Developer Platform

Senden Sie Ihre erste Rechnung über Peppol – Schritt für Schritt.

Wählen Sie den passenden Weg: vom ersten API-Aufruf bis zur Zustellverfolgung.

PEPPOX / INTEGRATION FLOW
  1. 01Dashboard
  2. 02API-Schlüssel
  3. 03Rechnung
  4. 04Validieren
  5. 05Peppol
READY TO BUILD
01 · Vor dem ersten Aufruf

Vier Dinge einmalig vorbereiten

Richten Sie zuerst Konto und Lieferantenprofil ein. Danach nutzt Ihre Anwendung dieselben Zugangsdaten für jedes Dokument.

  1. 01

    Peppox-Konto erstellen

    Registrieren Sie das Unternehmen, das Dokumente versendet.

  2. 02

    Lieferantenprofil vervollständigen

    Unternehmens-, USt.-, Bank- und Peppol-Routingdaten stammen aus Ihrem Konto.

  3. 03

    Integrationsumgebung öffnen

    Testen Sie mit den Dashboard-Werkzeugen sicher vor der Produktion.

  4. 04

    API-Schlüssel kopieren

    Bewahren Sie ihn nur serverseitig auf, nie im Browser- oder App-Code.

02 · Den kürzesten Weg wählen

Beginnen Sie mit Ihren vorhandenen Daten

GRUPPE 2 · STRUKTURIERTE RECHNUNGS-APIERP / Buchhaltung / SaaS
{ }

Erstellen und steuern Sie jedes Dokumentfeld.

Nutzen Sie diese Endpoint-Reihe, wenn Ihr ERP oder Ihre Software die Rechnungsdaten besitzt und Kopf, Zeilen, PDF und UBL XML präzise steuern muss.

  1. Kopf
  2. Dokumentzeilen
  3. PDF-Anhang
  4. UBL XML erzeugen
  5. Verwalten und verfolgen
Ablauf ansehen →
03 · PDF2Peppol

Vollständiger Versand in vier API-Aufrufen

Der direkteste dokumentierte Weg, wenn Ihr System bereits PDF-Rechnungen erstellt.

  1. 01

    PDF hochladen

    Senden Sie Datei, Base64-Inhalt oder URL und speichern Sie queue_guid.

    POST/pdf2peppol/add
  2. 02

    Extrahierte Daten prüfen

    Fragen Sie den Status bis zum Abschluss ab und prüfen Sie Käufer, Summen, USt. und Positionen.

    GET/pdf2peppol/check
  3. 03

    Dokument bestätigen

    Bestätigen Sie erst, wenn alle extrahierten Daten korrekt sind.

    POST/pdf2peppol/confirm
  4. 04

    An Peppol senden

    Senden Sie das bestätigte Dokument und speichern Sie die Dokument-GUID.

    POST/pdf2peppol/send
Minimales Beispiel

Upload → check → confirm → send

Ersetzen Sie Platzhalter durch Ihre Kennung und die IDs des vorherigen Aufrufs.

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

# 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/" \
  -d "supplier_id=YOUR_SUPPLIER_ID" \
  -d "queue_guid=QUEUE_GUID"

curl -X POST "https://api.peppox.com/pdf2peppol/send/" \
  -d "supplier_id=YOUR_SUPPLIER_ID" \
  -d "queue_guid=QUEUE_GUID"
04 · Strukturierte Rechnungs-API

Erstellen Sie eine Peppol-fertige Rechnung aus Ihren Daten

Ideal, wenn Ihr ERP alle Rechnungsfelder und Positionen strukturiert speichert.

  1. 01

    Kopf erstellen

    Senden Sie Kunde, Daten, Währung, Zahlung und Lieferung und speichern Sie invoice_guid.

    POST/invoice/add
  2. 02

    Positionen hinzufügen

    Wiederholen Sie den Aufruf für jedes Produkt oder jede Leistung.

    POST/invoice_line/add
  3. 03

    PDF anhängen (optional)

    Fügen Sie die lesbare Rechnung per Datei, Base64 oder URL hinzu.

    POST/invoice_attach_pdf/add
  4. 04

    UBL XML erzeugen und senden

    Peppox erstellt die UBL XML für eine Rechnung oder Gutschrift. Ist sie gültig, sendet der konfigurierte Peppox-Ablauf sie an Peppol; ein separater strukturierter /send-Aufruf ist nicht nötig.

    POST/xml/generate
  5. 05

    Verfolgen und verwalten

    Prüfen Sie Dokument und Status im Dashboard oder über Versand-APIs.

    GET/doc-sent/header/list
API NOTE

Wichtig: /xml/generate/ wird für Rechnungen und Gutschriften verwendet. Eine erfolgreiche XML_BUILT-Antwort bedeutet, dass Peppox das Dokument erzeugt hat und den konfigurierten Peppol-Versand fortsetzt. Es gibt keinen weiteren strukturierten /send-Endpoint.

07 · Vollständige API-Referenz

Jeder unterstützte Endpoint mit seinem exakten Vertrag.

Parameter, gültige Formate, kopierfertige Anfragen und repräsentative erfolgreiche Antworten. Technische Feldnamen bleiben absichtlich Englisch, damit sie exakt der API entsprechen.

01

PDF2Peppol · complete PDF send flow

POST/pdf2peppol/add/ Upload a PDF and create the conversion queue
Authentifizierung: supplier_id is the active Company API key. Aliases: apikey, api_key.Akzeptierte Anfrageformate: GET or POST; multipart, form data or JSON

Erforderlich

ParameterFormatDescription
supplier_idstringAccount API key.
PDF sourcefile or stringProvide exactly one: multipart pdf / file / invoice_pdf / document / pdf_file; or pdf_base64 / content_base64; or pdf_url / file_url / document_url / url.

Optional

ParameterFormatDescription
document_type_code380 or 381380 by default; 381 is a credit note. Aliases: invoice_type_code, document_type, type.
networkproduction or integrationproduction by default. Aliases: net_work, environment.
filenamestringUsed with a Base64 or URL source; a .pdf extension is normalised.

Beispielanfrage

curl -X POST "https://api.peppox.com/pdf2peppol/add/" \
  -F "supplier_id=YOUR_API_KEY" \
  -F "document_type_code=380" \
  -F "network=integration" \
  -F "pdf_file=@invoice.pdf"

Beispiel einer erfolgreichen Antwort

{
  "success": true,
  "queue_guid": "pdf-…",
  "status": "pending",
  "document_type_code": "380",
  "network": "integration",
  "monthly_limit": {"limit": 50, "used": 3}
}

Implementierungshinweise

  • Maximum PDF size: 15 MB. The file must start with a valid PDF signature.
  • Store queue_guid. It is the state identifier for check, confirm and send.
  • The response contains the account monthly PDF conversion quota state.
GET/pdf2peppol/check/ Read extraction results and Peppol readiness
Authentifizierung: supplier_id is the active Company API key. Aliases: apikey, api_key.Akzeptierte Anfrageformate: GET or POST; query string, form data or JSON

Erforderlich

ParameterFormatDescription
supplier_idstringSame value used at upload.
queue_guidstringThe queue GUID returned by /pdf2peppol/add/. Alias: guid.

Beispielanfrage

curl "https://api.peppox.com/pdf2peppol/check/?supplier_id=YOUR_API_KEY&queue_guid=QUEUE_GUID"

Beispiel einer erfolgreichen Antwort

{
  "success": true,
  "queue": {"queue_guid": "pdf-…", "confirmed": false},
  "peppol_readiness": {"ready_for_peppol": true, "missing_required_fields": []},
  "converted_data": {"header": {}, "lines_count": 2, "lines": []}
}

Implementierungshinweise

  • Poll this endpoint while conversion is pending; do not call confirm until ready_for_peppol is true.
  • Review missing_required_fields, header values, line values and totals before confirming.
POST/pdf2peppol/confirm/ Confirm the converted document
Authentifizierung: supplier_id is the active Company API key. Aliases: apikey, api_key.Akzeptierte Anfrageformate: GET or POST; query string, form data or JSON

Erforderlich

ParameterFormatDescription
supplier_idstringSame account key.
queue_guidstringThe queue GUID returned by upload. Alias: guid.

Beispielanfrage

curl -X POST "https://api.peppox.com/pdf2peppol/confirm/" \
  -d "supplier_id=YOUR_API_KEY" \
  -d "queue_guid=QUEUE_GUID"

Beispiel einer erfolgreichen Antwort

{
  "success": true,
  "verification_confirmed": true,
  "ready_for_peppol": true,
  "send_status": "ready",
  "missing_fields": []
}

Implementierungshinweise

  • Confirmation is refused if mandatory converted data is missing.
  • Confirm is a separate explicit action; uploading alone never sends the document.
POST/pdf2peppol/send/ Send the confirmed document through Peppol
Authentifizierung: supplier_id is the active Company API key. Aliases: apikey, api_key.Akzeptierte Anfrageformate: GET or POST; query string, form data or JSON

Erforderlich

ParameterFormatDescription
supplier_idstringSame account key.
queue_guidstringA confirmed and ready queue GUID. Alias: guid.

Beispielanfrage

curl -X POST "https://api.peppox.com/pdf2peppol/send/" \
  -d "supplier_id=YOUR_API_KEY" \
  -d "queue_guid=QUEUE_GUID"

Beispiel einer erfolgreichen Antwort

{
  "success": true,
  "queue_guid": "pdf-…",
  "peppox_document_guid": "…",
  "send_status": "sent",
  "steps": {"document_create": "ok", "xml_generate": "ok"}
}

Implementierungshinweise

  • The endpoint is idempotent for an already sent queue: it returns the existing sent state.
  • It checks document number, date, buyer identity/address and converted lines again before dispatch.
02

Structured sales invoice

POST/invoice/add/ Create an invoice header
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
inv_idstringYour unique invoice number; needed before UBL generation.
issue_dateYYYY-MM-DDInvoice issue date.
customer.endpoint_idstringBuyer Peppol endpoint identifier.
customer.namestringBuyer legal or trading name.
customer.street / city / postal / countrystringsBuyer postal address; needed for a Peppol-ready document.

Optional

ParameterFormatDescription
due_dateYYYY-MM-DDDefaults to issue_date at XML generation if omitted.
invoice_type_code380380 by default for a sales invoice.
currencyISO 4217EUR by default.
buyer_reference, accounting_coststringAccounting references.
payment.*objectmeans_code, payment_id, iban, account_name, bic, terms_note.
delivery.*objectdate, location_scheme, location_id, street, city, postal, country, party_name.
networkstringAlias: net_work. Supplier identity and bank IBAN come from the Company profile.

Beispielanfrage

curl -X POST "https://api.peppox.com/invoice/add/" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "inv_id": "INV-2026-0042",
    "issue_date": "2026-09-11",
    "currency": "EUR",
    "customer": {
        "endpoint_scheme": "0208",
        "endpoint_id": "0123456789",
        "name": "Buyer Ltd",
        "street": "Main Street 1",
        "city": "Brussels",
        "postal": "1000",
        "country": "BE"
    }
}'

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "invoice_guid": "…",
  "status": "DRAFT"
}

Implementierungshinweise

  • Save invoice_guid. It connects the header, every line, optional PDF and generated XML.
  • Supplier name, address, identifiers and payee IBAN are sourced from the configured Company profile.
POST/invoice_line/add/ Add one sales invoice line
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
invoice_guidstringGUID returned by /invoice/add/. Alias: guid.
quantitydecimalQuantity for the line.
unit_codeUNECE unit codeFor example C62 for one unit.
price_amountdecimalUnit price excluding VAT.
item_description / item_namestringLine description and item name.
tax_percentdecimalVAT rate; the API maps positive rates to category S and 0 to Z.

Optional

ParameterFormatDescription
line_idstringAlias: order_line_id; a GUID is generated if omitted.
seller_item_idstringAliases: seller_id, sku.
std_item_idstringAliases: gtin, ean.
std_item_id_schemestring0088 by default.
origin_countryISO country codeAlias: country.

Beispielanfrage

curl -X POST "https://api.peppox.com/invoice_line/add/" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "invoice_guid": "INVOICE_GUID",
    "line_id": "1",
    "quantity": "2",
    "unit_code": "C62",
    "price_amount": "49.50",
    "item_name": "Consulting",
    "item_description": "Consulting service",
    "tax_percent": "21"
}'

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "line_guid": "…"
}

Implementierungshinweise

  • Call once per line before XML generation.
  • Use decimal values with a dot in new integrations.
POST/invoice_attach_pdf/add/ Attach or replace the invoice PDF
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; multipart, JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
invoice_guidstringGUID returned by /invoice/add/. Alias: guid.
PDF sourcefile or stringProvide one: multipart file; content_base64 / pdf_base64; or file_url / pdf_url (HTTP or HTTPS).

Optional

ParameterFormatDescription
doc_idstringDefaults to inv_id or a generated UUID.
filenamestringattachment.pdf by default.
mimestringapplication/pdf by default.

Beispielanfrage

curl -X POST "https://api.peppox.com/invoice_attach_pdf/add/" \
  -F "apikey=YOUR_API_KEY" \
  -F "invoice_guid=INVOICE_GUID" \
  -F "file=@invoice.pdf"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "invoice_guid": "…",
  "doc_id": "INV-2026-0042",
  "filename": "invoice.pdf",
  "mime": "application/pdf",
  "size_bytes": 248512
}

Implementierungshinweise

  • A new attachment replaces the previous attachment for the same invoice GUID.
  • For a URL source, Peppox downloads the file server-side; only http and https are accepted.
POST/xml/generate/ Generate XML and submit a sales invoice to Peppol
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
invoice_guidstringRequired for an invoice. Use the GUID returned by /invoice/add/; guid is accepted as an alias.

Optional

ParameterFormatDescription
networkstringStored operational network value.

Beispielanfrage

curl -X POST "https://api.peppox.com/xml/generate/" \
  -d "apikey=YOUR_API_KEY" \
  -d "invoice_guid=INVOICE_GUID"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "status": "XML_BUILT",
  "xml_path": "…",
  "document_type": "INVOICE"
}

Implementierungshinweise

  • Use only after the invoice header and every invoice line have been saved.
  • The invoice header determines document type 380. Do not add a separate document-type parameter to this call.
  • Peppox calculates totals and VAT subtotals from the saved invoice lines.
  • This is the final structured-invoice call: it creates the UBL XML and, when it is valid, continues the configured Peppol submission. There is no extra structured /send endpoint.
03

Structured credit note

POST/creditnote/add/ Create a credit note header
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
creditnote_idstringCredit note number. Aliases: cn_id, credit_note_id, inv_id.
issue_dateYYYY-MM-DDCredit note issue date.
customer.endpoint_id / name / addressobjectBuyer endpoint, name, street, city, postal code and country.

Optional

ParameterFormatDescription
invoice_type_code381381 by default for a credit note.
due_date, currency, buyer_reference, accounting_costvaluesSame meaning as /invoice/add/.
payment.*, delivery.*, networkobjects / stringSame field structure as /invoice/add/.

Beispielanfrage

curl -X POST "https://api.peppox.com/creditnote/add/" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "creditnote_id": "CN-2026-001",
    "issue_date": "2026-09-11",
    "customer": {
        "endpoint_id": "0123456789",
        "name": "Buyer Ltd",
        "street": "Main Street 1",
        "city": "Brussels",
        "postal": "1000",
        "country": "BE"
    }
}'

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "invoice_guid": "…",
  "document_type": "CREDIT_NOTE",
  "status": "DRAFT"
}

Implementierungshinweise

  • Save invoice_guid; it is also accepted by later credit-note endpoints.
  • Supplier profile data is loaded from the Company configuration.
POST/creditnote_line/add/ Add one credit note line
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
creditnote_guidstringGUID returned by /creditnote/add/. Aliases: invoice_guid, guid.
quantitydecimalRequired.
price_amountdecimalRequired unit price.
unit_code, item_name, item_description, tax_percentvaluesUse the same structure as /invoice_line/add/.

Optional

ParameterFormatDescription
line_id, seller_item_id, std_item_id, std_item_id_scheme, origin_countryvaluesSame aliases and defaults as sales invoice lines.

Beispielanfrage

curl -X POST "https://api.peppox.com/creditnote_line/add/" \
  -d "apikey=YOUR_API_KEY" \
  -d "creditnote_guid=CREDITNOTE_GUID" \
  -d "quantity=1" -d "unit_code=C62" \
  -d "price_amount=49.50" -d "item_name=Refund" \
  -d "item_description=Service refund" -d "tax_percent=21"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "line_guid": "…"
}

Implementierungshinweise

  • Tax category is automatically S for a positive rate and Z for zero rate.
  • Add every line before generating XML.
POST/creditnote_attach_pdf/add/ Attach or replace the credit note PDF
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; multipart, JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
creditnote_guidstringCredit note GUID. Aliases: invoice_guid, guid.
PDF sourcefile or stringmultipart file, content_base64 / pdf_base64, or HTTP(S) file_url / pdf_url.

Optional

ParameterFormatDescription
doc_id, filename, mimevaluesSame meaning and defaults as the sales invoice attachment endpoint.

Beispielanfrage

curl -X POST "https://api.peppox.com/creditnote_attach_pdf/add/" \
  -F "apikey=YOUR_API_KEY" \
  -F "creditnote_guid=CREDITNOTE_GUID" \
  -F "file=@credit-note.pdf"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "creditnote_guid": "…",
  "doc_id": "CN-2026-001",
  "filename": "credit-note.pdf",
  "size_bytes": 194221
}

Implementierungshinweise

  • The endpoint verifies that the referenced document exists and is type 381.
  • A new attachment replaces the previous credit note attachment.
POST/xml/generate/ Generate XML and submit a credit note to Peppol
Authentifizierung: apikey or api_key is required.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.
creditnote_guidstringRequired for a credit note. Use the GUID returned by /creditnote/add/; invoice_guid or guid are accepted aliases.

Optional

ParameterFormatDescription
networkstringStored operational network value.

Beispielanfrage

curl -X POST "https://api.peppox.com/xml/generate/" \
  -d "apikey=YOUR_API_KEY" \
  -d "creditnote_guid=CREDITNOTE_GUID"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "status": "XML_BUILT",
  "xml_path": "…",
  "document_type": "CREDIT_NOTE"
}

Implementierungshinweise

  • Use only after the credit-note header and every credit-note line have been saved.
  • The credit-note header determines document type 381. Do not add a separate document-type parameter to this call.
  • Peppox calculates totals and VAT subtotals from the saved credit-note lines.
  • This is the final structured-credit-note call: it creates the UBL XML and, when it is valid, continues the configured Peppol submission. There is no extra structured /send endpoint.
04

Document retrieval and operations

GET/invoice/list/ List stored structured invoice records
Authentifizierung: apikey query/form value, or Authorization: Bearer API_KEY.Akzeptierte Anfrageformate: GET or POST; apikey can also be an Authorization: Bearer token

Erforderlich

ParameterFormatDescription
apikeystringAccount API key.

Optional

ParameterFormatDescription
profilemini | customer | fullSelects a field preset.
fieldscomma-separated namesOverrides the preset with allowed fields.
invoice_guid, inv_id, status, networkstringsExact filters.
from, toYYYY-MM-DDIssue-date range.
limit, offsetintegerslimit defaults to 100 and is capped at 500.
pretty1Pretty-prints JSON.

Beispielanfrage

curl "https://api.peppox.com/invoice/list/?apikey=YOUR_API_KEY&profile=mini&status=XML_BUILT&limit=50"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "count": 1,
  "fields": ["invoice_guid", "inv_id", "status"],
  "filters": {"status": "XML_BUILT", "limit": 50},
  "data": [{"invoice_guid": "…", "inv_id": "INV-2026-0042", "status": "XML_BUILT"}]
}

Implementierungshinweise

  • Use this for operational data saved by the structured flow.
  • For delivery-oriented sent status and richer filters, prefer /doc-sent/header/list/.
GET/doc-sent/header/list/ List sent document headers
Authentifizierung: supplier_id is the account API key associated with the documents.Akzeptierte Anfrageformate: GET, POST or JSON body

Erforderlich

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Optional

ParameterFormatDescription
page, per_pageintegerspage defaults to 1; per_page defaults to 300 and is capped at 300.
qstringKeyword search across indexed document fields.
date, date_from, date_toYYYY-MM-DDExact day or date range.
date_fieldfield nameissue_date, due_date, delivery_date, xml_built_at, sent_at, created_at, updated_at or status_from_peppol_date; sent_at by default.
status_from_peppol / statusstring or CSVOne or more Peppol statuses.
local_statusstring or CSVOne or more local invoice statuses.
include_raw, search_raw1 / trueInclude or search raw upstream fields.
sort_by, sort_dirfield / ASC|DESCsent_at and DESC by default.

Beispielanfrage

curl "https://api.peppox.com/doc-sent/header/list/?supplier_id=YOUR_API_KEY&page=1&per_page=50&status=accepted&date_from=2026-09-01"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "endpoint": "doc-sent/header/list",
  "pagination": {"page": 1, "per_page": 50, "total": 1, "has_next": false},
  "data": [{"invoice_guid": "…", "inv_id": "INV-2026-0042", "status_from_peppol": "accepted"}]
}

Implementierungshinweise

  • CSV separators accepted for statuses: comma, semicolon or pipe.
  • Keep include_raw disabled unless you explicitly need the upstream raw payload.
GET/doc-sent/lines/list/ List lines of one sent document
Authentifizierung: supplier_id is the account API key associated with the invoice.Akzeptierte Anfrageformate: GET query string

Erforderlich

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.
invoice_guidstringGUID returned by the sent-header list.

Optional

ParameterFormatDescription
qstringSearch line fields.
page, per_pageintegerspage 1 and per_page 300 by default; maximum 300.

Beispielanfrage

curl "https://api.peppox.com/doc-sent/lines/list/?supplier_id=YOUR_API_KEY&invoice_guid=INVOICE_GUID&page=1&per_page=100"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "invoice": {"invoice_guid": "…", "inv_id": "INV-2026-0042"},
  "pagination": {"page": 1, "total": 2},
  "data": [{"line_id": "1", "quantity": "2", "price_amount": "49.50"}]
}

Implementierungshinweise

  • The API verifies that the invoice belongs to the supplied supplier_id before returning lines.
GET/doc-received/header/list/ List received document headers
Authentifizierung: supplier_id is the account API key / Company supplier identifier.Akzeptierte Anfrageformate: GET, POST or JSON body

Erforderlich

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Optional

ParameterFormatDescription
page, per_pageintegerspage 1 and per_page 300 by default; maximum 300.
qstringKeyword search.
date, date_from, date_toYYYY-MM-DDExact day or range.
date_fieldfield nameapi_created_at by default; issue_date, due_date, tax_point_date, created_at and updated_at are supported.
import_status / statusstring or CSVOne or more import statuses.
document_type_code / type_codestring or CSVFilter by document type, for example 380 or 381.
include_raw, search_raw1 / trueInclude or search raw XML/parser fields.
sort_by, sort_dirfield / ASC|DESCapi_created_at and DESC by default.

Beispielanfrage

curl "https://api.peppox.com/doc-received/header/list/?supplier_id=YOUR_API_KEY&document_type_code=380&date_from=2026-09-01&per_page=50"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "endpoint": "doc-received/header/list",
  "pagination": {"page": 1, "per_page": 50, "total": 1},
  "data": [{"document_id": "…", "document_number": "SUP-1048", "supplier_name": "Supplier Ltd", "payable_amount": "1250.00"}]
}

Implementierungshinweise

  • Use document_id from this result to retrieve the received document lines.
  • Keep raw XML and parser output disabled unless required.
GET/doc-received/lines/list/ List lines of one received document
Authentifizierung: supplier_id is the account API key / Company supplier identifier.Akzeptierte Anfrageformate: GET, POST or JSON body

Erforderlich

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.
document_idstringflowin_document_id returned by /doc-received/header/list/.

Optional

ParameterFormatDescription
qstringSearch line fields.
page, per_pageintegerspage 1 and per_page 300 by default; maximum 300.
include_raw, search_raw1 / trueInclude or search raw_line_xml and parser_json.
sort_by, sort_dirfield / ASC|DESCline_no and ASC by default.

Beispielanfrage

curl "https://api.peppox.com/doc-received/lines/list/?supplier_id=YOUR_API_KEY&document_id=DOCUMENT_ID&per_page=100"

Beispiel einer erfolgreichen Antwort

{
  "ok": true,
  "invoice": {"document_id": "…", "document_number": "SUP-1048"},
  "data": [{"line_id": "1", "item_name": "Service", "quantity": "1", "unit_price": "1250.00", "vat_rate": "21"}]
}

Implementierungshinweise

  • The API verifies that the document belongs to supplier_id before returning lines.
05

Peppol network discovery

GET/ap/get/ Check a Peppol participant and discover endpoint information
Authentifizierung: No Peppox account key is required for this public lookup helper.Akzeptierte Anfrageformate: GET or POST; JSON or form data

Erforderlich

ParameterFormatDescription
schemestringParticipant identifier scheme, for example 0208.
valuestringParticipant identifier value.

Optional

ParameterFormatDescription
smldigitprod or digittestdigitprod by default for the SMP query.
withEndpointsbooleantrue by default; set false to skip endpoint lookup.
prettyyes / true / 1Returns a simplified result.
onlynameWith pretty enabled, returns only the entity name.

Beispielanfrage

curl "https://api.peppox.com/ap/get/?scheme=0208&value=0123456789&sml=digitprod&pretty=1"

Beispiel einer erfolgreichen Antwort

{
  "name_entity": "Example Company",
  "serviceDescription": "…",
  "technicalContactUrl": "…"
}

Implementierungshinweise

  • The full response contains both test and production existence results plus the EN16931 invoice endpoint lookup.
  • This endpoint checks discoverability; it does not create or send a document.
06 · Tests ohne Code

Verstehen Sie jede Anfrage im Dashboard, bevor Sie programmieren

Geführte Formulare im Peppox-Dashboard rufen die APIs für Sie auf. Testen Sie echte Dokumente, erkennen Sie Pflichtparameter und verstehen Sie die JSON-Antwort, bevor Sie Ihr ERP anbinden.

  1. 01Endpoint wählen und Felder ausfüllen
  2. 02Anfrage ohne Testclient ausführen
  3. 03GUIDs, JSON-Daten und Fehler prüfen
  4. 04Ablauf in der Integrationsumgebung validieren
  5. 05Funktionierende Anfrage im Backend übernehmen
  6. 06Gesendete und empfangene Dokumente überwachen
Diese Kennungen speichern

Der Integrationsstatus bleibt einfach

invoice_guid

Verknüpft Kopf, Positionen, PDF und generiertes XML.

queue_guid

Verknüpft die vier PDF2Peppol-Aufrufe während der Extraktion.

Dokument-GUID

Verknüpft das endgültige Dokument mit Zustellung und Abgleich.

Wenn eine Anfrage fehlschlägt

400Fehlende oder ungültige Felder prüfen.401API-Schlüssel und Umgebung prüfen.404GUID des vorherigen Aufrufs prüfen.429Drosseln und mit wachsender Wartezeit erneut versuchen.500Anfrage protokollieren, sicher wiederholen und Peppox kontaktieren, falls nötig.
Peppox

Eine Verbindung zum Peppol-Netzwerk.

Senden, empfangen und überwachen Sie Peppol-Dokumente über eine sichere API und ein übersichtliches Dashboard.