Skip to main content

Creating and validating a CDAR lifecycle file​

France only

A CDAR (Cross Domain Acknowledgement and Response), also referred to as CDV (Document d'Acheminement et de Validation) in French e-invoicing specifications, is a standardized UN/CEFACT XML message used to report invoice lifecycle status transitions such as approval, dispute, suspension, refusal, payment, or cash receipt.

Status codes and phase mappings​

Lifecycle statuses fall into two phases, defined by AcknowledgementDocument/TypeCode (MDT-77):

PhaseMDT-77Purpose
Processing23Business lifecycle transitions managed by buyers and sellers.
Transmission305Technical transport and routing updates. Status codes include 10 (Submitted), 51 (Issued), 43 (Received), 8 (Rejected), and 48 (Made Available).

Lifecycle Status Code
MDT-105
Action / Status DescriptionApplicable ToMDT-40 RoleMDT-77Status Code
MDT-88
Reason Code Required?
MDT-113
Obligated PPF Status?
200*Submitted / Deposited (Déposée)SalesWK30510Optional (NON_TRANSMISE)Yes
201*Taken over (Prise en charge)PurchaseBY235NoNo (PDP exchange)
202*Received (Reçue par plateforme)PurchaseWK30543NoNo (PDP exchange)
203*Made available (Mise à disposition)PurchaseWK30548NoNo (PDP exchange)
204*Taken over (Prise en charge)PurchaseBY2345NoNo (PDP exchange)
205Approve invoice (Approuvée)PurchaseBY231 (Accepted)NoNo (PDP exchange)
206**Partially approve (Approuvée partiellement)PurchaseBY2349YesNo (PDP exchange)
207Dispute invoice (Litige)PurchaseBY2346 (Under Query)YesNo (PDP exchange)
208Suspend invoice (Suspendue)PurchaseBY2339 (On Hold)YesNo (PDP exchange)
209Completed (Complétée)SalesSE2337NoNo (PDP exchange)
210Refuse invoice (Refusée)PurchaseBY2350 (Refused)YesYes
211Payment sent (Paiement émis)PurchaseBY2347 (Paid)NoNo (PDP exchange)
212Payment cashed / received (Encaissée)SalesSE2347 (Paid)NoYes (Requires amount details)
213*Business rejection (Rejetée métier)PlatformWK3058YesYes
220**Cancelled (Annulée)SalesSE23—NoNo (PDP exchange)
221**Routing error (Erreur de routage)Sales / PurchaseSE / BY3058YesNo (PDP exchange)
501**Inadmissible (Irrecevable)SystemWK3058YesNo (PDP exchange)

* Unsupported by Banqup manual flow (handled automatically via platform transmission).
** Planned for future releases.


Structural field rules​

Every CDAR XML document is wrapped in the root tag rsm:CrossDomainAcknowledgementAndResponse using standard UN/CEFACT D22B namespaces:

Context Block​

rsm:ExchangedDocumentContext / MDB-1

  • ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID (MDT-2): Specifies the invoicing scope. Must be one of REGULATED, NON_REGULATED, B2C, B2CINT, B2BINT, or OUTOFSCOPE (BR-FR-CDV-CL-01). This node is omitted when sending directly to the PPF.
  • ram:GuidelineSpecifiedDocumentContextParameter/ram:ID (MDT-3): Mandatory (BR-FR-CDV-01). Set to urn.cpro.gouv.fr:1p0:CDV:invoice for standard lifecycle messages between counterparties, or urn.cpro.gouv.fr:1p0:CDV:einvoicingF2 for flows transmitted to the PPF (BR-FR-CDV-02).
Message Header​

rsm:ExchangedDocument / MDB-2

  • ram:ID (MDT-4): Mandatory unique identifier for the status message. A standard convention is {InvoiceNumber}_{StatusCode}_{Timestamp}#{InvoiceTypeCode}_{InvoiceDate}.
  • ram:Name (MDT-5): Descriptive name of the file or action (e.g., UC1_F202500003_05-CDV-205_Approuvee).
  • ram:IssueDateTime/udt:DateTimeString[@format="204"] (MDG-4 / MDT-8): Mandatory timestamp of status file generation formatted as YYYYMMDDHHMMSS.
  • ram:SenderTradeParty (MDG-9): Mandatory entity routing the message (BR-FR-CDV-05). Requires ram:RoleCode (MDT-21), set to WK for platforms.
  • ram:IssuerTradeParty (MDG-16): Entity responsible for generating the status. For processing phases (TypeCode = 23), provide ram:GlobalID (schemeID="0002" with SIREN), ram:Name, and ram:RoleCode (e.g., BY).
  • ram:RecipientTradeParty (MDG-23): Target recipient party. If ram:RoleCode (MDT-59) is not WK or DFH, the electronic address ram:URIUniversalCommunication/ram:URIID (MDT-73) is mandatory (BR-FR-CDV-08).
Acknowledgement Document​

rsm:AcknowledgementDocument / MDB-03

  • ram:MultipleReferencesIndicator/udt:Indicator (MDT-74): Always false for standard single-invoice lifecycle updates.
  • ram:TypeCode (MDT-77): Mandatory indicator set to 23 (Traitement) or 305 (Transmission) (BR-FR-CDV-09).
  • ram:IssueDateTime/udt:DateTimeString[@format="204"] (MDG-31 / MDT-78): Timestamp at which the underlying event occurred.
Target Invoice Reference​

ram:ReferenceReferencedDocument / MDG-32

  • ram:IssuerAssignedID (MDT-87): Mandatory invoice number matching BT-1 of the referenced invoice. In the case of an irreceivable file (status 501), this contains the submitted filename (BR-FR-CDV-10).
  • ram:StatusCode (MDT-88): UNTDID 1373 standard code aligned with ProcessConditionCode (BR-FR-CDV-CL-05).
  • ram:TypeCode (MDT-91): Invoice document type matching BT-3 (e.g., 380 for standard commercial invoice, 381 for credit note) (BR-FR-04).
  • ram:ReceiptDateTime/udt:DateTimeString[@format="204"] (MDG-34 / MDT-95): Timestamp when the invoice was received or registered.
  • ram:FormattedIssueDateTime/qdt:DateTimeString[@format="102"] (MDG-35 / MDT-100): Issue date of the referenced invoice (BT-2) in YYYYMMDD format (BR-FR-CDV-11).
  • ram:ProcessConditionCode (MDT-105) & ram:ProcessCondition (MDT-106): Mandatory French reform status code (200–213) and textual description (BR-FR-CDV-12, BR-FR-CDV-CL-06).
  • ram:IssuerTradeParty/ram:GlobalID[@schemeID="0002"] (MDG-40 / MDT-129): Must always identify the legal SIREN of the Seller (BT-30 of the invoice) to guarantee unique identification alongside the invoice ID and issue date (BR-FR-CDV-13, BR-FR-CDV-CL-07).
Status Details and Characteristics​

MDG-37 & MDG-43

  • ram:SpecifiedDocumentStatus (MDG-37): Used when communicating reasons, dispute notes, or financial metadata. Requires an incremental sequence number in ram:SequenceNumeric (MDT-124-2) (BR-FR-CDV-16).
  • ram:ReasonCode (MDT-113): Mandatory for statuses 213 (Rejetée), 210 (Refusée), 207 (Litige), 206 (Approuvée Partiellement), 208 (Suspendue), and 501 (Irrecevable) (BR-FR-CDV-15).
  • ram:SpecifiedDocumentCharacteristic (MDG-43): Required for quantitative adjustments or payment reporting.
    • For status 212 (Encaissée), at least one block with TypeCode = MEN is required, specifying ValueAmount (MDT-215) and the VAT percentage ValuePercent (MDT-224) (BR-FR-CDV-14).
    • For payment transmitted (211), TypeCode = MPA carries the paid amount and date.
    • For approvals specifying approved values, MAP (Approved HT) or MAPTTC (Approved TTC) can be supplied (BR-FR-CDV-CL-11).

Standard reason codes and action codes​

Inadmissible Status​

MDT-105 = 501 / Irrecevable

Technical structural faults detected prior to semantic parsing.

Reason Code (MDT-113)Official LabelDescription
IRR_VIDE_FEmpty flux file controlFlux container or payload file contains 0 bytes.
IRR_TYPE_FFile type and extension controlFile extension or MIME type not permitted by the technical gateway.
IRR_SYNTAXSyntax control of flux filesXML document is malformed or violates base XSD schemas.
IRR_TAILLE_PJAttachment size controlAn attached document exceeds the maximum permitted individual file size.
IRR_NOM_PJAttachment name controlAttachment filename contains forbidden special characters or illegal syntax.
IRR_VID_PJEmpty attachment controlAn embedded attachment file contains 0 bytes.
IRR_EXT_DOCAttachment extension controlAttachment file extension is unauthorized (only approved PDF/image formats allowed).
IRR_TAILLE_FMaximum flux size controlGlobal flux payload exceeds maximum allowable data volume.
IRR_ANTIVIRUSAnti-virus controlSecurity alert: payload failed automated anti-malware/virus screening.
Rejected Status​

MDT-105 = 213 / UNTDID 1373 = 8 / Rejetée

Automated transmission rejections issued during phase 305 by either the sender platform (PA-E) or recipient platform (PA-D).

Reason Code (MDT-113)Official LabelPA-EPA-DDescription
MONTANTTOTAL_ERRTotal Amount ErroneousXXTotal monetary amounts fail verification (e.g., Net Payable mismatch).
CALCUL_ERRInvoice Calculation ErrorXXArithmetic computation fault detected in lines or header summary.
DOUBLONDuplicate InvoiceXXIdentical invoice number, supplier SIREN, and invoice year already exists.
DEST_INCUnknown RecipientX—Recipient legal entity not found in the national central directory.
ADR_ERRElectronic Invoicing Address ErrorXXRouting address of recipient (BT-49) or seller (BT-34) missing or invalid.
REJ_SEMANSemantic Error RejectionXXNon-compliance with EN16931 semantic model or national schematron rules.
REJ_UNIUniqueness Control RejectionXXDocument violates national invoice uniqueness constraints.
REJ_COHData Consistency RejectionXXContradictory business data across tags or code lists.
REJ_ADRAddressing Control RejectionXXRouting information conflicts with directory configuration rules.
REJ_CONT_B2GB2G Business Control RejectionXXMandatory public procurement fields failed validation (e.g., legal commitment ID).
REJ_REF_PJAttachment Reference RejectionXXRequired attachment reference identifier is missing or malformed.
REJ_ASS_PJAttachment Association RejectionXXLogical linking error between the invoice payload and accompanying attachments.
Refused Status​

MDT-105 = 210 / UNTDID 1373 = 50 / Refusée

Business refusals issued during phase 23 by the Buyer (BY). Results in the definitive commercial voiding of the invoice, requiring a credit note.

Reason Code (MDT-113)Official LabelDescription / Application Rule
TX_TVA_ERRErroneous VAT RateTax percentage applied does not match legal or contractual obligations.
MONTANTTOTAL_ERRTotal Amount ErroneousDiscrepancy in the gross or net totals calculated on the invoice.
CALCUL_ERRInvoice Calculation ErrorArithmetic rounding or summation error across item lines.
NON_CONFORMEMissing Legal MentionMandatory fiscal statement omitted (e.g., intra-community VAT, legal form).
DOUBLONDuplicate InvoiceService/goods billed have already been invoiced and registered previously.
DEST_ERRRecipient Identity ErrorInvoiced SIREN is legally incorrect (e.g., billed to the wrong affiliate in a corporate group).
TRANSAC_INCUnknown TransactionInvoice does not correspond to any delivered goods or executed services.
EMMET_INCUnknown IssuerSupplier is unrecognized or unauthorized in the buyer's ERP (anti-spam).
CONTRAT_TERMContract TerminatedUnderlying contract is closed or expired; no further billing allowed.
DOUBLE_FACTDouble InvoicingSpecific line items or delivery notes are billed concurrently across multiple invoices.
CMD_ERRPurchase Order Number ErrorPO number missing/incorrect. Allowed with Refused only if the PO was provided to the seller prior to invoicing.
ADR_ERRElectronic Invoicing Address ErrorBuyer electronic addressing endpoints are invalid.
REF_CT_ABSENTRequired Contract Reference MissingContractual reference mandatory for processing is absent (BT-12 contract, BT-16 dispatch, BT-11 project).
In Dispute (207), Suspended (208), and Partially Approved (206)​

Actionable processing statuses that allow resolution, payment suspension, or data corrections without outright cancellation.

Reason Code (MDT-113)Official LabelDispute (207)Part. Appr (206)Suspended (208)Description
AUTREOther ReasonXX—Unclassified motive; requires detailed explanation in CDV Note (MDG-39).
JUSTIF_ABSMissing Justification / Document——XMandatory attachment absent. Resolved by seller via status 209 (Complétée).
COORD_BANC_ERRBank Coordinates ErrorX—XBank coordinates (IBAN) on invoice conflict with buyer master vendor records.
CMD_ERRPurchase Order Number ErrorXXXPurchase order number mismatch or exhausted order allowance.
SIRET_ERRErroneous or Missing SIRETXXXBuyer establishment SIRET missing or invalid.
CODE_ROUTAGE_ERRErroneous or Missing Routing CodeXXXRouting code (Code Service) missing or invalid.
REF_CT_ABSENTContract Reference MissingXXXRequired secondary business reference missing.
REF_ERRIncorrect ReferenceXXXSecondary reference present but syntactically or contextually invalid.
PU_ERRUnit Price IncorrectXX—Billed item unit price contradicts agreed catalog or contract rates.
REM_ERRErroneous Discount / AllowanceXX—Expected commercial allowance or prompt-payment discount omitted.
QTE_ERRInvoiced Quantity IncorrectXX—Quantity billed exceeds quantities received or signed off.
ART_ERRInvoiced Item IncorrectXX—Wrong product code or specification invoiced.
MODPAI_ERRPayment Terms IncorrectXX—Payment due date or settlement method conflicts with agreement.
QUALITE_ERRDelivered Item Quality DefectXX—Non-conforming or defective items delivered.
LIVR_INCOMPDelivery ProblemXX—Delivery incomplete, damaged, or pending completion report.
Transmission Specific Reason Codes​
  • NON_TRANSMISE (Associated with DÉPOSÉE / 200): Used strictly when an invoice has been successfully ingested by the supplier's platform, but cannot be routed forward because the buyer—though present in the national directory—has not configured an active receiving platform (defaulting to technical hold code 9998).
  • ROUTAGE_ERR (Associated with Routing Faults): Triggered when routing metadata becomes stale during transit (e.g., directory synchronization latency). Once directory routing is corrected, the invoice can be retransmitted without altering document payload data.

Complete XML example​

This example is for Approved status 205 exchanged between partner platforms (PDPs). Status 205 is an optional status exchanged between PDPs and is not submitted directly to the PPF. For PDP-to-PDP exchanges, ram:ID in GuidelineSpecifiedDocumentContextParameter is set to urn.cpro.gouv.fr:1p0:CDV:invoice.


Pre-submission checklist​

Ensure the following validation assertions pass prior to emitting a CDAR message:

  • Context Parameter Check (BR-FR-CDV-01 & 02): GuidelineSpecifiedDocumentContextParameter/ID must be exactly urn.cpro.gouv.fr:1p0:CDV:invoice (inter-platform/business) or urn.cpro.gouv.fr:1p0:CDV:einvoicingF2 (direct to PPF).
  • Invoice Reference Integrity (BR-FR-CDV-10, 11, 13): The triplet composed of IssuerAssignedID (MDT-87), FormattedIssueDateTime (MDG-35), and the Seller SIREN in IssuerTradeParty/GlobalID (MDT-129) must exactly mirror the target invoice data.
  • Role Alignment (BR-FR-CDV-CL-02 & 03): When MDT-77 is 305, SenderTradeParty/RoleCode and IssuerTradeParty/RoleCode must both be WK. When MDT-77 is 23, IssuerTradeParty/RoleCode must reflect the acting trade entity (e.g., BY).
  • Addressing Requirements (BR-FR-CDV-07 & 08): When MDT-77 = 23, IssuerTradeParty/GlobalID (MDT-38) is mandatory. If the recipient role is not WK or DFH, RecipientTradeParty/URIUniversalCommunication/URIID (MDT-73) is mandatory.
  • Status Code Harmonization (BR-FR-CDV-CL-05 & 06): Verify that the standard status code matches the reform lifecycle code:
    • Full Approval (Approuvée): StatusCode = 1, ProcessConditionCode = 205.
    • Partial Approval (Approuvée Partiellement): StatusCode = 49, ProcessConditionCode = 206.
    • Refusal (Refusée): StatusCode = 50, ProcessConditionCode = 210.
    • Payment Transmitted (Paiement transmis): StatusCode = 47, ProcessConditionCode = 211.
    • Collected (Encaissée): StatusCode = 47, ProcessConditionCode = 212.