France status flow

Overview

This page describes the France-specific behaviour of the external status endpoint. For the full endpoint reference, including request body fields and examples, see Document .

Under the French e-invoicing framework, external status transitions follow a defined lifecycle. The platform enforces the permitted paths, attempting a transition not listed below will result in a validation error.

France statuses are grouped into three categories:

CategoryStatusesDescription
NeutralIN_HAND, APPROVED, PARTIALLY_APPROVED, COMPLETEDInformational statuses indicating the document has been received, reviewed, or acknowledged.
PaymentPAYMENT_SENT, PAYMENT_RECEIVEDStatuses indicating a payment action has been initiated or completed.
RejectionDISPUTED, SUSPENDED, REFUSEDStatuses indicating the document has been disputed, suspended, or refused by the counterparty.

Status lifecycle

Issued documents

stateDiagram-v2

    [*] --> IN_HAND

    IN_HAND --> APPROVED
    IN_HAND --> PARTIALLY_APPROVED
    IN_HAND --> DISPUTED
    IN_HAND --> SUSPENDED

    APPROVED --> PAYMENT_SENT
    PARTIALLY_APPROVED --> PAYMENT_SENT

    DISPUTED --> APPROVED
    DISPUTED --> REFUSED

    SUSPENDED --> COMPLETED

    PAYMENT_SENT --> PAYMENT_RECEIVED

    REFUSED --> [*]
    COMPLETED --> [*]
    PAYMENT_RECEIVED --> [*]

    classDef neutral fill:#2196F3,stroke:#0D47A1,color:#ffffff
    classDef payment fill:#4CAF50,stroke:#1B5E20,color:#ffffff
    classDef rejection fill:#F44336,stroke:#B71C1C,color:#ffffff

    class IN_HAND,APPROVED,PARTIALLY_APPROVED,COMPLETED neutral
    class PAYMENT_SENT,PAYMENT_RECEIVED payment
    class DISPUTED,SUSPENDED,REFUSED rejection

Received documents

stateDiagram-v2

    [*] --> IN_HAND

    IN_HAND --> APPROVED
    IN_HAND --> PARTIALLY_APPROVED
    IN_HAND --> DISPUTED
    IN_HAND --> SUSPENDED

    APPROVED --> PAYMENT_SENT
    PARTIALLY_APPROVED --> PAYMENT_SENT

    DISPUTED --> APPROVED
    DISPUTED --> REFUSED

    REFUSED --> [*]
    PAYMENT_SENT --> [*]

    classDef neutral fill:#2196F3,stroke:#0D47A1,color:#ffffff
    classDef payment fill:#4CAF50,stroke:#1B5E20,color:#ffffff
    classDef rejection fill:#F44336,stroke:#B71C1C,color:#ffffff

    class IN_HAND,APPROVED,PARTIALLY_APPROVED neutral
    class PAYMENT_SENT payment
    class DISPUTED,SUSPENDED,REFUSED rejection

Rejection reasons

When submitting a DISPUTED, REFUSED, or SUSPENDED status, the rejectionDetail object is required and must include a valid reason code. The table below lists the available reasons and the statuses each one is valid for.

ReasonAllowed statuses
LEGAL_INFORMATION_MISSINGREFUSED, DISPUTED
INCORRECT_RECIPIENTREFUSED, DISPUTED
EINVOICING_ADDRESS_INCORRECTREFUSED, DISPUTED
UNKNOWN_TRANSACTIONREFUSED, DISPUTED
PO_REFERENCE_INCORRECT_OR_MISSINGREFUSED, DISPUTED, SUSPENDED
CONTRACT_REFERENCE_MISSINGREFUSED, DISPUTED, SUSPENDED
VAT_RATE_INCORRECTREFUSED, DISPUTED
TOTAL_AMOUNT_INCORRECTREFUSED, DISPUTED
CALCULATION_ERRORREFUSED, DISPUTED
DUPLICATE_INVOICEREFUSED, DISPUTED
DOUBLE_INVOICINGREFUSED, DISPUTED
CONTRACT_TERMINATEDREFUSED, DISPUTED
UNKNOWN_ISSUERREFUSED, DISPUTED
FINANCE_TERMS_INCORRECTREFUSED, DISPUTED
PRICES_INCORRECTREFUSED, DISPUTED
SIRET_INCORRECT_OR_MISSINGDISPUTED, SUSPENDED
ROUTING_CODE_INCORRECTDISPUTED, SUSPENDED
REFERENCE_INCORRECTDISPUTED, SUSPENDED
BANK_DETAILS_INCORRECTDISPUTED, SUSPENDED
QUANTITY_INCORRECTDISPUTED
ITEM_INCORRECTDISPUTED
ITEM_QUALITY_INSUFFICIENTDISPUTED
DELIVERY_ISSUEDISPUTED
PAYMENT_TERMS_INCORRECTDISPUTED
UNIT_PRICE_INCORRECTDISPUTED
DISCOUNT_INCORRECTDISPUTED
OTHERDISPUTED
MISSING_DOCUMENTSSUSPENDED