Publier un statut CDAR
Un CDAR est un document XML qui transporte un événement du cycle de vie d'une facture. Il ne contient pas la facture elle-même.
Cette page décrit les règles et l'appel API communs à tous les statuts. Les correspondances entre les données métier, les champs XML et le résultat fonctionnel sont détaillées dans les exemples des neuf statuts.
Périmètre
Les neuf statuts ci-dessous peuvent être publiés par le client ou le fournisseur au moyen de POST /v1/flows.
| Code | Libellé | Émetteur du statut | Code UNTDID 1373 | Donnée spécifique |
|---|---|---|---|---|
204 | Prise en charge | Acheteur (BY) | 45 | Date de l'événement ; date de réception de la facture si connue |
205 | Approuvée | Acheteur (BY) | 1 | Commentaire facultatif |
206 | Approuvée partiellement | Acheteur (BY) | 49 | Motif FNFE obligatoire ; libellé et commentaire facultatifs |
207 | En litige | Acheteur (BY) | 46 | Motif FNFE obligatoire ; libellé et commentaire facultatifs |
208 | Suspendue | Acheteur (BY) | 39 | Motif FNFE et commentaire explicatif obligatoires |
209 | Complétée | Fournisseur (SE) | 37 | Message et, selon le cas, justificatif transmis |
210 | Refusée | Acheteur (BY) | 50 | Motif FNFE et commentaire explicatif obligatoires |
211 | Paiement transmis | Acheteur (BY) | 47 | Devise, montant et date de paiement ; type MPA |
212 | Encaissée | Fournisseur (SE) | 47 | Devise, montant encaissé et taux de TVA ; type MEN |
Les statuts de transmission ou de plateforme, notamment 200, 201, 202, 203 et 213, ne font pas partie de ces neuf cas d'usage.
Données communes à préparer
Rattachement à la facture
Le CDAR est autoportant. Il ne faut pas transmettre le flowId de la facture dans flowInfo.
Le rattachement repose sur les données présentes dans le XML :
| Donnée | Élément XML | Exemple |
|---|---|---|
| Numéro de facture | IssuerAssignedID | F202600042 |
| Type de document | TypeCode | 380 |
| Date de facture | FormattedIssueDateTime/DateTimeString | 20260915 |
| Identifiant du vendeur de la facture | ReferenceReferencedDocument/IssuerTradeParty/GlobalID | SIREN avec schemeID="0002" |
Ces valeurs doivent correspondre exactement à la facture déjà échangée.
Événement et acteurs
Il faut également fournir :
- un identifiant unique du CDAR ;
- la date et l'heure réelles de l'événement métier ;
- le code et le libellé du statut ;
- l'identité de l'acheteur et du vendeur ;
- l'adresse électronique du destinataire du CDAR ;
- les informations propres au statut : motif, commentaire, justificatif ou paiement.
Les dates DateTimeString au format 204 sont exprimées en UTC implicite sous la forme AAAAMMJJhhmmss. Les dates au format 102 utilisent AAAAMMJJ.
Règles de rôle
Trois rôles doivent rester cohérents :
| Emplacement | Rôle attendu |
|---|---|
SenderTradeParty/RoleCode | Émetteur technique du message, WK dans les exemples |
ExchangedDocument/IssuerTradeParty | Acteur qui publie le statut : acheteur BY ou fournisseur SE |
ReferenceReferencedDocument/IssuerTradeParty | Toujours le vendeur qui a émis la facture référencée |
Pour les statuts 204 à 208, 210 et 211, l'acheteur publie le CDAR à destination du vendeur. Pour les statuts 209 et 212, le fournisseur publie le CDAR à destination de l'acheteur.
Un CDAR techniquement valide ne doit pas permettre à un vendeur de publier à la place de l'acheteur un statut tel que 205, 207 ou 210, ni à l'acheteur de publier un statut 209 ou 212.
Motif, libellé et commentaire
Ces trois informations ont des rôles différents :
| Donnée fonctionnelle | Élément XML | Règle |
|---|---|---|
| Code du motif | SpecifiedDocumentStatus/ReasonCode | Utiliser le code FNFE, par exemple REF_CT_ABSENT, et non un alias d'interface tel que CONTRACT_REFERENCE_MISSING |
| Libellé du motif | SpecifiedDocumentStatus/Reason | Facultatif ; ne doit être envoyé qu'avec un code motif |
| Commentaire | SpecifiedDocumentStatus/IncludedNote/Content | Facultatif en général ; obligatoire pour expliquer une suspension 208 ou un refus 210 |
Si SpecifiedDocumentStatus est présent, SequenceNumeric est renseigné. Dans les exemples mono-statut, sa valeur est 1.
Matrice des codes motif autorisés
Un code motif est obligatoire pour les statuts 206 — Approuvée partiellement, 207 — En litige, 208 — Suspendue et 210 — Refusée.
La matrice ci-dessous reprend les combinaisons autorisées par les règles BR-FR-CDV-CL-09. Une coche signifie que le code peut être utilisé pour le statut concerné. Pour le statut 210, la liste dépend du contexte B2B ou B2G.
| Code motif | Libellé | 206 | 207 | 208 | 210 B2B | 210 B2G |
|---|---|---|---|---|---|---|
JUSTIF_ABS | Justificatif absent ou insuffisant | — | — | ✓ | — | — |
RETRAIT_MAN_SERV | Retraitement manuel par les services | — | — | — | — | ✓ |
ST_CT_NON_DECLAR | Sous-traitant / cotraitant non déclaré | — | — | — | — | ✓ |
SUPPR_COMP_AVOIR | Suppression pour compensation d'avoirs | — | — | — | — | ✓ |
TRANSF_PMNT_REGIE | Transfert pour paiement en régie | — | — | — | — | ✓ |
CONTACT_ACHTR | Autre : contacter votre acheteur | — | — | — | — | ✓ |
AUTRE | Autre | ✓ | ✓ | — | — | ✓ |
COORD_BANC_ERR | Erreur de coordonnées bancaires | — | ✓ | ✓ | — | ✓ |
TX_TVA_ERR | Taux de TVA erroné | — | ✓ | — | ✓ | ✓ |
MONTANTTOTAL_ERR | Montant total erroné | — | ✓ | — | ✓ | ✓ |
CALCUL_ERR | Erreur de calcul de la facture | — | ✓ | — | ✓ | ✓ |
NON_CONFORME | Mention légale manquante | — | ✓ | — | ✓ | ✓ |
DOUBLON | Facture en doublon, déjà émise ou reçue | — | ✓ | — | ✓ | ✓ |
DEST_INC | Destinataire inconnu | — | ✓ | — | — | — |
DEST_ERR | Erreur de destinataire | — | ✓ | — | ✓ | ✓ |
TRANSAC_INC | Transaction inconnue | — | ✓ | — | ✓ | ✓ |
EMMET_INC | Émetteur inconnu | — | ✓ | — | ✓ | ✓ |
CONTRAT_TERM | Contrat terminé | — | ✓ | — | ✓ | ✓ |
DOUBLE_FACT | Double facture | — | ✓ | — | ✓ | ✓ |
CMD_ERR | Numéro de commande incorrect ou manquant | ✓ | ✓ | ✓ | ✓ | ✓ |
ADR_ERR | Adresse de facturation électronique erronée | — | ✓ | — | ✓ | ✓ |
SIRET_ERR | SIRET erroné ou absent | ✓ | ✓ | ✓ | — | — |
CODE_ROUTAGE_ERR | Code de routage absent ou erroné | ✓ | ✓ | ✓ | — | — |
REF_CT_ABSENT | Référence contractuelle nécessaire au traitement de la facture manquante | ✓ | ✓ | ✓ | ✓ | ✓ |
REF_ERR | Référence incorrecte | ✓ | ✓ | ✓ | — | — |
PU_ERR | Prix unitaires incorrects | ✓ | ✓ | — | — | — |
REM_ERR | Remise erronée | ✓ | ✓ | — | — | — |
QTE_ERR | Quantité facturée incorrecte | ✓ | ✓ | — | — | — |
ART_ERR | Article facturé incorrect | ✓ | ✓ | — | — | — |
MODPAI_ERR | Modalités de paiement incorrectes | ✓ | ✓ | — | — | — |
QUALITE_ERR | Qualité d'article livré incorrecte | ✓ | ✓ | — | — | — |
LIVR_INCOMP | Problème de livraison | ✓ | ✓ | — | — | ✓ |
Une combinaison marquée — ne doit pas être envoyée. Pour les autres statuts fonctionnels présentés dans cette documentation, aucun ReasonCode n'est requis.
Quelques codes nécessitent une information complémentaire :
AUTREdoit être expliqué dans le commentaire du CDAR ;CMD_ERRne peut motiver un refus210que si le numéro de commande a été communiqué par l'acheteur avant la facturation ;REF_ERRdoit être accompagné d'une précision permettant d'identifier la référence concernée ;JUSTIF_ABSs'utilise pour suspendre la facture en attente d'un justificatif. Le fournisseur peut ensuite répondre avec un statut209 — Complétéeet joindre le document demandé.
Envoyer le CDAR
L'appel API est identique pour les neuf statuts.
flowInfo minimal
{
"name": "cdar-205-F202600042.xml",
"flowSyntax": "CDAR"
}
trackingId peut être ajouté pour la corrélation avec le système source. Il reste facultatif.
Requête multipart
curl -X POST "https://<flow-api-host>/v1/flows" \
-H "Authorization: Bearer <access-token>" \
-H "User-Agent: BCSolutions" \
-H "Request-Id: <request-id>" \
-H "Organization-Id: <organization-id>" \
-F 'flowInfo={
"name": "cdar-205-F202600042.xml",
"flowSyntax": "CDAR",
"trackingId": "ERP-CDAR-F202600042-205-1"
};type=application/json' \
-F "file=@cdar-205-F202600042.xml;type=application/xml"
Le nom indiqué dans flowInfo.name doit correspondre au fichier transmis. Le client API ne fournit ni flowType ni flowDirection.
Résultat technique attendu
Une requête acceptée retourne 202 Accepted avec un nouveau flowId pour le CDAR.
{
"flowId": "019e6984-3ab1-77fc-ad61-a1b145aaebb6",
"name": "cdar-205-F202600042.xml",
"flowSyntax": "CDAR",
"trackingId": "ERP-CDAR-F202600042-205-1",
"submittedAt": "2026-09-16T08:30:00Z"
}
Le 202 Accepted confirme uniquement que le Flow Service a accepté le dépôt du flux CDAR pour traitement. Il ne garantit ni que le statut a déjà été traité fonctionnellement, ni qu'il a déjà été transmis à l'ensemble des acteurs concernés.
Après le dépôt :
- conservez le
flowIddu CDAR et letrackingIdéventuel ; - recherchez le flux jusqu'à obtenir le résultat d'acquittement ;
- vérifiez que l'acquittement devient
Oket traitezErrorcomme un échec ; - contrôlez que le statut métier est rattaché à la facture attendue ;
- récupérez si nécessaire les métadonnées avec
docType=Metadataou le XML CDAR échangé avecdocType=Original.
Les représentations dérivées réservées aux factures entrantes (ReadableView, Converted, Ubl) ne s'appliquent pas aux flux CDAR.
➡️ Déposer, rechercher et récupérer un flux
➡️ Exemples fonctionnels des neuf statuts CDAR
➡️ Acquittements et erreurs