Peppol Lookup API
What the API answers
The Peppol Lookup API is the machine-readable version of the /peppol-lookup/ and /peppol-directory/ pages. It serves JSON, and participant lookups also as Markdown, so scripts and AI agents can use the same data the pages show. It answers two kinds of question:
-
One participant. Is
0192:745707327registered in Peppol, through which Access Point, with which document types, and what do those identifiers mean? -
The whole network. How many participants use scheme
0192, how many Norwegian participants receive Peppol BIS Billing invoices, how fast is the network growing?
The API exists for debugging, testing, learning and tooling. It is not a reachability check for production invoice flows and comes without guarantees. Keep to one lookup per question, do not loop over participant lists, and respect 429 responses and their Retry-After header.
Two hosts
Reference data is generated by the documentation build and served as static files from this site. Participant endpoints run live lookups on the lookup service. Every response carries absolute links, so a client that follows them never needs to know which host it is talking to.
| Endpoints | Host | Source | Refresh |
|---|---|---|---|
/api/v1/network/*, /api/v1/schemes/*, /api/v1/countries/*, /api/v1/document-types/*
|
documentation.maventa.com |
eDEC code lists joined with the nightly Peppol Directory aggregates | Nightly |
/api/v1/participants/* |
peppol-lookup.documentation.maventa.com |
SML, SMP, Access Point certificates and the Peppol PKI, enriched with the reference data | Per request |
No authentication is needed. Static files may be cached for up to an hour. The lookup host limits each client to 100 requests per 5 minutes.
Data sources and freshness
Every response has a meta.sources block that says where each part came from and how old it is. Always read the asOf timestamp before quoting a number.
| Source | kind |
Provides | Refresh |
|---|---|---|---|
| SML and SMP | live |
Access Point endpoints, transport profiles, certificates, business card | Per request |
| Peppol Directory import | nightly-import |
Participant name, country, registration date, registered document types | Nightly |
| Directory aggregates | nightly-aggregate |
Participant counts per scheme, country and document type, growth series | Nightly |
| Peppol eDEC code lists | code-list |
Identifier scheme, document type and process metadata, with the eDEC release in version
|
Per eDEC release |
Counts are a snapshot of the public Peppol Directory, not of the SML. A participant whose Access Point publishes no business card is not counted. Per-country totals count business-card entities, while the breakdowns by scheme and document type count one country per participant, so the two can differ slightly for the same country.
Identifiers
-
Schemes are four-digit ISO 6523 International Code Designators, for example
0192for the Norwegian organisation number. Schemes that appear in the directory but not in the eDEC code list have aschemeIdofnulland no scheme file. -
Country codes are mostly ISO 3166-1 alpha-2. The directory also contains values such as
XX(no country on the business card),ZZ(unknown) andUK, which the API passes through unchanged. -
Document types get a stable short
id: the first 12 hexadecimal characters of the SHA-256 hash of the full document type identifier. It never changes for a given identifier and is safe in URLs. The index lists the full identifier next to eachid.
Files
OpenAPI contract (YAML)
The full OpenAPI 3.0 description of every endpoint, schema and example.
OpenAPI contract (JSON)
The same contract as JSON, for tools that do not read YAML.
Network summary
Totals, top schemes, countries and document types, and registration growth.
Scheme index
Every eDEC participant identifier scheme with its participant count.
Examples
Participant count and top document types of the Norwegian organisation number scheme:
Live lookup of one participant, rendered as Markdown:
Participants in the directory import that receive a given document type, with a links.lookup URL for each hit:
Stability
Within v1, fields are only added, never renamed or removed. Enumerations may gain values, so treat unknown values as unknown. Breaking changes get a new path prefix.
Try it out with Swagger
Try the API below. The reference endpoints answer from this site. The participant endpoints run a live lookup on the lookup service and take a few seconds.
Peppol Lookup API v1
- Endpoint URL: https://documentation.maventa.com
- Swagger definition URL: https://documentation.maventa.com/api/v1/openapi.yml