Skip to main content

E-Directory

The E-Directory screen is the user-facing search tool for finding a French company in the INSEE registry (recherche-entreprises.api.gouv.fr) and checking whether the matching SIREN / SIRET entries are reachable on the PPF directory for electronic invoice delivery.

Use this page when:

  • you need to look up a customer's exact SIREN / SIRET before issuing an invoice;
  • you want to confirm a buyer is registered on the Plateforme Publique de Facturation (PPF) and ready to receive an electronic invoice;
  • you are debugging an addressing rejection (e.g. REJ_ADR) and need to verify the directory state for a specific identifier.

The page applies regardless of source system — JD Edwards, SAP, NetSuite or a custom ERP.

The two underlying lookups are independent and have different roles:

  • INSEE search — verifies that the company exists and pulls its name, address, administrative state. Free public API, no credentials needed.
  • PPF directory check — verifies that the SIREN / SIRET is registered as a recipient on the Plateforme Publique de Facturation. Uses the credentials configured in Configuration → System → e-directory.

See the Configuration → System → e-directory page for the broader context — credentials, search roles and the PPF / INSEE distinction.


At a glance​

E-DirectorySearch companyCompany name, SIREN (9 digits) or SIRET (14 digits)…🔍 SearchResults — one card per company (SIREN)▾ACME ManufacturingSIREN 123 456 789 · 12 rue de Rivoli, 75001 ParisActive5 lines · 4 enabledÉtablissements (INSEE)12345678900012 — 12 rue de Rivoli, 75001 Paris · Active12345678900037 — 8 av. du Général Leclerc, 92100 Boulogne · ActiveElectronic addresses123456789 · SIREN✓ enabled12345678900012 · SIREN+SIRET✓ enabled123456789_FGX · routing suffix✕ disabled1 company · 2 establishments · 5 electronic addressesINSEE is queried first (free public API); one PPF directory call per company then lists every registered identifier, using the credentials under Configuration → System → e-directory.One search fieldname · SIREN · SIRET — auto-detectedDirectory summarylines · how many enabledElectronic addressesevery identifier · enabled / disabled

How a search runs​

👤 Queryname · SIREN · SIRET🔍 INSEErecherche-entreprises.api.gouv.fr📋 Results tableSIREN / SIRET rows📡 PPF directory/api/check-directorySearchmatchesper row✓ reachablegreen chip⚠ not foundorange chip✕ errorred chip

The two lookups happen in sequence: INSEE first to populate the companies, then one PPF directory call per company to list its registered identifiers. The user sees the results fill in two passes.


Search section​

A single input + button at the top of the page.

ElementBehaviour
Search fieldFree-text query: company name, partial name, SIREN, SIRET, or any combination. Press Enter or click Search to submit.
Search buttonTriggers the INSEE lookup. Disabled while a search is in progress and when the field is empty.

The query is sent to recherche-entreprises.api.gouv.fr server-side; the API returns matching companies with their full establishment data.


Results​

Results are grouped by company: one collapsed card per SIREN, showing the legal name, the head-office address, the INSEE administrative state and an electronic-address summary — how many electronic addresses the PPF holds for the company and how many are enabled. Expand a card to reveal two groups:

Establishments (INSEE)​

An inner collapsible list of the company's establishments — each SIRET with its address and administrative state, from the INSEE registry. Searching by SIREN or SIRET now lists all establishments of the company (a second INSEE lookup by company name fills what the numeric search omits).

Electronic addresses​

Every identifier registered for the SIREN on the PPF, whatever its form — a SIREN, a SIREN + SIRET, a routing code or a suffix — each with its enabled / disabled state. Identifiers that carry a suffix, such as 422250845_FGX, are listed here too — a form the previous per-row check could not surface.

✓Enabled— Registered and reachable on the PPF; an invoice addressed to it is delivered.
✕Disabled— Registered but not currently reachable; addressing it would return a routing error (REJ_ADR).

The listing goes through the connector's directory-check-siren endpoint, which returns the full lines with per-endpoint response mappings (ATGP, Yooz and Esker shapes are supported — including numeric reachability flags such as Esker’s HasAssignedPlatform 1/0 alongside true/false). When that endpoint isn't configured, the page says so rather than guessing — set it under Configuration → System → e-directory. The processing-time directory check is unchanged; the older directory-check-siret endpoint is obsolete.

Peppol directory​

Expanding a company card also queries the public Peppol network — no account needed. A Peppol directory group lists each registered participant for the SIREN (French registrations use ICD 0225, per-establishment identifiers included), with its name, its registration date, and the service provider that operates it — the PA (e.g. Pennylane) with its Peppol seat id, resolved through the official SML/SMP discovery. The access-point and SMP URLs sit in the provider's tooltip.

ColumnContent
ParticipantThe Peppol participant identifier (ICD + value, e.g. 0225:80320631700015).
Plateforme (PA)The service provider operating the participant, with its seat id; non résolu when the SMP step couldn't resolve it.
Enregistré leThe participant's Peppol registration date.

The lookup runs on the first expand only and is also exposed as POST /api/peppol-lookup for integrations (see the API reference). A participant with no reachable provider still lists its registration and name — only the Plateforme cell reads non résolu.


Network flows (firewall)​

Every E-Directory external call is made server-side — from the NomaUBL server, not the user's browser — so the firewall rules apply to the server's outbound traffic. Besides the PA connector, the destinations are:

PurposeDestinationPort / Protocol
Company search (INSEE)recherche-entreprises.api.gouv.frHTTPS 443
Peppol directory (business card)directory.peppol.euHTTPS 443
Peppol SML resolutionDNS NAPTR queries on *.iso6523-actorid-upis.edelivery.tech.ec.europa.euDNS 53 (via the server's normal resolver)
Peppol SMP (provider resolution)dynamic — the SMP host of each participant's platform (e.g. smp.pennylane.com)HTTPS 443

What matters for the rules:

  • INSEE and directory.peppol.eu are fixed hostnames — easy to whitelist. The INSEE entry also covers the invoice modal's client search and the Fix buyer search (same API).
  • The SML step is DNS only — no HTTP. If the server already resolves public DNS through the corporate resolver, there is nothing to open; it only breaks when outbound DNS is restricted to internal zones.
  • The SMP host can't be whitelisted in advance — it's whatever domain each buyer's platform uses (Pennylane, Esker, Yooz… one per participant), so provider resolution needs a broad HTTPS 443 outbound allowance to work generally. If that isn't acceptable, the impact is graceful: the Peppol section still shows the participant, name and registration date from directory.peppol.eu, and the Plateforme column reads non résolu.

Result count​

Above the results, a small label indicates the number of companies returned by INSEE for the query (e.g. 12 results).


Tips & best practices​

  • Search by name first, then narrow down. INSEE returns the legal entity (SIREN) and its establishments (SIRET) — picking the right SIRET avoids the common "right SIREN, wrong establishment" mistake when issuing invoices.
  • A disabled line is not always permanent. A buyer may not yet be registered, or a specific identifier not yet enabled; ask them to register before re-trying. The directory state changes daily as more companies subscribe to the PPF.
  • Match the exact identifier, not just the SIREN. The electronic-address lines show which form is actually reachable — a plain SIREN, a SIREN + SIRET, or a suffixed code. Address the invoice to an enabled line; a company can have several, only some enabled.
  • Cross-check the establishment state. A ceased establishment cannot receive an invoice even if the company appears in the directory. Check the INSEE state on the establishment before trusting an electronic-address mapping.
  • If the lines don't appear, wire the endpoint. An empty directory list with a "not configured" note means the connector has no directory-check-siren endpoint — set it under Configuration → System → e-directory, with the response mappings for your platform (ATGP, Yooz).