Certified Peppol Access Point · POP000991

Peppol API Integration
for ERPs, SaaS and Finance Systems

One REST API to send and receive compliant e-invoices across the Peppol network and 50+ countries. Certified Access Point, SMP, Schematron validation, PINT support, AS4 delivery — all behind a single X-API-Key header.

Peppol BIS 3.0 + PINT
UBL 2.1 / JSON / CSV input
Webhooks + SSE
ISO 27001
POST /peppol-api/api/v1/invoices
curl -X POST https://app.goroute.ai/peppol-api/api/v1/invoices \
  -H "X-API-Key: $GOROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sender": "0192:123456789",
    "receiver": "0088:9482884590000",
    "customization_id": "urn:peppol:pint:billing-1@aunz-1",
    "document": { ... UBL or JSON ... }
  }'

{
  "id": "inv_01J9Y...",
  "status": "accepted",
  "validation": { "schematron": "pass" },
  "as4_transmission": "queued"
}

What is Peppol API integration?

Peppol API integration is the process of connecting a business system — an ERP such as SAP S/4HANA or Microsoft Business Central, an accounting package such as Odoo or Zoho Books, or a SaaS billing platform such as Stripe or Zuora — to the Peppol network via a certified Access Point exposed as a REST API.

Instead of implementing AS4 messaging, G3 PKI certificates, EN 16931 Schematron validation and SMP/SML discovery yourself, you POST a UBL, JSON or CSV document to a single endpoint. GoRoute's certified Access Point (POP000991) handles conversion, validation, signing, routing and delivery to any of the 200,000+ participants registered on Peppol.

The same API also covers DBNAlliance in the United States, Finvoice in Finland, and national CTC systems including Fawtara Oman, ZATCA Saudi Arabia, KSeF Poland, SDI Italy, XRechnung Germany and MyInvois Malaysia — so a single integration unlocks 50+ countries.

Core capabilities of the Peppol API

Send invoices

POST UBL 2.1, JSON or CSV. Automatic BIS 3.0 / PINT selection based on sender and receiver country.

Receive invoices

Inbound AS4 messages delivered to your webhook URL as structured JSON plus the original UBL XML.

Validate

Four-layer validation: UBL XSD → business rules → eDEC code lists → CEN/BIS + PINT Schematron.

SMP lookup

Discover any Peppol participant's capabilities and routing via GET /participants/{id}/lookup.

PINT jurisdictions

A-NZ, Oman, Japan, Malaysia, Singapore, EU — auto-detected from CustomizationID.

CTC clearance

Fawtara (Oman), ZATCA (Saudi), KSeF (Poland), SDI (Italy), MyInvois (Malaysia), FIRS (Nigeria).

Webhooks + SSE

Real-time status updates for delivered, MLR, and errored messages. HMAC-signed payloads.

SDKs

Python, Node.js, PHP, Java, .NET. OpenAPI 3.1 spec for any other language.

Multi-tenant

Every request scoped by org_id. Ideal for white-label and multi-subsidiary deployments.

Integrate in three steps

1

Get sandbox key

Sign up at app.goroute.ai. A sandbox API key and test Peppol participant ID are issued instantly — no credit card.

2

POST your first invoice

Submit UBL, JSON or CSV to /peppol-api/api/v1/invoices. Schematron errors come back synchronously so you can fix the mapping before going live.

3

Go live

Register your production Peppol participant via the API, switch to the prod key, and you're exchanging real invoices over AS4 in minutes.

Receiving inbound invoices

Inbound Peppol messages are POSTed to your webhook URL as JSON. The original UBL XML is included so you can archive the legal document as required by your jurisdiction.

POST https://your-app.example.com/hooks/peppol
X-GoRoute-Signature: sha256=...
Content-Type: application/json

{
  "event": "invoice.received",
  "id": "inv_01J9Z...",
  "direction": "inbound",
  "sender":   "0192:123456789",
  "receiver": "0088:9482884590000",
  "document_type": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice",
  "customization_id": "urn:peppol:pint:billing-1@om-1",
  "profile_id": "urn:peppol:bis:billing",
  "received_at": "2026-04-23T14:31:02Z",
  "parsed": { "invoice_number": "INV-2026-0412", "total": { "currency": "OMR", "amount": "1260.000" } },
  "ubl_xml_url": "https://app.goroute.ai/peppol-api/api/v1/invoices/inv_01J9Z.../ubl"
}

Validation before transmission

Every outbound invoice passes through four sequential validation layers. A Schematron error rejects the document before AS4 transmission; only warnings are allowed to pass.

1

UBL 2.1 XSD

Structural validation of the OASIS UBL 2.1 schema using lxml.

2

Business rules

Cross-field checks on totals, line calculations, tax bases, and currency consistency.

3

eDEC code lists

Participant schemes, document types, process IDs and country codes — synced from OpenPeppol.

4

Schematron (CEN/BIS + PINT)

CEN-EN16931-UBL + PEPPOL-EN16931-UBL baseline for EU flows, or PINT OM / A-NZ / SG / MY / JP / EU for non-EU jurisdictions, compiled to XSLT via Saxon-HE 12.4.

Peppol API integration FAQ

How long does a Peppol API integration take?

Typical REST-API integrations are live in 1–2 weeks. Full ERP connector deployments (SAP, Microsoft, Oracle) take 2–4 weeks. Sandbox access is immediate.

What is the difference between an Access Point and an SMP?

An Access Point (AP) sends and receives AS4 messages. An SMP (Service Metadata Publisher) stores each participant's capability profile so other APs can discover where to route messages. GoRoute operates both a certified AP and a certified SMP under seat POP000991.

Do I need my own Peppol participant ID?

Yes — each legal entity needs its own participant ID (typically based on VAT number, ABN, NZBN, UEN, etc.). GoRoute registers and maintains your participant ID in the SMP and SML as part of the integration.

Can I white-label the Peppol API?

Yes. Our Hosted Infrastructure product deploys a complete AP + SMP under your brand, with your own G3 certificates and domain, in about four weeks.

What are the rate limits?

Sandbox is 30 req/min. Production limits are tier-based, starting at 600 req/min on the standard plan and customisable for high-volume integrators.

Where is data stored?

In encrypted PostgreSQL on AWS (ISO 27001 regions). Retention matches the sender's legal jurisdiction (typically 5–10 years). GDPR and HIPAA compliant.

Which ERPs have pre-built connectors?

SAP (S/4HANA, Business ByDesign, ECC), Microsoft (Dynamics 365, Business Central), Oracle, Odoo, Sage, Zoho, Certinia, Stripe, Zuora and Tally.

Ready to integrate Peppol?

Free 14-day sandbox. Certified Access Point. Global coverage.