# info.summary
Public, read-only HTTP API for the OpenPeppol SML, SMP, and Peppol Directory.

# info.description
PeppolCheck.fr resolves a Peppol participant identifier (e.g. `0208:0848934496`) to a registry record (name, country, document types) and an SMP access point (hostname, service count, endpoint). It also offers full-text search by company name, VAT number, or registry ID. The API is unauthenticated, free, and rate-limited per IP. Data is sourced from the official OpenPeppol SML, per-participant SMP responses, and the Peppol Directory, refreshed nightly.

# tags[].description
Resolve a Peppol participant by identifier.

# tags[].description
Natural-language agent interface (NLWeb /ask).

# paths./api/v1/participant/{participantId}.get.description
Returns the combined Peppol Directory record and SMP access point for the given participant identifier. The path parameter must be the canonical `{scheme}:{value}` form (e.g. `0208:0848934496`). The colon may be URL-encoded as `%3A`; both forms work.

# paths./api/v1/participant/{participantId}.get.parameters[].description
Peppol participant identifier in `{scheme}:{value}` form. `scheme` is a 4-digit ISO 6523 code; `value` is the issuer-specific registration value.

# paths./api/v1/participant/{participantId}.get.responses.200.content.application/json.examples.cawete.value.directory.frStatus.description
Publié dans l'annuaire PPF de la DGFiP avec une plateforme agréée active. Cette entreprise peut recevoir des factures électroniques B2B domestiques (Flux 1) et le rapport fiscal sera transmis à l'administration.

# paths./api/v1/participant/{participantId}.get.responses.400.content.application/json.example.error.message
'foo' is not a valid Peppol participant identifier

# paths./api/v1/participant/{participantId}.get.responses.404.description
Participant is not on the Peppol network.

# paths./api/v1/search.get.summary
Search Peppol participants by name, VAT, or registry ID

# paths./api/v1/search.get.description
Returns up to 25 Peppol Directory matches for the query. Matches against company name, VAT number, and registry IDs (SIREN, KvK, OrgNr, CBE, …).

# paths./api/v1/search.get.parameters[].description
Search query. Must be at least 2 characters.

# paths./api/v1/search.get.responses.502.description
Upstream Peppol Directory search failed.

# paths./ask.post.summary
Natural-language agent query (NLWeb /ask)

# paths./ask.post.description
Microsoft NLWeb-compatible endpoint. Accepts a natural-language query and returns JSON with `_meta`. Set `Accept: text/event-stream` to receive Server-Sent Events with NLWeb `start`, `result`, and `complete` events.

# paths./ask.post.requestBody.content.application/json.schema.properties.query.description
Natural-language query, e.g. 'Find Carrefour on Peppol'.

# paths./ask.post.responses.200.description
NLWeb response. JSON by default, SSE if `Accept: text/event-stream`.

# components.schemas.FrDgfipStatus.description
Parsed French DGFiP / PPF assujetti status. Populated only when the Peppol Directory returned an `additionalInfo` value matching one of the AIFE markers (`FR_ASSUJETTI_ACTIVE`, `FR_ASSUJETTI_INACTIVE`, `FR_ASSUJETTI_UNKNOWN`). See https://peppolcheck.fr/aide/statut-dgfip for the integrator playbook.

# components.schemas.FrDgfipStatus.properties.raw.description
Verbatim marker string as published by the directory.

# components.schemas.FrDgfipStatus.properties.code.description
Normalised status code. `null` when AIFE introduces a new marker we have not catalogued yet.

# components.schemas.FrDgfipStatus.properties.label.description
Short French label suitable for a UI badge.

# components.schemas.FrDgfipStatus.properties.description.description
One-sentence French explanation of what this status means for an invoice issuer.

# components.schemas.FrDgfipStatus.properties.severity.description
`ok` = safe to invoice via Flux 1, `warn` = inactive / out-of-date registration, `info` = unknown.

# components.schemas.FrDgfipStatus.properties.isAssujetti.description
`true` when DGFiP considers the participant active and able to receive domestic B2B Flux 1 invoices. `false` for inactive. `null` for unknown.

# components.schemas.DirectoryEntity.properties.frStatus.description
Parsed DGFiP / PPF status for French participants; `null` otherwise.

# components.schemas.SmpEndpoint.description
Resolved SMP endpoint metadata. Shape mirrors the OpenPeppol SMP ServiceMetadata response.

# components.securitySchemes.anonymous.description
Public API is currently unauthenticated. The scheme is declared so that agents can probe consistently; no token is required.