Passer au contenu

✅ Validate invoice file (Factur-X, UBL, CII)

Requête

Validate an invoice file without submitting it for processing.

Returns the invoice summary on success. Raises a problem response on any format, XSD, or Schematron error — including the mandatory BR-FR-CTC rules for French B2B invoices (both parties on scheme 0225).

Sécurité
APIKeyHeader
En-têtes
X-PDP-Client-Idstring(X-Pdp-Client-Id)obligatoire

ID of the PDP Client for which the operation is performed

Examples:
Sandbox client
client_abc123
Corpsmultipart/form-dataobligatoire
filestring, (binary)(File)obligatoire

Invoice file (FacturX PDF, UBL XML or CII XML)

curl -i -X POST \
  https://pdp.seqino.dev/api/invoicing/files/validate \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: multipart/form-data' \
  -H 'X-PDP-Client-Id: client_abc123' \
  -F file=string

Réponses

Successful Response

Corpsapplication/json
invoice_idstring(Invoice Id)obligatoire
invoice_numberstring or null(Invoice Number)
Any of:
string
type_codestring or null(Type Code)
Any of:
string
statusInvoiceStatus (string) or null
Any of:

Invoice lifecycle status.

Aligned with DGFIP e-invoicing status codes (statuts de cycle de vie):

  • draft — Pre-submission state
  • submitted (200) — Invoice deposited and validated by the sending PDP (mandatory)
  • received (202) — Invoice received by the receiving PDP
  • processed — Invoice accepted for routing
  • accepted (205) — Recipient accepted the invoice
  • partially_accepted (206) — Recipient approved only part of the invoice
  • refused (210) — Recipient refused the invoice (mandatory)
  • paid (211) — Buyer marked the invoice as paid
  • rejected (213) — PDP detected an anomaly on the invoice (mandatory)
  • cashed (212) — Supplier confirmed receipt of payment (mandatory)
string(InvoiceStatus)
Enum:"draft""submitted""received""processed""accepted""partially_accepted""refused""paid""rejected""cashed"
directionDirection (string) or null
Any of:
string(Direction)
Enum:"incoming""outgoing"
original_invoice_typestring(Original Invoice Type)obligatoire
Enum:"CII_EN16931_FR""CII_EXTENDED_CTC_FR""UBL_EN16931_FR""UBL_EXTENDED_CTC_FR""UBL_BIS3""FACTURX_BASICWL""FACTURX_EN16931""FACTURX_EXTENDED""UNKNOWN"
sellerobject(PartyAddress)obligatoire
buyerobject(PartyAddress)obligatoire
buyer_referencestring or null(Buyer Reference)
Any of:
string
currency_codestring or null(Currency Code)
Any of:
string
total_amountnumber or null(Total Amount)
Any of:
number
issue_datestring or null(Issue Date)
Any of:
string (date)
seller_identifierstring or null(Seller Identifier)
Any of:
string
seller_identifier_schemestring or null(Seller Identifier Scheme)
Any of:
string
buyer_identifierstring or null(Buyer Identifier)
Any of:
string
created_atstring or null(Created At)
Any of:
string
status_detailsSubmittedStatusDetails (object) or AcceptStatusDetails (object) or RefuseStatusDetails (object) or RejectionStatusDetails (object) or PaidStatusDetails (object) or CashedStatusDetails (object) or null(Status Details)
Any of:

status_details shape when status == submitted (200 Déposée).

Response
{ "invoice_id": "string", "invoice_number": "string", "type_code": "string", "status": "draft", "direction": "incoming", "original_invoice_type": "CII_EN16931_FR", "seller": { "name": "string", "peppol_id": "string" }, "buyer": { "name": "string", "peppol_id": "string" }, "buyer_reference": "string", "currency_code": "string", "total_amount": 0, "issue_date": "2019-08-24", "seller_identifier": "string", "seller_identifier_scheme": "string", "buyer_identifier": "string", "buyer_legal_registration_id": "string", "created_at": "string", "status_details": { "PeppolSendingFailed": "string", "NotPeppolRoutable": "string", "InvoiceSerializationFailed": "string", "InvalidInputError": "string", "reason_code": "NON_TRANSMISE", "reason_text": "string" } }