Plateforme développeurs Peppox

Envoyez votre première facture via Peppol, étape par étape.

Choisissez le parcours adapté à votre système. Chaque identifiant, requête et action suivante est expliqué, du premier appel API au suivi de livraison.

PEPPOX / INTEGRATION FLOW
  1. 01Dashboard
  2. 02Clé API
  3. 03Facture
  4. 04Validation
  5. 05Peppol
READY TO BUILD
01 · Avant le premier appel

Quatre éléments à préparer une seule fois

Finalisez d’abord le compte et le profil fournisseur. Votre application pourra ensuite réutiliser les mêmes accès pour chaque document.

  1. 01

    Créez votre compte Peppox

    Enregistrez l’entreprise légale qui enverra les documents.

  2. 02

    Complétez le profil fournisseur

    Les données société, TVA, banque et routage Peppol proviennent de votre compte.

  3. 03

    Ouvrez l’environnement d’intégration

    Utilisez les outils du dashboard pour tester avant la production.

  4. 04

    Copiez votre clé API

    Conservez-la côté serveur. Ne l’exposez jamais dans le navigateur ou une app mobile.

02 · Choisissez le chemin le plus court

Partez des données que vous avez déjà

GROUPE 2 · API FACTURE STRUCTURÉEERP / comptabilité / SaaS
{ }

Construisez et contrôlez chaque donnée du document.

Utilisez cette série d’endpoints lorsque votre ERP ou logiciel gère les données de facture et doit contrôler précisément l’en-tête, les lignes, le PDF et le XML UBL.

  1. En-tête
  2. Lignes du document
  3. Pièce jointe PDF
  4. Générer le XML UBL
  5. Piloter et suivre
Voir ce parcours →
03 · PDF2Peppol

Un envoi complet en quatre appels API

Le parcours documenté le plus direct lorsque votre système produit déjà les factures en PDF.

  1. 01

    Chargez le PDF

    Envoyez un fichier, du Base64 ou une URL. Enregistrez le queue_guid retourné.

    POST/pdf2peppol/add
  2. 02

    Vérifiez les données extraites

    Interrogez l’API jusqu’à la fin du traitement, puis contrôlez acheteur, totaux, TVA et lignes.

    GET/pdf2peppol/check
  3. 03

    Confirmez le document

    Confirmez uniquement lorsque toutes les données extraites sont correctes.

    POST/pdf2peppol/confirm
  4. 04

    Envoyez vers Peppol

    Expédiez le document confirmé et conservez le GUID document retourné.

    POST/pdf2peppol/send
Exemple minimal

Upload → check → confirm → send

Remplacez les valeurs fictives par votre clé et les identifiants renvoyés par l’appel précédent.

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 · API facture structurée

Construisez une facture prête pour Peppol depuis vos données

Idéal lorsque votre ERP conserve déjà chaque champ et chaque ligne sous forme structurée.

  1. 01

    Créez l’en-tête

    Envoyez client, dates, devise, paiement et livraison. Enregistrez invoice_guid.

    POST/invoice/add
  2. 02

    Ajoutez les lignes

    Répétez cet appel pour chaque produit ou service.

    POST/invoice_line/add
  3. 03

    Joignez le PDF (facultatif)

    Ajoutez la facture lisible par fichier, Base64 ou URL.

    POST/invoice_attach_pdf/add
  4. 04

    Générez et envoyez le XML UBL

    Peppox crée le XML UBL pour une facture ou une note de crédit. S’il est valide, le workflow Peppox configuré l’envoie vers Peppol : aucun appel structuré /send distinct n’est nécessaire.

    POST/xml/generate
  5. 05

    Suivez et pilotez

    Consultez le document et son statut dans le dashboard ou via les API de documents envoyés.

    GET/doc-sent/header/list
API NOTE

Important : /xml/generate/ est commun aux factures et notes de crédit. Une réponse XML_BUILT réussie signifie que Peppox a généré le document et poursuit l’envoi Peppol configuré. Il n’existe pas d’endpoint /send supplémentaire pour les données structurées.

07 · Référence API complète

Chaque endpoint supporté, avec son contrat exact.

Paramètres, formats acceptés, requêtes prêtes à copier et exemples de réponses réussies. Les noms techniques des champs restent volontairement en anglais afin de correspondre exactement à l’API.

01

PDF2Peppol · complete PDF send flow

POST/pdf2peppol/add/ Upload a PDF and create the conversion queue
Authentification: supplier_id is the active Company API key. Aliases: apikey, api_key.Formats de requête acceptés: GET or POST; multipart, form data or JSON

Obligatoire

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.

Facultatif

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.

Exemple de requête

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"

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: supplier_id is the active Company API key. Aliases: apikey, api_key.Formats de requête acceptés: GET or POST; query string, form data or JSON

Obligatoire

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

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: supplier_id is the active Company API key. Aliases: apikey, api_key.Formats de requête acceptés: GET or POST; query string, form data or JSON

Obligatoire

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

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: supplier_id is the active Company API key. Aliases: apikey, api_key.Formats de requête acceptés: GET or POST; query string, form data or JSON

Obligatoire

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

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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.

Facultatif

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.

Exemple de requête

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"
    }
}'

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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.

Facultatif

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.

Exemple de requête

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"
}'

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; multipart, JSON or form data

Obligatoire

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).

Facultatif

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

Exemple de requête

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"

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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

Facultatif

ParameterFormatDescription
networkstringStored operational network value.

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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.

Facultatif

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/.

Exemple de requête

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"
    }
}'

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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/.

Facultatif

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

Exemple de requête

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"

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; multipart, JSON or form data

Obligatoire

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.

Facultatif

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

Exemple de requête

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"

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey or api_key is required.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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

Facultatif

ParameterFormatDescription
networkstringStored operational network value.

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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
Authentification: apikey query/form value, or Authorization: Bearer API_KEY.Formats de requête acceptés: GET or POST; apikey can also be an Authorization: Bearer token

Obligatoire

ParameterFormatDescription
apikeystringAccount API key.

Facultatif

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.

Exemple de requête

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

Exemple de réponse réussie

{
  "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"}]
}

Notes d’implémentation

  • 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
Authentification: supplier_id is the account API key associated with the documents.Formats de requête acceptés: GET, POST or JSON body

Obligatoire

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Facultatif

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.

Exemple de requête

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"

Exemple de réponse réussie

{
  "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"}]
}

Notes d’implémentation

  • 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
Authentification: supplier_id is the account API key associated with the invoice.Formats de requête acceptés: GET query string

Obligatoire

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

Facultatif

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

Exemple de requête

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

Exemple de réponse réussie

{
  "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"}]
}

Notes d’implémentation

  • The API verifies that the invoice belongs to the supplied supplier_id before returning lines.
GET/doc-received/header/list/ List received document headers
Authentification: supplier_id is the account API key / Company supplier identifier.Formats de requête acceptés: GET, POST or JSON body

Obligatoire

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Facultatif

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.

Exemple de requête

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"

Exemple de réponse réussie

{
  "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"}]
}

Notes d’implémentation

  • 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
Authentification: supplier_id is the account API key / Company supplier identifier.Formats de requête acceptés: GET, POST or JSON body

Obligatoire

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

Facultatif

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.

Exemple de requête

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

Exemple de réponse réussie

{
  "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"}]
}

Notes d’implémentation

  • 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
Authentification: No Peppox account key is required for this public lookup helper.Formats de requête acceptés: GET or POST; JSON or form data

Obligatoire

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

Facultatif

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.

Exemple de requête

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

Exemple de réponse réussie

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

Notes d’implémentation

  • 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 sans code

Comprenez chaque requête dans le dashboard avant de la coder

Le dashboard Peppox propose des formulaires guidés qui communiquent directement avec les API. Vous découvrez facilement les paramètres, testez des documents réels et comprenez la réponse JSON avant de connecter votre ERP.

  1. 01Choisir un endpoint et remplir ses champs
  2. 02Lancer la requête sans écrire de client de test
  3. 03Inspecter les GUID, données JSON et erreurs
  4. 04Valider le parcours dans l’environnement d’intégration
  5. 05Reprendre la requête fonctionnelle dans votre backend
  6. 06Suivre les documents envoyés et reçus
Identifiants à conserver

L’état de votre intégration reste simple

invoice_guid

Relie l’en-tête structuré, les lignes, le PDF et le XML généré.

queue_guid

Relie les quatre appels PDF2Peppol pendant l’extraction.

GUID document

Relie le document final au suivi de livraison et au rapprochement.

Si une requête échoue

400Contrôlez les champs absents ou invalides.401Vérifiez la clé API et l’environnement.404Vérifiez le GUID créé par l’appel précédent.429Ralentissez et réessayez avec un délai progressif.500Journalisez l’identifiant de requête, retentez sans doublon et contactez Peppox si le problème persiste.
Peppox

Une seule connexion au réseau Peppol.

Envoyez, recevez et surveillez les documents Peppol via une API sécurisée et un tableau de bord clair.