Skip to main content

Invoice lifecycle

Within the 5-corner model introduced by French regulations, the transmission of an invoice does not end with its delivery; it requires all participating actors to keep the processing status of the document constantly updated. This tracking flow relies on the real-time exchange of structured XML messages using a specific format called CDAR (Cross Domain Acknowledgement and Response), transmitted via the Peppol network.

Statuses

Afnor standard statuses represent the current state of an invoice. Your implementation of our API must handle the updating of status codes to reflect their current status in your pipeline.

  • Processing and Approval Statuses: Such as In hand (204) to indicate the document is being processed, Approved (205) for final approval, or Partially approved (206).

  • Dispute Management Statuses: Such as In dispute (207) or Suspended (208), which are essential for signaling an administrative hold without necessarily issuing a definitive refusal.

  • Closing and Payment Progress Statuses: Such as Payment sent (211) and Completed (209).

statuses

Send Status Change

French regulations enforce a strict traceability framework for electronic invoices through various lifecycle statuses. A-Cube maps the complete set of statuses required by French law.

  • Receiving Inbound Statuses (Passive): A-Cube notifies the partner via Webhook regarding any status updates originating from the recipient or the central system (e.g., Déposée, Rejetée, Encaissée).

  • Sending Mandatory Statuses (Active): The partner has the obligation to send status updates related to the documents received or managed (for instance, the acceptance or refusal of the goods/invoice).

POST /invoices/:uuid/lifecycle

{
"afnorStatusCode":201
}

or

{
"afnorStatusCode": "ISSUED"
}

for statuses with payment info (211, 212):

{
"afnorStatusCode": 211,
"paymentDetails":
[
{
"vatRate": 20.00,
"amount": 1200.50,
"currency": "EUR"
}
]
}

for refusing, suspending or disputing an incoming invoice (message is optional):

{
"afnorStatusCode": "REFUSED",
"rejectionDetails":
{
"rejectionReason": "LEGAL_INFORMATION_MISSING",
"message": "The invoice is missing required legal information."
}
}

Statuses list

ObjectCodeLabelDefinition
Invoice200SUBMITTED (Déposée)The supplier's invoice is transmitted to their sending accredited platform (PA^E), which certifies that the invoice is controlled and compliant.
Invoice201ISSUED (Emise par la plateforme)The sending accredited platform (PA^E) reports having transmitted the invoice to the recipient's receiving accredited platform (PA^R).
Invoice202RECEIVED (Reçue par la plateforme)The receiving accredited platform (PA^R) reports having received the invoice from the sending accredited platform (PA^E).
Invoice203MADE_AVAILABLE (Mise à disposition)The receiving accredited platform (PA^R) reports having made the invoice available to its recipient.
Invoice204IN_HAND (Prise en charge)The recipient acknowledges receipt of the invoice.
Invoice205APPROVED (Approuvée)The recipient accepts the invoice in its entirety.
Invoice206PARTIALLY_APPROVED (Approuvée partiellement)The recipient accepts only part of the invoice.
Invoice207DISPUTED (En litige)The recipient disagrees with all or part of the invoice.
Invoice208SUSPENDED (Suspendue)The recipient wishes to obtain additional supporting documents and suspends the processing of the invoice until they are received.
Invoice209COMPLETED (Complétée)The supplier provides the supporting documents expected by the invoice recipient.
Invoice210REFUSED (Refusée)The recipient refuses the invoice in its entirety.
Invoice211PAYMENT_SENT(Paiement transmis)The recipient reports having made the payment for the invoice, or the supplier reports having issued a refund for the invoice.
Invoice212PAYMENT_RECEIVED (Encaissée)According to the conditions defined by article 290 A of the CGI, the supplier reports having received a partial or total payment for the invoice.
Invoice213REJECTED (Rejetée)One of the functional controls carried out by the sending accredited platform (PA^E) or receiving accredited platform (PA^R) has detected an anomaly on the invoice.

Rejection Reasons lists:

REASONTARGET_STATUS
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
QUANTITY_INCORRECTDISPUTED, SUSPENDED
ITEM_INCORRECTDISPUTED
ITEM_QUALITY_INSUFFICIENTDISPUTED
DELIVERY_ISSUEDISPUTED
PAYMENT_TERMS_INCORRECTDISPUTED
OTHERDISPUTED
UNIT_PRICE_INCORRECTDISPUTED
DISCOUNT_INCORRECTDISPUTED
BANK_DETAILS_INCORRECTDISPUTED, SUSPENDED
MISSING_DOCUMENTSDISPUTED