Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.invopop.com/llms.txt

Use this file to discover all available pages before exploring further.

Lifecycle status updates on domestic B2B invoices — accepted, paid, refused, disputed. Statuses are exchanged between PAs over Peppol, with mandatory codes also forwarded to the PPF.
Status is moving to a first-class GOBL document. Today it is a CDAR XML attached to the originating invoice; the next iteration makes it a standalone document with its own schema. Workflow steps and job arguments will change before the September 2026 mandate.
France requires lifecycle status updates on B2B national invoices to be reported to the PPF. Two statuses are your responsibility to send — 212 Encaissée (paid) and 210 Refusée (refused). The other two mandatory codes (200 Déposée and 213 Rejetée) are emitted automatically by Invopop, so you do not need a workflow for them.

Sending

A status workflow records the status against the originating invoice, generates a CDAR XML payload, transmits it to the counterparty’s PA over Peppol, and — for the two mandatory statuses — forwards a copy to the PPF.

How it works

1

Record Status

Stores the status against the originating invoice in the local PA database. The status_code and reason_code come from the workflow config or from job arguments at runtime.
2

Generate CDAR

Uses the CII app to produce a CDAR XML envelope from the recorded status.
3

Send Peppol Document

Transmits the CDAR to the counterparty’s PA over the Peppol network.
4

Forward Status to PPF

For the two mandatory statuses (210 and 212), forwards the CDAR to the PPF. Non-mandatory statuses skip this step.

Job arguments

Pass status details as job arguments to use one workflow for multiple status types. Arguments take priority over workflow config.
ArgumentDescription
codeStatus code (200213).
reason-codeReason code (e.g. MONTANTTOTAL_ERR). Defaults by status code if omitted.
reason-textOptional free-text explanation.
{
  "args": {
    "code": "210",
    "reason-code": "DOUBLON",
    "reason-text": "Duplicate invoice already processed"
  }
}
Use one workflow per mandatory status (paid, refused) with the code pre-configured, rather than a single generic workflow. Keeps runbooks simple.

Workflow code

The example below is configured for 207 (En litige) with reason MONTANTTOTAL_ERR. Override status_code / reason_code per workflow or via job arguments.

France PA send status workflow

Generates and forwards a CDAR status update via Peppol and the PPF.

Receiving

Incoming statuses arrive over the same Peppol transport as invoices. Peppol’s format detection identifies them as CDAR, the CII app imports them into GOBL, and the result is recorded against the originating invoice.
1

Import Peppol Document

Receives the inbound Peppol payload and detects that it is a CDAR status update rather than an invoice.
2

Import UN/CEFACT CII Document

Converts the CDAR XML into a GOBL representation.
3

Record Status

Files the status under the originating invoice in the local PA database.

Deriving a status from an invoice

The Build Status from Invoice step creates a new silo entry with a status payload pre-filled from an existing invoice. The new entry can then trigger the Send status workflow. Use this when the events that drive a status — payment captured, dispute raised — live alongside invoices in your system, and you want to avoid building a CDAR payload from scratch.

Status codes

CodeFrenchEnglishMandatory to PPF
200DéposéeDepositedYes (automatic)
205ApprouvéeAcceptedNo
206Partiellement approuvéePartially ApprovedNo
207En litigeDisputedNo
208SuspendueSuspendedNo
209ComplétéeCompletedNo
210RefuséeRefused by buyerYes (manual)
211Paiement transmisPayment transmittedNo
212EncaisséeCashed/PaidYes (manual)
213RejetéeRejected by platformYes (automatic)

Reason codes

Each status accepts specific reason codes. Statuses not listed (205, 209, 211, 212) do not require one. Defaults are applied when reason-code is omitted.
StatusReason codeDescriptionDefault
200 DéposéeNON_TRANSMISEDestinataire non connecté
206 Partiellement approuvéeAUTREAutre
206 Partiellement approuvéeTX_TVA_ERRTaux de TVA erroné
206 Partiellement approuvéeMONTANTTOTAL_ERRMontant total erroné
206 Partiellement approuvéeCALCUL_ERRErreur de calcul de la facture
206 Partiellement approuvéeNON_CONFORMEMention légale manquante
206 Partiellement approuvéeDOUBLONFacture en doublon
206 Partiellement approuvéeDEST_ERRErreur de destinataire
206 Partiellement approuvéeTRANSAC_INCTransaction inconnue
206 Partiellement approuvéeEMMET_INCÉmetteur inconnu
206 Partiellement approuvéeCONTRAT_TERMContrat terminé
206 Partiellement approuvéeDOUBLE_FACTDouble facture
206 Partiellement approuvéeCMD_ERRN° de commande incorrect ou manquant
206 Partiellement approuvéeADR_ERRAdresse de facturation électronique erronée
206 Partiellement approuvéeSIRET_ERRSIRET erroné ou absent
206 Partiellement approuvéeCODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
206 Partiellement approuvéeREF_CT_ABSENTRéférence contractuelle nécessaire
206 Partiellement approuvéeREF_ERRRéférence incorrecte
206 Partiellement approuvéePU_ERRPrix unitaires incorrects
206 Partiellement approuvéeREM_ERRRemise erronée
206 Partiellement approuvéeQTE_ERRQuantité facturée incorrecte
206 Partiellement approuvéeART_ERRArticle facturé incorrect
206 Partiellement approuvéeMODPAI_ERRModalités de paiement incorrectes
206 Partiellement approuvéeQUALITE_ERRQualité d’article livré incorrecte
206 Partiellement approuvéeLIVR_INCOMPProblème de livraison
207 En litigeAUTREAutre
207 En litigeTX_TVA_ERRTaux de TVA erroné
207 En litigeMONTANTTOTAL_ERRMontant total erroné
207 En litigeCALCUL_ERRErreur de calcul de la facture
207 En litigeNON_CONFORMEMention légale manquante
207 En litigeDOUBLONFacture en doublon
207 En litigeDEST_ERRErreur de destinataire
207 En litigeTRANSAC_INCTransaction inconnue
207 En litigeEMMET_INCÉmetteur inconnu
207 En litigeCONTRAT_TERMContrat terminé
207 En litigeDOUBLE_FACTDouble facture
207 En litigeCMD_ERRN° de commande incorrect ou manquant
208 SuspendueJUSTIF_ABSJustificatif absent ou insuffisant
208 SuspendueSIRET_ERRSIRET erroné ou absent
208 SuspendueCODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
208 SuspendueREF_CT_ABSENTRéférence contractuelle nécessaire
208 SuspendueREF_ERRRéférence incorrecte
208 SuspendueCMD_ERRN° de commande incorrect ou manquant
208 SuspendueADR_ERRAdresse de facturation électronique erronée
210 RefuséeTRANSAC_INCTransaction inconnue
210 RefuséeCOORD_BANC_ERRErreur de coordonnées bancaires
210 RefuséeTX_TVA_ERRTaux de TVA erroné
210 RefuséeMONTANTTOTAL_ERRMontant total erroné
210 RefuséeCALCUL_ERRErreur de calcul de la facture
210 RefuséeNON_CONFORMEMention légale manquante
210 RefuséeDOUBLONFacture en doublon
210 RefuséeDEST_ERRErreur de destinataire
210 RefuséeEMMET_INCÉmetteur inconnu
210 RefuséeCONTRAT_TERMContrat terminé
210 RefuséeDOUBLE_FACTDouble facture
210 RefuséeCMD_ERRN° de commande incorrect ou manquant
210 RefuséeADR_ERRAdresse de facturation électronique erronée
210 RefuséeSIRET_ERRSIRET erroné ou absent
210 RefuséeCODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
210 RefuséeREF_CT_ABSENTRéférence contractuelle nécessaire
210 RefuséeREF_ERRRéférence incorrecte
210 RefuséePU_ERRPrix unitaires incorrects
210 RefuséeREM_ERRRemise erronée
210 RefuséeQTE_ERRQuantité facturée incorrecte
210 RefuséeART_ERRArticle facturé incorrect
210 RefuséeMODPAI_ERRModalités de paiement incorrectes
210 RefuséeQUALITE_ERRQualité d’article livré incorrecte
210 RefuséeLIVR_INCOMPProblème de livraison
213 RejetéeREJ_SEMANRejet pour erreur sémantique
213 RejetéeREJ_UNIRejet sur contrôle unicité
213 RejetéeREJ_COHRejet sur contrôle cohérence de données
213 RejetéeREJ_ADRRejet sur contrôle d’adressage
213 RejetéeREJ_CONT_B2GRejet sur contrôles métier B2G
213 RejetéeREJ_REF_PJRejet sur référence de PJ
213 RejetéeREJ_ASS_PJRejet sur erreur d’association de la PJ
213 RejetéeIRR_VIDE_FContrôle de non vide sur les fichiers du flux
213 RejetéeIRR_TYPE_FContrôle de type et extension des fichiers
213 RejetéeIRR_SYNTAXContrôle syntaxique des fichiers du flux
213 RejetéeIRR_TAILLE_PJContrôle de taille des PJ
213 RejetéeIRR_NOM_PJContrôle du nom des PJ
213 RejetéeIRR_VID_PJContrôle de PJ non vide
213 RejetéeIRR_EXT_DOCContrôle de l’extension des PJ
213 RejetéeIRR_TAILLE_FContrôle de taille max des fichiers
213 RejetéeIRR_ANTIVIRUSContrôle anti-virus
213 RejetéeDEST_INCDestinataire inconnu
213 RejetéeADR_ERRAdresse de facturation électronique erronée
213 RejetéeDOUBLONFacture en doublon
213 RejetéeCALCUL_ERRErreur de calcul de la facture
213 RejetéeTX_TVA_ERRTaux de TVA erroné
213 RejetéeMONTANTTOTAL_ERRMontant total erroné

Reason codes

Each status accepts specific reason codes. Statuses not listed (205, 209, 211, 212) do not require one. Defaults are applied when reason-code is omitted.
Mandatory to PPF: Yes (automatic)
Reason codeDescriptionDefault
NON_TRANSMISEDestinataire non connecté
Reason codeDescriptionDefault
AUTREAutre
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
DEST_ERRErreur de destinataire
TRANSAC_INCTransaction inconnue
EMMET_INCÉmetteur inconnu
CONTRAT_TERMContrat terminé
DOUBLE_FACTDouble facture
CMD_ERRN° de commande incorrect ou manquant
ADR_ERRAdresse de facturation électronique erronée
SIRET_ERRSIRET erroné ou absent
CODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
REF_CT_ABSENTRéférence contractuelle nécessaire
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
Reason codeDescriptionDefault
AUTREAutre
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
DEST_ERRErreur de destinataire
TRANSAC_INCTransaction inconnue
EMMET_INCÉmetteur inconnu
CONTRAT_TERMContrat terminé
DOUBLE_FACTDouble facture
CMD_ERRN° de commande incorrect ou manquant
Mandatory to PPF: No
Reason codeDescriptionDefault
JUSTIF_ABSJustificatif absent ou insuffisant
SIRET_ERRSIRET erroné ou absent
CODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
REF_CT_ABSENTRéférence contractuelle nécessaire
REF_ERRRéférence incorrecte
CMD_ERRN° de commande incorrect ou manquant
ADR_ERRAdresse de facturation électronique erronée
Mandatory to PPF: Yes (manual)
Reason codeDescriptionDefault
TRANSAC_INCTransaction inconnue
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
DEST_ERRErreur de destinataire
EMMET_INCÉmetteur inconnu
CONTRAT_TERMContrat terminé
DOUBLE_FACTDouble facture
CMD_ERRN° de commande incorrect ou manquant
ADR_ERRAdresse de facturation électronique erronée
SIRET_ERRSIRET erroné ou absent
CODE_ROUTAGE_ERRCODE_ROUTAGE absent ou erroné
REF_CT_ABSENTRéférence contractuelle nécessaire
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
Reason codeDescriptionDefault
REJ_SEMANRejet pour erreur sémantique
REJ_UNIRejet sur contrôle unicité
REJ_COHRejet sur contrôle cohérence de données
REJ_ADRRejet sur contrôle d’adressage
REJ_CONT_B2GRejet sur contrôles métier B2G
REJ_REF_PJRejet sur référence de PJ
REJ_ASS_PJRejet sur erreur d’association de la PJ
IRR_VIDE_FContrôle de non vide sur les fichiers du flux
IRR_TYPE_FContrôle de type et extension des fichiers
IRR_SYNTAXContrôle syntaxique des fichiers du flux
IRR_TAILLE_PJContrôle de taille des PJ
IRR_NOM_PJContrôle du nom des PJ
IRR_VID_PJContrôle de PJ non vide
IRR_EXT_DOCContrôle de l’extension des PJ
IRR_TAILLE_FContrôle de taille max des fichiers
IRR_ANTIVIRUSContrôle anti-virus
DEST_INCDestinataire inconnu
ADR_ERRAdresse de facturation électronique erronée
DOUBLONFacture en doublon
CALCUL_ERRErreur de calcul de la facture
TX_TVA_ERRTaux de TVA erroné
MONTANTTOTAL_ERRMontant total erroné