Peppox Developer Platform

Envie a sua primeira fatura pela Peppol, passo a passo.

Escolha o percurso adequado ao seu sistema, desde a primeira chamada API ao acompanhamento da entrega.

PEPPOX / INTEGRATION FLOW
  1. 01Painel
  2. 02Chave API
  3. 03Fatura
  4. 04Validar
  5. 05Peppol
READY TO BUILD
01 · Antes da primeira chamada

Quatro elementos preparados uma única vez

Configure primeiro a conta e o perfil do fornecedor. A aplicação reutiliza depois as mesmas credenciais em cada documento.

  1. 01

    Crie a conta Peppox

    Registe a empresa legal que enviará os documentos.

  2. 02

    Complete o perfil do fornecedor

    Dados da empresa, IVA, banco e routing Peppol vêm da conta.

  3. 03

    Abra o ambiente de integração

    Teste com segurança nas ferramentas do painel antes da produção.

  4. 04

    Copie a chave API

    Guarde-a apenas no servidor; nunca no browser ou numa aplicação móvel.

02 · Escolha o percurso mais curto

Comece com os dados que já possui

GRUPO 2 · API DE FATURA ESTRUTURADAERP / contabilidade / SaaS
{ }

Crie e controle cada campo do documento.

Utilize esta série de endpoints quando o seu ERP ou software gere os dados da fatura e necessita de controlo preciso sobre cabeçalho, linhas, PDF e XML UBL.

  1. Cabeçalho
  2. Linhas do documento
  3. Anexo PDF
  4. Gerar XML UBL
  5. Gerir e acompanhar
Ver este fluxo →
03 · PDF2Peppol

Um envio completo em quatro chamadas API

O percurso documentado mais direto quando o sistema já produz faturas em PDF.

  1. 01

    Carregue o PDF

    Envie ficheiro, Base64 ou URL e guarde queue_guid.

    POST/pdf2peppol/add
  2. 02

    Verifique os dados extraídos

    Consulte até terminar e confirme comprador, totais, IVA e linhas.

    GET/pdf2peppol/check
  3. 03

    Confirme o documento

    Confirme apenas quando todos os dados extraídos estiverem corretos.

    POST/pdf2peppol/confirm
  4. 04

    Envie para a Peppol

    Envie o documento confirmado e guarde o GUID do documento.

    POST/pdf2peppol/send
Exemplo mínimo

Upload → check → confirm → send

Substitua os valores de exemplo pela sua identificação e pelos IDs da chamada 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 fatura estruturada

Crie uma fatura pronta para Peppol a partir dos seus dados

Ideal quando o ERP já guarda todos os campos e linhas de forma estruturada.

  1. 01

    Crie o cabeçalho

    Envie cliente, datas, moeda, pagamento e entrega; guarde invoice_guid.

    POST/invoice/add
  2. 02

    Adicione as linhas

    Repita para cada produto ou serviço.

    POST/invoice_line/add
  3. 03

    Anexe o PDF (opcional)

    Adicione a fatura legível por ficheiro, Base64 ou URL.

    POST/invoice_attach_pdf/add
  4. 04

    Gere e envie o XML UBL

    A Peppox cria o XML UBL para uma fatura ou nota de crédito. Se for válido, o fluxo Peppox configurado envia-o para a Peppol; não é necessária uma chamada estruturada /send separada.

    POST/xml/generate
  5. 05

    Acompanhe e gira

    Consulte documento e estado no painel ou APIs de enviados.

    GET/doc-sent/header/list
API NOTE

Importante: /xml/generate/ é comum a faturas e notas de crédito. Uma resposta XML_BUILT bem-sucedida significa que a Peppox gerou o documento e continua o envio Peppol configurado. Não existe outro endpoint /send para dados estruturados.

07 · Referência API completa

Cada endpoint suportado, com o seu contrato exato.

Parâmetros, formatos válidos, pedidos prontos a copiar e respostas bem-sucedidas representativas. Os nomes técnicos dos campos permanecem deliberadamente em inglês para corresponderem exatamente à API.

01

PDF2Peppol · complete PDF send flow

POST/pdf2peppol/add/ Upload a PDF and create the conversion queue
Autenticação: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de pedido aceites: GET or POST; multipart, form data or JSON

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de pedido aceites: GET or POST; query string, form data or JSON

Obrigatório

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

Pedido de exemplo

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

Resposta bem-sucedida 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 implementação

  • 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
Autenticação: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de pedido aceites: GET or POST; query string, form data or JSON

Obrigatório

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

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: supplier_id is the active Company API key. Aliases: apikey, api_key.Formatos de pedido aceites: GET or POST; query string, form data or JSON

Obrigatório

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

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; multipart, JSON or form data

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; multipart, JSON or form data

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey or api_key is required.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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
Autenticação: apikey query/form value, or Authorization: Bearer API_KEY.Formatos de pedido aceites: GET or POST; apikey can also be an Authorization: Bearer token

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida 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 implementação

  • 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
Autenticação: supplier_id is the account API key associated with the documents.Formatos de pedido aceites: GET, POST or JSON body

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida 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 implementação

  • 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
Autenticação: supplier_id is the account API key associated with the invoice.Formatos de pedido aceites: GET query string

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida 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 implementação

  • The API verifies that the invoice belongs to the supplied supplier_id before returning lines.
GET/doc-received/header/list/ List received document headers
Autenticação: supplier_id is the account API key / Company supplier identifier.Formatos de pedido aceites: GET, POST or JSON body

Obrigatório

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.

Pedido de exemplo

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"

Resposta bem-sucedida 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 implementação

  • 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
Autenticação: supplier_id is the account API key / Company supplier identifier.Formatos de pedido aceites: GET, POST or JSON body

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida 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 implementação

  • 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
Autenticação: No Peppox account key is required for this public lookup helper.Formatos de pedido aceites: GET or POST; JSON or form data

Obrigatório

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.

Pedido de exemplo

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

Resposta bem-sucedida representativa

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

Notas de implementação

  • 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 · Testes sem código

Compreenda cada pedido no painel antes de programar

Os formulários guiados do painel Peppox chamam as APIs por si. Teste documentos reais, descubra parâmetros obrigatórios e compreenda o JSON antes de ligar o ERP.

  1. 01Escolha um endpoint e preencha os campos
  2. 02Execute sem criar um cliente de teste
  3. 03Veja GUID, JSON e erros
  4. 04Valide no ambiente de integração
  5. 05Reutilize o pedido funcional no backend
  6. 06Acompanhe enviados e recebidos
Guarde estes identificadores

O estado da integração é simples

invoice_guid

Liga cabeçalho, linhas, PDF e XML gerado.

queue_guid

Liga as quatro chamadas PDF2Peppol durante a extração.

GUID do documento

Liga o documento final à entrega e reconciliação.

Se um pedido falhar

400Verifique campos ausentes ou inválidos.401Verifique chave API e ambiente.404Verifique o GUID da chamada anterior.429Abrande e tente de novo com espera progressiva.500Registe o pedido, repita com segurança e contacte a Peppox se persistir.
Peppox

Uma conexão com a rede Peppol.

Envie, receba e monitore documentos Peppol por meio de uma única API segura e de um único painel claro.