Before your ERP or platform sends an invoice, order or other Peppol document, it can ask Qvalia whether the recipient’s Peppol ID is registered and which document types the recipient can receive. A document sent to a participant that is not registered for it is rejected by the network, so the check lets your system catch a missing or wrong Peppol ID before anything is sent.
# Account API
GET /account/{accountRegNo}/action/lookup/peppol/{peppolId}
# Partner API
GET /partner/{partnerRegNo}/peppol/lookup/{peppolId}
| Account API | Partner API | |
| Used by | Companies that send from their own Qvalia account | Platforms and service providers that send on behalf of their customers |
| Optional filter | docTypeRoot, for example Invoice or CreditNote | docTypeRoot, for example Invoice, OrderResponse or MLR |
| Base URLs | Sandbox api-test.qvalia.com, production api.qvalia.com | Sandbox api-test.qvalia.com, production api.qvalia.com |
When to check a recipient
- When a customer is created in your system, or its Peppol ID changes
- When a user types in a Peppol ID by hand
- Before you send a document type the recipient has not received from you before, for example a first order response or credit note
Make the request
- Write the Peppol ID as scheme and identifier separated by a colon, for example
0007:1234567890for a Swedish organization number. - Send a GET request to the lookup endpoint, with your API key or a JWT in the
Authorizationheader. - Add
docTypeRootif you want the answer for one document type, named by its UBL root element.
GET /account/{accountRegNo}/action/lookup/peppol/0007:1234567890
?docTypeRoot=Invoice
Host: api-test.qvalia.com
Authorization: <your API key>
Read the response
| Status | Meaning | What to do |
| 200 | The participant as registered on Peppol, with the document types it can receive | Send if the document type you need is listed |
| 422 | The Peppol ID is not in the form scheme:identifier | Correct the format, for example 0007:1234567890 |
| 429 | Too many requests for your account | Wait as long as the Retry-After header says, then retry |
The Partner API response also contains exists, which tells whether the Peppol ID is registered at all, rootDocTypeExists, which tells whether it can receive the document type in docTypeRoot, and the list of docTypes.
If the recipient is not registered for the document type, ask it for its correct Peppol ID, or agree on another way to deliver the document.
Check a single recipient by hand
To check one company without an integration, use Peppol ID search.
Related: Peppol SMP and SML · What a Peppol ID is · Invoicing API · API reference