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

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).

Endpoint: POST /invoicing/files/validate
Version: 0.29.6
Security: APIKeyHeader

## Header parameters:

  - `X-PDP-Client-Id` (string, required)
    ID of the PDP Client for which the operation is performed

## Request fields (multipart/form-data):

  - `file` (string, required)
    Invoice file (FacturX PDF, UBL XML or CII XML)

## Response 200 fields (application/json):

  - `invoice_id` (string, required)

  - `invoice_number` (any)

  - `type_code` (any)

  - `status` (any)

  - `direction` (any)

  - `original_invoice_type` (string, required)
    Enum: "CII_EN16931_FR", "CII_EXTENDED_CTC_FR", "UBL_EN16931_FR", "UBL_EXTENDED_CTC_FR", "UBL_BIS3", "FACTURX_BASICWL", "FACTURX_EN16931", "FACTURX_EXTENDED", "UNKNOWN"

  - `seller` (object, required)

  - `seller.name` (any, required)

  - `seller.peppol_id` (any)

  - `buyer_reference` (any)

  - `currency_code` (any)

  - `total_amount` (any)

  - `issue_date` (any)

  - `seller_identifier` (any)

  - `seller_identifier_scheme` (any)

  - `buyer_identifier` (any)

  - `buyer_legal_registration_id` (any)

  - `created_at` (any)

  - `status_details` (any)
    Typed status-transition details; shape depends on `status`.

  - `status_details.PeppolSendingFailed` (any)

  - `status_details.NotPeppolRoutable` (any)

  - `status_details.InvoiceSerializationFailed` (any)

  - `status_details.InvalidInputError` (any)

  - `status_details.reason_code` (any)
    Deposit reason code (MDT-113); NON_TRANSMISE when the recipient is not reachable.

  - `status_details.reason_text` (any)
    Deposit reason label (MDT-114).

  - `status_details.approval_reason_code` (any)
    Partial-approval motive (MDT-113); present only on a partial approval (206).

  - `status_details.approval_reason_text` (any)
    Partial-approval motive label (MDT-114).

  - `status_details.approval_amounts` (any)
    Approved and unapproved amounts (MDG-43); present only on a partial approval.

  - `status_details.approval_amounts.type` (any)
    Amount type (MDT-207): MAP/MAPTTC/MNA/MNATTC.

  - `status_details.approval_amounts.amount` (any)
    The amount (MDT-215, G7.07).

  - `status_details.approval_amounts.tax_rate` (any)
    VAT rate the amount applies to, as a percentage (MDT-224, G1.24).

  - `status_details.comment` (any)
    Free-text note attached to the acceptance (MDT-126).

  - `status_details.refusal_reason_code` (any)
    Refusal reason code (MDT-113).

  - `status_details.refusal_reason_text` (any)
    Refusal reason label (MDT-114).

  - `status_details.refusal_comment` (any)
    Comment explaining the refusal (MDT-126).

  - `status_details.rejection_reason_code` (any, required)
    Deprecated alias of refusal_reason_code.

  - `status_details.rejection_reason_text` (any, required)
    Deprecated alias of refusal_reason_text.

  - `status_details.rejection_comment` (any, required)
    Deprecated alias of refusal_comment.

  - `status_details.rejection_reason_code` (any)
    Rejection reason code (MDT-113).

  - `status_details.rejection_reason_text` (any)
    Rejection reason label (MDT-114).

  - `status_details.rejection_comment` (any)
    Comment explaining the rejection (MDT-126).

  - `status_details.payment_amount` (any)
    Amount paid, plain notation (MDT-215, G7.07). Absent when full payment was reported.

  - `status_details.payment_tax_rate` (any)
    VAT rate the payment applies to, as a percentage (MDT-224, G1.24).

  - `status_details.payment_date` (any)
    Date the payment was made, as YYYYMMDD text.

  - `status_details.comment` (any)
    Free-text note attached to the payment (MDT-126).

  - `status_details.payment_breakdowns` (any)
    Per-VAT-rate collected amounts (MDG-43, G7.45).

  - `status_details.payment_breakdowns.amount` (any)
    Amount collected incl. VAT for this rate, plain notation (MDT-215, G7.07).

  - `status_details.payment_breakdowns.tax_rate` (any)
    VAT rate this amount applies to, as a percentage (MDT-224, G1.24).

  - `status_details.comment` (any)
    Free-text note attached to the cash receipt (MDT-126).

## Response 422 fields (application/json):

  - `type` (string, required)
    Enum: "problems/invoice/error", "problems/invoice/invalid-xml", "problems/invoice/unresolvable-type", "problems/invoice/parsing-error", "problems/invoice/unknown-type", "problems/invoice/generation-error", "problems/invoice/type-not-supported-by-france", "problems/invoice/not-peppol-routable", "problems/invoice/xsd-validation-error", "problems/invoice/schematron-validation-error", "problems/invoice/vat-rate-not-applicable"

  - `type_url` (string)
    Absolute URL resolving to problem type documentation

  - `warnings` (array)
    Non-blocking warnings

  - `errors` (array, required)
    Error details - multiple items for validation errors, single item otherwise

