Aller au contenu principal

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.

CodeLibelléÉmetteur du statutCode UNTDID 1373Donnée spécifique
204Prise en chargeAcheteur (BY)45Date de l'événement ; date de réception de la facture si connue
205ApprouvéeAcheteur (BY)1Commentaire facultatif
206Approuvée partiellementAcheteur (BY)49Motif FNFE obligatoire ; libellé et commentaire facultatifs
207En litigeAcheteur (BY)46Motif FNFE obligatoire ; libellé et commentaire facultatifs
208SuspendueAcheteur (BY)39Motif FNFE et commentaire explicatif obligatoires
209ComplétéeFournisseur (SE)37Message et, selon le cas, justificatif transmis
210RefuséeAcheteur (BY)50Motif FNFE et commentaire explicatif obligatoires
211Paiement transmisAcheteur (BY)47Devise, montant et date de paiement ; type MPA
212EncaisséeFournisseur (SE)47Devise, 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 XMLExemple
Numéro de factureIssuerAssignedIDF202600042
Type de documentTypeCode380
Date de factureFormattedIssueDateTime/DateTimeString20260915
Identifiant du vendeur de la factureReferenceReferencedDocument/IssuerTradeParty/GlobalIDSIREN 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 :

EmplacementRôle attendu
SenderTradeParty/RoleCodeÉmetteur technique du message, WK dans les exemples
ExchangedDocument/IssuerTradePartyActeur qui publie le statut : acheteur BY ou fournisseur SE
ReferenceReferencedDocument/IssuerTradePartyToujours 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.

Cohérence de l'émetteur

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 XMLRègle
Code du motifSpecifiedDocumentStatus/ReasonCodeUtiliser le code FNFE, par exemple REF_CT_ABSENT, et non un alias d'interface tel que CONTRACT_REFERENCE_MISSING
Libellé du motifSpecifiedDocumentStatus/ReasonFacultatif ; ne doit être envoyé qu'avec un code motif
CommentaireSpecifiedDocumentStatus/IncludedNote/ContentFacultatif 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 motifLibellé206207208210 B2B210 B2G
JUSTIF_ABSJustificatif absent ou insuffisant
RETRAIT_MAN_SERVRetraitement manuel par les services
ST_CT_NON_DECLARSous-traitant / cotraitant non déclaré
SUPPR_COMP_AVOIRSuppression pour compensation d'avoirs
TRANSF_PMNT_REGIETransfert pour paiement en régie
CONTACT_ACHTRAutre : contacter votre acheteur
AUTREAutre
COORD_BANC_ERRErreur de coordonnées bancaires
TX_TVA_ERRTaux de TVA erroné
MONTANTTOTAL_ERRMontant total erroné
CALCUL_ERRErreur de calcul de la facture
NON_CONFORMEMention légale manquante
DOUBLONFacture en doublon, déjà émise ou reçue
DEST_INCDestinataire inconnu
DEST_ERRErreur de destinataire
TRANSAC_INCTransaction inconnue
EMMET_INCÉmetteur inconnu
CONTRAT_TERMContrat terminé
DOUBLE_FACTDouble facture
CMD_ERRNuméro de commande incorrect ou manquant
ADR_ERRAdresse de facturation électronique erronée
SIRET_ERRSIRET erroné ou absent
CODE_ROUTAGE_ERRCode de routage absent ou erroné
REF_CT_ABSENTRéférence contractuelle nécessaire au traitement de la facture manquante
REF_ERRRéférence incorrecte
PU_ERRPrix unitaires incorrects
REM_ERRRemise erronée
QTE_ERRQuantité facturée incorrecte
ART_ERRArticle facturé incorrect
MODPAI_ERRModalités de paiement incorrectes
QUALITE_ERRQualité d'article livré incorrecte
LIVR_INCOMPProblè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 :

  • AUTRE doit être expliqué dans le commentaire du CDAR ;
  • CMD_ERR ne peut motiver un refus 210 que si le numéro de commande a été communiqué par l'acheteur avant la facturation ;
  • REF_ERR doit être accompagné d'une précision permettant d'identifier la référence concernée ;
  • JUSTIF_ABS s'utilise pour suspendre la facture en attente d'un justificatif. Le fournisseur peut ensuite répondre avec un statut 209 — Complétée et 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 :

  1. conservez le flowId du CDAR et le trackingId éventuel ;
  2. recherchez le flux jusqu'à obtenir le résultat d'acquittement ;
  3. vérifiez que l'acquittement devient Ok et traitez Error comme un échec ;
  4. contrôlez que le statut métier est rattaché à la facture attendue ;
  5. récupérez si nécessaire les métadonnées avec docType=Metadata ou le XML CDAR échangé avec docType=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