Peppol Directory Lookup — company records and document types avatar

Peppol Directory Lookup — company records and document types

Pricing

Pay per event

Go to Apify Store
Peppol Directory Lookup — company records and document types

Peppol Directory Lookup — company records and document types

Find company records in the official Peppol Directory by VAT/enterprise number or name. Returns declared document types and explicit found/not-found/invalid-format/error states. Does not establish network reachability.

Pricing

Pay per event

Rating

0.0

(0)

Developer

fetchlab

fetchlab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Peppol Directory Lookup — company records and declared document types

Find a company in the official Peppol Directory by VAT number, enterprise number or name, and read the document types declared on its business card. The Directory is voluntary and incomplete: not found does not mean unreachable on Peppol. This Actor does not query SML/SMP or verify delivery. Official Directory specification.

Data comes live from the official Peppol Directory operated by OpenPeppol (directory.peppol.eu). No scraping, no cached copies.

Why you need this

Belgian B2B e-invoicing requirements and the French reform create demand for structured invoice workflows, but national delivery requirements differ. This Actor verifies only the scope described below; it is not a legal or tax eligibility check. See the Belgian official guidance and French official guidance.

Typical uses:

  • Accounting & ERP teams — bulk-check a customer list before switching invoices from PDF to Peppol.
  • SaaS builders — call it from your onboarding flow to retrieve the customer’s Directory business card and declared document types.
  • AI agents — a single-purpose tool that returns a structured answer to "what does Directory publish about this company?".
  • Sales & compliance — find out which companies in a country or sector are listed in Directory.

Input

FieldDescription
identifiersList of VAT numbers or enterprise numbers, one per line. Accepted formats: BE0202239951, 0202.239.951, 0202239951, NL857982012B01, FR12345678901, DE123456789, or a full Peppol ID such as 0208:0202239951. Spaces, dots and dashes are ignored.
namesOptional list of company names to search (partial match).
countryOptional ISO country code (BE, NL, FR…) to narrow name searches.
defaultCountryCountry assumed for numbers typed without a prefix. Default BE.
maxResultsPerNameMax participants returned per name search (1–100, default 10).
groupNameResultsName searches return one row per company, with every Peppol ID it is registered under in participantIds (default on).
tryAllSchemesCountries have several Peppol identifier schemes (Belgium: 0208 enterprise number and 9925 VAT number). When on, all are tried until a match is found.

Example:

{
"identifiers": ["BE0202239951", "0834.096.436", "NL857982012B01"],
"names": ["proximus"],
"country": "BE"
}

Output

One record per identifier checked, and one per grouped company for name searches (unless grouping is disabled). maxResultsPerName limits participants before grouping; totalMatches is the raw participant count:

{
"type": "identifier",
"input": "BE0202239951",
"registered": true,
"directoryStatus": "found",
"networkReachability": "not-checked",
"participantId": "0208:0202239951",
"participantSchemeLabel": "BE:EN (enterprise number)",
"entityName": "Proximus S.A.",
"entityCountry": "BE",
"registrationDate": "2025-06-02",
"capabilities": {
"acceptsInvoice": true,
"acceptsCreditNote": true,
"acceptsOrder": false,
"acceptsDespatchAdvice": false,
"acceptsBisBilling3": true
},
"documentTypes": [
{ "summary": "Invoice — Peppol BIS Billing 3.0", "document": "Invoice", "profile": "Peppol BIS Billing 3.0", "version": "2.1", "id": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1" },
{ "summary": "Credit note — Peppol BIS Billing 3.0", "document": "CreditNote", "profile": "Peppol BIS Billing 3.0", "version": "2.1", "id": "…" }
],
"schemesTried": ["0208:0202239951"],
"directoryUrl": "https://directory.peppol.eu/public/locale-en_US/menuitem-search?q=0208%3A0202239951",
"checkedAt": "2026-09-13T17:40:00.000Z",
"error": null
}

directoryStatus distinguishes found, not-found, invalid-format and error. The legacy registered flag is true only for a Directory match; never use false as a routing decision. networkReachability is always not-checked. Capabilities are declarations from Directory, not an independently verified SMP response.

Supported countries and identifier schemes

Belgium (0208 enterprise number, 9925 VAT), Netherlands (0106 KvK, 9944 VAT, 0190 OIN), France (0009 SIRET, 0002 SIRENE, 9957 VAT), Germany (9930 VAT, 0204 Leitweg-ID), Italy (0211 Partita IVA, 0210 Codice Fiscale), Luxembourg, Austria, Denmark, Sweden, Norway, Finland, Spain, Portugal, Ireland, Poland, and every other EU/EEA country with a Peppol VAT scheme, plus Australia, New Zealand, Singapore, Japan and Malaysia. You can always pass a full scheme:value Peppol ID for anything else.

Pricing

Pay per event: USD 0.005 per identifier lookup and USD 0.01 per name search. A name search is charged once regardless of returned rows. Prices are unchanged. Network latency and retries affect runtime.

When both identifiers and names are omitted, three demo identifiers are used. Supplying either field disables the demo; explicitly empty sources are rejected. For a name-only request, {"names":["proximus"],"country":"BE"} queries only that name.

Using it from your code

// Apify JS client
const run = await client.actor('fetchlab/peppol-lookup').call({
identifiers: ['BE0202239951', 'NL857982012B01'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
# Apify Python client
run = client.actor("fetchlab/peppol-lookup").call(run_input={"identifiers": ["BE0202239951"]})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Works with the Apify API, the Apify MCP server (so AI agents can call it as a tool), Make, n8n, Zapier and scheduled runs.

Notes and limits

  • The Peppol Directory only lists participants whose Access Point publishes a "business card". A company can technically be reachable on Peppol without appearing in the Directory.
  • The Directory enforces a limit of 2 requests per second; this Actor respects it and retries automatically on temporary errors.
  • Data is returned as published by the Access Points; names and addresses are not normalised.

Looking for VAT validation (VIES), Belgian company data (BCE/KBO) or an e-invoice (UBL / Peppol BIS) validator? See the other Actors by fetchlab.