Reference
Participant lookup
Check whether a business can receive documents on Peppol before you invoice them.
GET
/v1/api/participants/lookupThis is a Peppol network lookup, not a business registry — the response confirms reachability and capabilities, not a party's name or country.
| Field | Type | Description | |
|---|---|---|---|
| participant_id | string | required | Scheme-qualified, e.g. 0248:OM1100449002 |
Response fields
| Field | Type | Description | |
|---|---|---|---|
| registered | boolean | — | Whether the participant is reachable on Peppol at all |
| smp_url | string or null | — | The SMP holding this participant's record. Null when the SML has no entry for them |
| access_point_url | string or null | — | Their receiving AS4 endpoint, when the SMP publishes one for a matched document type |
| capabilities[].document_type_id | string | — | Full Peppol document type identifier they've published — bare, not scheme-qualified; scheme is the sibling field below |
| capabilities[].scheme | string | — | peppol-doctype-wildcard for the four PINT OM business documents, busdox-docid-qns for mls |
| capabilities[].kind | string or null | — | SUMU's shorthand for the document type, in the same vocabulary as Register on Peppol's capabilities — e.g. billing_invoice. Null when the identifier doesn't map to a known shorthand |
| reason | string or null | — | Why the lookup came back negative, when it did. Null when registered is true |
An unregistered participant returns 200 with registered: false — that's a valid answer, not a
failed request. If the Peppol directory itself is unreachable (a DNS or SMP outage, not "not
registered"), the call fails with a 400 VALIDATION_ERROR instead — don't treat that the same as an
unregistered participant, since retrying later may find them.