Peppol e-invoicing checker — participant lookup avatar

Peppol e-invoicing checker — participant lookup

Pricing

from $10.00 / 1,000 participant checkeds

Go to Apify Store
Peppol e-invoicing checker — participant lookup

Peppol e-invoicing checker — participant lookup

Check if a customer or supplier is registered on Peppol and which e-invoice document types they accept. Direct SML/SMP lookup, access point and certificate details, Directory business card, change tracking.

Pricing

from $10.00 / 1,000 participant checkeds

Rating

0.0

(0)

Developer

Viktor Kondas

Viktor Kondas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Features

Limited permissions

Share

Check whether a customer or supplier is registered on Peppol — and which e-invoice documents they can receive. Paste Peppol IDs or VAT numbers (or search by company name) and get one answer per company: registered or not, the Peppol ID, whether they accept Peppol BIS Billing 3.0 invoices, their access point and certificate dates, and the business card they published. JSON, CSV or Excel, via API, schedules, n8n, Make, Zapier and AI agents (MCP). $0.01 per registered participant found — "not registered" answers are free — no subscription.

Independent tool, not affiliated with OpenPeppol. It reads the public Peppol network (SML DNS, the participant's own SMP) and the public Peppol Directory — no login, no private data.

What does Peppol e-invoicing checker do?

  • Asks the Peppol network itself. Registration is decided by the Peppol SML (DNS) and the participant's SMP — the same lookup an access point does before it sends an invoice. The Peppol Directory is only used for the business card, because publishing there is optional.
  • Works from the identifier you have. A Peppol ID, a VAT number (e.g. BE0123456789, NO974760673MVA), a national company id + country, or just a company name. For VAT numbers and company ids the Actor works out every Peppol identifier that company could be registered under (VAT scheme, national registry scheme, …) and checks them all.
  • Tells you what they can receive: invoices, credit notes, orders, despatch advices, invoice responses, and whether Peppol BIS Billing 3.0, XRechnung or PINT is supported.
  • Shows access point health: access point host, transport (AS4/AS2), certificate expiry — with a warning before invoices start bouncing.
  • Remembers the last run and reports newly_registered, deregistered, document_types_changed or endpoint_changed — schedule it weekly on your supplier list.
  • Never guesses. A DNS or SMP failure is reported as a failed lookup (and is free), never as "not registered".

Who is it for?

You are…You use it to…
AR / billing team, shared service centreCheck which customers can receive Peppol e-invoices before a mandate or a roll-out wave
AP teamFind out which suppliers are reachable on Peppol and which still send PDFs
ERP / e-invoicing integratorVerify a Peppol ID before go-live, test on the Peppol test network, clean partner master data in bulk
Finance data / master data teamAdd "Peppol-ready" and the Peppol ID to the customer and vendor master — pairs with VAT validation

Ready-made examples (one click)

ExampleWhat you get
Check if customers are on Peppol from VAT numbersOne row per VAT number, every possible Peppol identifier tried
Verify a Peppol ID before sending an e-invoiceRegistered? BIS Billing 3.0? Access point and certificate dates
Find Peppol participants by company nameDirectory matches confirmed against the live network
Monitor when suppliers become reachable on PeppolSchedule weekly, get newly_registered / deregistered
Check Peppol access point certificate expiryPartners whose certificate or registration is about to expire

How to use it

  1. Paste Peppol IDs or VAT numbers into Peppol IDs or VAT numbers (one per line) — or open an example above.
  2. Optional: add Records (JSON) with your own reference, company ids or names.
  3. Set Max paid results — it is also your cost cap. Click Start. Filter the dataset by verdict, or download it.

Input

FieldRequiredDescription
participantsone of these twoPeppol IDs (0088:5790000436507) or VAT numbers with country prefix (BE0123456789), one per line
recordsone of these twoJSON objects: reference (your customer number, echoed back), peppolId, vatNumber, companyId + country, scheme, name (+ country)
maxParticipantsnoCap on paid results (registered participants) and cost. Default 100
networknoproduction (default) or test (Peppol test network)
includeBusinessCardnoCompany name, country, address line, websites from the Peppol Directory. Default on
includeEndpointDetailsnoAccess point, transport, certificate dates. Default on
includeContactsnoContact persons from business cards. Off by default (personal data)
maxCandidatesPerNamenoMatches to verify per name search. Default 3
expiryWarningDaysnoWarn when a certificate or registration expires within this many days. Default 30
trackHistory / historyStoreNamenoCompare with the previous run of the same list. History lives in a key-value store in your account

Records example:

[
{ "reference": "C-1001", "country": "NO", "companyId": "974760673" },
{ "reference": "C-1002", "vatNumber": "BE0123456789" },
{ "reference": "C-1003", "peppolId": "0088:5790000436507" },
{ "reference": "C-1004", "name": "Example Trading", "country": "DE" }
]

Output

Example row (fictitious company — your rows contain the real data):

{
"reference": "C-1002",
"input": "BE0123456789",
"queryType": "vat-number",
"network": "production",
"verdict": "registered",
"registered": true,
"peppolId": "iso6523-actorid-upis::0208:0123456789",
"participantScheme": "0208",
"participantSchemeName": "Belgian enterprise number",
"alsoRegisteredAs": ["iso6523-actorid-upis::9925:BE0123456789"],
"canReceiveInvoice": true,
"canReceiveBisBillingInvoice": true,
"profiles": ["Peppol BIS Billing 3.0", "Peppol BIS Order 3"],
"documentTypeCount": 4,
"accessPointHost": "ap.example.com",
"transportProfile": "peppol-transport-as4-v2_0",
"certificateValidUntil": "2027-03-01T00:00:00.000Z",
"certificateDaysLeft": 118,
"endpointWarning": null,
"directoryListed": true,
"businessName": "Example Trading BV",
"change": "unchanged",
"explanation": "Registered on Peppol as Example Trading BV (0208:0123456789) [Belgian enterprise number]. It can receive invoices (Peppol BIS Billing 3.0), credit notes, orders via ap.example.com (peppol-transport-as4-v2_0). Access point certificate valid until 2027-03-01.",
"sourceUrl": "https://smp.example.com/iso6523-actorid-upis%3A%3A0208%3A0123456789",
"status": "ok",
"scrapedAt": "2026-11-27T08:00:00.000Z"
}

Each row also lists documentTypes (id, family, profile), capabilities, schemesTried (every identifier that was probed and what the network answered), smpUrl and the full businessCards.

VerdictMeaningCharged?
registeredIn the Peppol SML; document types read from the participant's SMPYes
not_registeredThe SML has no participant for the identifier(s) tried — a definitive answer (status: not_found)No — free
registered_unconfirmedIn the SML, but its SMP did not answer — document types unknownNo (status: partial)
lookup_failedDNS/SMP/Directory trouble — says nothing about registrationNo
invalid_input / unsupported_countryCould not be checked; the explanation says whyNo
no_matchName search found nothing in the DirectoryNo

How much does it cost?

EventPriceWhen
Actor startApify defaultOnce per run
Participant checked$0.01Each participant found registered (document types read from its SMP)

100 registered participants ≈ $1.00 · 1,000 ≈ $10. Participants that are not registered, invalid input, unsupported countries, DNS/SMP failures and name searches without a match are not charged — you only pay when there is a registration to report. Higher Apify plans get Store discounts automatically. Set Max cost per run in the run options for a hard budget.

Schedule it

Weekly (Monday 07:00) on your supplier and customer master data is enough to catch registrations and certificate problems. Use a different History store name for each list.

Use with AI agents (MCP)

"Use kondasviktor/peppol-e-invoicing-participant-checker to check which of these 40 customers can receive Peppol BIS Billing 3.0 invoices: …"

FAQ

What is Peppol? An international network for exchanging e-invoices and other business documents. A company registers its identifier with a Peppol access point; senders look the participant up in the Peppol SML and the participant's SMP to find where to deliver.

Does "not registered" mean the company cannot be reached on Peppol? (Free — you are not charged for it.) Under the identifiers we tried, yes. A company can be registered under a different identifier — for example a GLN — that cannot be derived from a VAT number. If you know its Peppol ID, pass it and the answer is exact.

Is "not listed in the Peppol Directory" the same as "not registered"? No. Publishing in the Directory is optional. Registration is decided by the SML; the Directory only supplies the business card.

Does "registered" mean they will accept my invoice? It means documents can be delivered to them over Peppol and which document types they accept. Business rules (PO numbers, routing identifiers) are between you and your customer.

How is this different from VAT validation (VIES)? VIES tells you whether a VAT number is valid. This tells you whether the company can receive e-invoices over Peppol. Use both — see Company Data Verifier.

How is this different from an access point provider? Access point providers send and receive your invoices under a contract. This Actor only answers "can I reach them on Peppol, and how?" — before you send, and in bulk, for a cent.

Which countries work? Any identifier registered on the Peppol network. VAT numbers and company ids are converted automatically for most European countries; for other countries pass the Peppol ID.

Test network? Set Peppol network to test to look up participants on Peppol's test network.

Something looks wrong. Open an issue with the input and the explanation — fixes within 48 hours.

Limitations

  • Reads what the Peppol network publishes. It does not send documents, validate invoices or prove that an invoice will be accepted.
  • SMP responses are not signature-verified in v1.
  • Business cards exist only for participants that published one. Contact persons are off by default.
  • The Peppol Directory is rate-limited, so business cards are fetched at a polite pace (about 1–2 per second).

Built by Viktor Kondas · Vibe Coder's Life · Custom integrations: hello@vibecoderslife.com