Peppox Developer Platform

Envía tu primera factura por Peppol, paso a paso.

Elige la ruta adecuada para tu sistema, desde la primera llamada API hasta el seguimiento de la entrega.

PEPPOX / INTEGRATION FLOW
  1. 01Panel
  2. 02Clave API
  3. 03Factura
  4. 04Validar
  5. 05Peppol
READY TO BUILD
01 · Antes de la primera llamada

Cuatro elementos que se preparan una sola vez

Configura primero la cuenta y el perfil del proveedor. Después, tu aplicación reutiliza las mismas credenciales para cada documento.

  1. 01

    Crea tu cuenta Peppox

    Registra la empresa legal que enviará los documentos.

  2. 02

    Completa el perfil del proveedor

    Los datos de empresa, IVA, banco y enrutamiento Peppol proceden de tu cuenta.

  3. 03

    Abre el entorno de integración

    Prueba con seguridad desde las herramientas del panel antes de producción.

  4. 04

    Copia tu clave API

    Guárdala solo en el servidor, nunca en el navegador ni en una app móvil.

02 · Elige la ruta más corta

Empieza con los datos que ya tienes

GRUPO 2 · API DE FACTURA ESTRUCTURADAERP / contabilidad / SaaS
{ }

Cree y controle cada campo del documento.

Utilice esta serie de endpoints cuando su ERP o software gestione los datos de factura y necesite controlar con precisión cabecera, líneas, PDF y XML UBL.

  1. Cabecera
  2. Líneas del documento
  3. Adjunto PDF
  4. Generar XML UBL
  5. Gestionar y seguir
Ver este flujo →
03 · PDF2Peppol

Un envío completo en cuatro llamadas API

La ruta documentada más directa cuando tu sistema ya produce facturas PDF.

  1. 01

    Carga el PDF

    Envía archivo, Base64 o URL y guarda queue_guid.

    POST/pdf2peppol/add
  2. 02

    Revisa los datos extraídos

    Consulta hasta terminar el proceso y verifica comprador, totales, IVA y líneas.

    GET/pdf2peppol/check
  3. 03

    Confirma el documento

    Confirma solo cuando todos los datos extraídos sean correctos.

    POST/pdf2peppol/confirm
  4. 04

    Envía a Peppol

    Envía el documento confirmado y guarda el GUID del documento.

    POST/pdf2peppol/send
Ejemplo mínimo

Upload → check → confirm → send

Sustituye los valores de ejemplo por tu identificador y los devueltos por la llamada anterior.

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 de factura estructurada

Crea una factura lista para Peppol con tus datos

Ideal si tu ERP ya almacena de forma estructurada todos los campos y líneas.

  1. 01

    Crea la cabecera

    Envía cliente, fechas, moneda, pago y entrega; guarda invoice_guid.

    POST/invoice/add
  2. 02

    Añade las líneas

    Repite la llamada para cada producto o servicio.

    POST/invoice_line/add
  3. 03

    Adjunta el PDF (opcional)

    Añade la factura legible por archivo, Base64 o URL.

    POST/invoice_attach_pdf/add
  4. 04

    Genere y envíe el XML UBL

    Peppox crea el XML UBL para una factura o nota de crédito. Si es válido, el flujo Peppox configurado lo envía a Peppol; no se necesita una llamada estructurada /send independiente.

    POST/xml/generate
  5. 05

    Sigue y gestiona

    Consulta documento y estado desde el panel o las APIs de enviados.

    GET/doc-sent/header/list
API NOTE

Importante: /xml/generate/ se comparte entre facturas y notas de crédito. Una respuesta XML_BUILT correcta significa que Peppox ha generado el documento y continúa el envío Peppol configurado. No existe otro endpoint /send para datos estructurados.

07 · Referencia API completa

Cada endpoint compatible, con su contrato exacto.

Parámetros, formatos válidos, solicitudes listas para copiar y respuestas correctas representativas. Los nombres técnicos de los campos se mantienen deliberadamente en inglés para que coincidan exactamente con la API.

01

PDF2Peppol · complete PDF send flow

POST/pdf2peppol/add/ Upload a PDF and create the conversion queue
Autenticación: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de solicitud aceptados: GET or POST; multipart, form data or JSON

Obligatorio

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.

Opcional

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.

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de solicitud aceptados: GET or POST; query string, form data or JSON

Obligatorio

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

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de solicitud aceptados: GET or POST; query string, form data or JSON

Obligatorio

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

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de solicitud aceptados: GET or POST; query string, form data or JSON

Obligatorio

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

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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.

Opcional

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.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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.

Opcional

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.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; multipart, JSON or form data

Obligatorio

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

Opcional

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

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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

Opcional

ParameterFormatDescription
networkstringStored operational network value.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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.

Opcional

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

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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

Opcional

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

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; multipart, JSON or form data

Obligatorio

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.

Opcional

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

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey or api_key is required.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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

Opcional

ParameterFormatDescription
networkstringStored operational network value.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: apikey query/form value, or Authorization: Bearer API_KEY.Formatos de solicitud aceptados: GET or POST; apikey can also be an Authorization: Bearer token

Obligatorio

ParameterFormatDescription
apikeystringAccount API key.

Opcional

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.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the account API key associated with the documents.Formatos de solicitud aceptados: GET, POST or JSON body

Obligatorio

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Opcional

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.

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the account API key associated with the invoice.Formatos de solicitud aceptados: GET query string

Obligatorio

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

Opcional

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

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • The API verifies that the invoice belongs to the supplied supplier_id before returning lines.
GET/doc-received/header/list/ List received document headers
Autenticación: supplier_id is the account API key / Company supplier identifier.Formatos de solicitud aceptados: GET, POST or JSON body

Obligatorio

ParameterFormatDescription
supplier_idstringAccount API key / supplier identifier.

Opcional

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.

Solicitud de ejemplo

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"

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: supplier_id is the account API key / Company supplier identifier.Formatos de solicitud aceptados: GET, POST or JSON body

Obligatorio

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

Opcional

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.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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
Autenticación: No Peppox account key is required for this public lookup helper.Formatos de solicitud aceptados: GET or POST; JSON or form data

Obligatorio

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

Opcional

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.

Solicitud de ejemplo

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

Respuesta correcta representativa

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

Notas de implementación

  • 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 · Pruebas sin código

Comprende cada solicitud en el panel antes de programarla

Los formularios guiados del panel Peppox llaman a las APIs por ti. Prueba documentos reales, descubre los parámetros obligatorios y comprende la respuesta JSON antes de conectar tu ERP.

  1. 01Elige un endpoint y completa sus campos
  2. 02Ejecuta la solicitud sin cliente de pruebas
  3. 03Inspecciona GUID, JSON y errores
  4. 04Valida el flujo en integración
  5. 05Reutiliza la solicitud funcional en tu backend
  6. 06Controla documentos enviados y recibidos
Guarda estos identificadores

El estado de integración es sencillo

invoice_guid

Une cabecera, líneas, PDF y XML generado.

queue_guid

Une las cuatro llamadas PDF2Peppol durante la extracción.

GUID del documento

Une el documento final con la entrega y conciliación.

Si falla una solicitud

400Revisa campos ausentes o inválidos.401Verifica la clave API y el entorno.404Verifica el GUID de la llamada anterior.429Reduce el ritmo y reintenta con espera progresiva.500Registra la solicitud, reintenta de forma segura y contacta con Peppox si persiste.
Peppox

Una sola conexión a la red Peppol.

Envíe, reciba y supervise documentos Peppol a través de una única API segura y un panel de control claro.