> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gobl.org/llms.txt
> Use this file to discover all available pages before exploring further.

# France CTC Flow 6 (Cycle de Vie)

Key: `fr-ctc-flow6-v1`

Module: [github.com/invopop/gobl.fr.ctc](https://github.com/invopop/gobl.fr.ctc)

Support for Flow 6 ("Cycle de Vie") lifecycle status
messages of the French CTC reform. Carries the CDAR
ProcessConditionCode on bill.Status documents exchanged
between registered dematerialisation platforms (PDPs)
and the Portail Public de Facturation (PPF).

## Sources

* [External Specifications](https://www.impots.gouv.fr/specifications-externes-b2b)

## Extensions

### Party Role Code

UNCL 3035 role code carried as the CDAR RoleCode (MDT-158)
on each populated party of any Flow 6 lifecycle message
— set on Supplier / Customer of both bill.Status and
bill.Payment. Labels follow the French CTC
specification, which assigns CDAR-specific meanings to
WK (dematerialisation platform / operator) and DFH
(Portail Public de Facturation). The normalizer fills
the obvious defaults (Supplier → SE, Customer → BY)
and leaves the rest for the caller to set explicitly.

<Accordion title="fr-ctc-flow6-role">
  | Code  | Name                                   |
  | ----- | -------------------------------------- |
  | `BY`  | Buyer                                  |
  | `AB`  | Buyer's agent                          |
  | `DL`  | Factor                                 |
  | `SE`  | Seller                                 |
  | `SR`  | Seller's agent                         |
  | `WK`  | Dematerialisation platform or operator |
  | `DFH` | Portail Public de Facturation (PPF)    |
  | `PE`  | Payee                                  |
  | `PR`  | Payer                                  |
  | `II`  | Invoicer                               |
  | `IV`  | Invoicee                               |
</Accordion>

### CDAR Reason Code

Exact CDAR ReasonCode pinned on a bill.Reason under a
bill.Status — Status-only (bill.Payment has no
Reasons). The CDAR ReasonCode dimension is 1:N with
bill.Reason.Key: this extension lets the caller pick
the precise code within a bucket. The normalizer
derives a default from Reason.Key (see
normalizeReason); callers can override to one of the
bucket's other allowed codes.

<Accordion title="fr-ctc-flow6-reason">
  | Code               | Name                             |
  | ------------------ | -------------------------------- |
  | `NON_TRANSMISE`    | Not transmitted                  |
  | `JUSTIF_ABS`       | Justification absent             |
  | `ROUTAGE_ERR`      | Routing error                    |
  | `AUTRE`            | Other                            |
  | `COORD_BANC_ERR`   | Bank account details error       |
  | `TX_TVA_ERR`       | VAT rate error                   |
  | `MONTANTTOTAL_ERR` | Total amount error               |
  | `CALCUL_ERR`       | Calculation error                |
  | `NON_CONFORME`     | Non-compliant                    |
  | `DOUBLON`          | Duplicate                        |
  | `DEST_INC`         | Unknown recipient                |
  | `DEST_ERR`         | Recipient error                  |
  | `TRANSAC_INC`      | Unknown transaction              |
  | `EMMET_INC`        | Unknown issuer                   |
  | `CONTRAT_TERM`     | Contract terminated              |
  | `DOUBLE_FACT`      | Double invoicing                 |
  | `CMD_ERR`          | Order reference error            |
  | `ADR_ERR`          | Address error                    |
  | `SIRET_ERR`        | SIRET error                      |
  | `CODE_ROUTAGE_ERR` | Routing code error               |
  | `REF_CT_ABSENT`    | Contract reference absent        |
  | `REF_ERR`          | Reference error                  |
  | `PU_ERR`           | Unit price error                 |
  | `REM_ERR`          | Discount error                   |
  | `QTE_ERR`          | Quantity error                   |
  | `ART_ERR`          | Item error                       |
  | `MODPAI_ERR`       | Payment method error             |
  | `QUALITE_ERR`      | Quality issue                    |
  | `LIVR_INCOMP`      | Incomplete delivery              |
  | `REJ_SEMAN`        | Semantic rejection               |
  | `REJ_UNI`          | Uniqueness violation             |
  | `REJ_COH`          | Coherence rejection              |
  | `REJ_ADR`          | Address rejection                |
  | `REJ_CONT_B2G`     | B2G context rejection            |
  | `REJ_REF_PJ`       | Attachment reference rejection   |
  | `REJ_ASS_PJ`       | Attachment association rejection |
  | `IRR_VIDE_F`       | Empty file                       |
  | `IRR_TYPE_F`       | Invalid file type                |
  | `IRR_SYNTAX`       | Syntax error                     |
  | `IRR_TAILLE_PJ`    | Attachment size                  |
  | `IRR_NOM_PJ`       | Attachment name                  |
  | `IRR_VID_PJ`       | Empty attachment                 |
  | `IRR_EXT_DOC`      | External document                |
  | `IRR_TAILLE_F`     | File size                        |
  | `IRR_ANTIVIRUS`    | Antivirus                        |
</Accordion>

### CDAR Process Condition Code

CDAR ProcessConditionCode (MDT-9) identifying the
lifecycle event reported by the Flow 6 message.
Unified vocabulary; the rules narrow the allow-list
per document type:

* bill.Status accepts 200 / 201 / 202 / 203 / 204 /
  205 / 206 / 207 / 208 / 209 / 210 / 213. The
  normalizer derives the value from the
  (StatusLine.Key, Status.Type) pair via processTable.
* bill.Payment accepts 211 (Paiement transmis) and
  212 (Encaissée). The normalizer derives the value
  from bill.Payment.Type (advice → 211, receipt →
  212\).

Callers can pre-set the ext directly to pin a specific
code (e.g. when round-tripping a parsed CDV).

<Accordion title="fr-ctc-flow6-status">
  | Code  | Name                  |
  | ----- | --------------------- |
  | `200` | Deposited             |
  | `201` | Issued by platform    |
  | `202` | Received by PA        |
  | `203` | Made available        |
  | `204` | Taken into account    |
  | `205` | Approved              |
  | `206` | Partially approved    |
  | `207` | In dispute            |
  | `208` | Suspended             |
  | `209` | Completed             |
  | `210` | Rejected              |
  | `211` | Payment transmitted   |
  | `212` | Cashed in             |
  | `213` | Semantically rejected |
</Accordion>

### Flow 6 Condition Code

CDAR CharacteristicTypeCode (MDT-207). Unified
vocabulary; the rules narrow the allow-list per
document type:

* On bill.Reason under bill.Status: CBB, DIV, DVA,
  MAJ (field-level corrections), MAP / MAPTTC /
  MNA / MNATTC (partial-approval / rejection
  amounts), ESC / RAB / REM (discount markers).
  Each Reason carries 0..1 condition (CDAR
  cardinality); to convey multiple characteristics
  for the same status line, add multiple Reasons.
  bill.Condition entries on each Reason are reserved
  for Peppol cac:Condition-style business-rule
  codes describing the affected field and value.
* On bill.Payment.Ext: MEN (Encaissé), MPA (Payé),
  RAP (Reste à payer). The normalizer defaults the
  value from bill.Payment.Type (receipt → MEN,
  advice → MPA); partial payments can override to
  RAP.

<Accordion title="fr-ctc-flow6-condition">
  | Code     | Name                        |
  | -------- | --------------------------- |
  | `CBB`    | Bank details to modify      |
  | `DIV`    | Invalid data                |
  | `DVA`    | Expected valid data         |
  | `MAJ`    | Replacement value           |
  | `MAP`    | Approved amount (excl. VAT) |
  | `MAPTTC` | Approved amount (incl. VAT) |
  | `MNA`    | Rejected amount (excl. VAT) |
  | `MNATTC` | Rejected amount (incl. VAT) |
  | `ESC`    | Discount granted            |
  | `RAB`    | Rebate granted              |
  | `REM`    | Reduction granted           |
  | `MEN`    | Amount received             |
  | `MPA`    | Amount paid                 |
  | `RAP`    | Amount remaining            |
</Accordion>

### Flow 6 Action Code

CDAR RequestedActionCode (MDT-121) carried on a
bill.Action under a bill.Status line. Tells the issuer
what to do next with the referenced invoice — reissue
it, send a credit note, provide more information, etc.
The normalizer derives the default from bill.Action.Key
(NOA / PIN / NIN / CNF / CNP / CNA / OTH);
callers can override directly on the extension when
round-tripping a parsed CDV.

<Accordion title="fr-ctc-flow6-action">
  | Code  | Name                  |
  | ----- | --------------------- |
  | `NOA` | No action             |
  | `PIN` | Provide information   |
  | `NIN` | Reissue invoice       |
  | `CNF` | Credit note (full)    |
  | `CNP` | Credit note (partial) |
  | `CNA` | Credit note (amount)  |
  | `OTH` | Other                 |
</Accordion>

## Validation Rules

<AccordionGroup>
  <Accordion title="bill.Status">
    | Field                     | Test                                                                                                                                                                                                                                                                                                                                                                                                                            | Validation Code / Message                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
    | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `type`                    | <ul class="gobl-test"><li>One of \[response, update]</li></ul>                                                                                                                                                                                                                                                                                                                                                                  | `GOBL-FR-CTC-FLOW6-BILL-STATUS-01`<br />Status type must be one of: response, update                                                                                                                                                                                                                                                                                                                                                                                               |
    | `ext`                     | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-status' in \[200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 213]</li></ul>                                                                                                                                                                                                                                                                                                  | `GOBL-FR-CTC-FLOW6-BILL-STATUS-02`<br />Status ext fr-ctc-flow6-status must be a Status-applicable ProcessConditionCode (200-210 or 213); codes 211, 212 belong on bill.Payment                                                                                                                                                                                                                                                                                                    |
    | `supplier`                | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-03`<br />Status supplier is required (BR-FR-CDV-13)                                                                                                                                                                                                                                                                                                                                                                                                 |
    | `supplier`                | <ul class="gobl-test"><li>Supplier has inbox unless WK/DFH</li></ul>                                                                                                                                                                                                                                                                                                                                                            | `GOBL-FR-CTC-FLOW6-BILL-STATUS-04`<br />Status supplier must have an inbox when its role is not WK or DFH (BR-FR-CDV-08)                                                                                                                                                                                                                                                                                                                                                           |
    | `supplier.ext`            | <ul class="gobl-test"><li>Ext require \[fr-ctc-flow6-role]</li></ul>                                                                                                                                                                                                                                                                                                                                                            | `GOBL-FR-CTC-FLOW6-BILL-STATUS-05`<br />Status supplier ext fr-ctc-flow6-role is required (BR-FR-CDV-CL-03)                                                                                                                                                                                                                                                                                                                                                                        |
    | `supplier.identities`     | <ul class="gobl-test"><li>Has a ext \[iso-scheme-id] in \[0002]</li></ul>                                                                                                                                                                                                                                                                                                                                                       | `GOBL-FR-CTC-FLOW6-BILL-STATUS-06`<br />Status supplier must have an identity with ISO/IEC 6523 scheme 0002 (SIREN)                                                                                                                                                                                                                                                                                                                                                                |
    | `customer`                | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-07`<br />Status customer is required (BR-FR-CDV-CL-04)                                                                                                                                                                                                                                                                                                                                                                                              |
    | `customer`                | <ul class="gobl-test"><li>Customer has inbox unless WK/DFH</li></ul>                                                                                                                                                                                                                                                                                                                                                            | `GOBL-FR-CTC-FLOW6-BILL-STATUS-08`<br />Status customer must have an inbox when its role is not WK or DFH (BR-FR-CDV-08)                                                                                                                                                                                                                                                                                                                                                           |
    | `customer.ext`            | <ul class="gobl-test"><li>Ext require \[fr-ctc-flow6-role]</li></ul>                                                                                                                                                                                                                                                                                                                                                            | `GOBL-FR-CTC-FLOW6-BILL-STATUS-09`<br />Status customer ext fr-ctc-flow6-role is required (BR-FR-CDV-CL-04)                                                                                                                                                                                                                                                                                                                                                                        |
    | `customer.identities`     | <ul class="gobl-test"><li>Has a ext \[iso-scheme-id] in \[0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]</li></ul>                                                                                                                                                                                                                                                                                                       | `GOBL-FR-CTC-FLOW6-BILL-STATUS-10`<br />Status customer must have at least one identity with an iso-scheme-id in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept                                                                                                                                                                                                                                                                                                       |
    | `lines`                   | <ul class="gobl-test"><li class="gobl-test-present">Present</li><li>Length between 1 and 1</li></ul>                                                                                                                                                                                                                                                                                                                            | `GOBL-FR-CTC-FLOW6-BILL-STATUS-11`<br />Status lines must contain exactly one entry                                                                                                                                                                                                                                                                                                                                                                                                |
    | `lines[*].doc`            | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-12`<br />Status line doc is required (BR-FR-CDV-10)                                                                                                                                                                                                                                                                                                                                                                                                 |
    | `lines[*].doc.code`       | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-13`<br />Status line doc code is required (BR-FR-CDV-10)                                                                                                                                                                                                                                                                                                                                                                                            |
    | `lines[*].doc.issue_date` | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-14`<br />Status line doc issue\_date is required (BR-FR-CDV-11)                                                                                                                                                                                                                                                                                                                                                                                     |
    | `lines[*].key`            | <ul class="gobl-test"><li>One of \[issued, acknowledged, processing, accepted, querying, rejected, error]</li></ul>                                                                                                                                                                                                                                                                                                             | `GOBL-FR-CTC-FLOW6-BILL-STATUS-15`<br />Status line key must be a recognised Flow 6 event                                                                                                                                                                                                                                                                                                                                                                                          |
    | `lines[*].reasons`        | <ul class="gobl-test"><li>Status line key in \[rejected, querying, error]</li><li class="gobl-test-present">Present</li></ul>                                                                                                                                                                                                                                                                                                   | `GOBL-FR-CTC-FLOW6-BILL-STATUS-16`<br />Status line reasons require at least one entry when key is rejected, querying or error (BR-FR-CDV-14)                                                                                                                                                                                                                                                                                                                                      |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 200</li><li>Ext 'fr-ctc-flow6-reason' in \[NON\_TRANSMISE]</li></ul>                                                                                                                                                                                                                                                                                                                 | `GOBL-FR-CTC-FLOW6-BILL-STATUS-17`<br />Status line reason ext fr-ctc-flow6-reason for status code 200 (Déposée — transmission rejection) must be NON\_TRANSMISE (BR-FR-CDV-CL-09)                                                                                                                                                                                                                                                                                                 |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 206</li><li>Ext 'fr-ctc-flow6-reason' in \[AUTRE, CMD\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR, PU\_ERR, REM\_ERR, QTE\_ERR, ART\_ERR, MODPAI\_ERR, QUALITE\_ERR, LIVR\_INCOMP]</li></ul>                                                                                                                                                                     | `GOBL-FR-CTC-FLOW6-BILL-STATUS-18`<br />Status line reason ext fr-ctc-flow6-reason for status code 206 (Approuvée partiellement) must be one of AUTRE, CMD\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR, PU\_ERR, REM\_ERR, QTE\_ERR, ART\_ERR, MODPAI\_ERR, QUALITE\_ERR, LIVR\_INCOMP (BR-FR-CDV-CL-09)                                                                                                                                                       |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 207</li><li>Ext 'fr-ctc-flow6-reason' in \[AUTRE, COORD\_BANC\_ERR, TX\_TVA\_ERR, MONTANTTOTAL\_ERR, CALCUL\_ERR, NON\_CONFORME, DOUBLON, DEST\_ERR, TRANSAC\_INC, EMMET\_INC, CONTRAT\_TERM, DOUBLE\_FACT, CMD\_ERR, ADR\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR, PU\_ERR, REM\_ERR, QTE\_ERR, ART\_ERR, MODPAI\_ERR, QUALITE\_ERR, LIVR\_INCOMP]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-STATUS-19`<br />Status line reason ext fr-ctc-flow6-reason for status code 207 (En litige) must be one of AUTRE, COORD\_BANC\_ERR, TX\_TVA\_ERR, MONTANTTOTAL\_ERR, CALCUL\_ERR, NON\_CONFORME, DOUBLON, DEST\_ERR, TRANSAC\_INC, EMMET\_INC, CONTRAT\_TERM, DOUBLE\_FACT, CMD\_ERR, ADR\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR, PU\_ERR, REM\_ERR, QTE\_ERR, ART\_ERR, MODPAI\_ERR, QUALITE\_ERR, LIVR\_INCOMP (BR-FR-CDV-CL-09) |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 208</li><li>Ext 'fr-ctc-flow6-reason' in \[JUSTIF\_ABS, COORD\_BANC\_ERR, CMD\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR]</li></ul>                                                                                                                                                                                                                             | `GOBL-FR-CTC-FLOW6-BILL-STATUS-20`<br />Status line reason ext fr-ctc-flow6-reason for status code 208 (Suspendue) must be one of JUSTIF\_ABS, COORD\_BANC\_ERR, CMD\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR (BR-FR-CDV-CL-09)                                                                                                                                                                                                                             |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 210</li><li>Ext 'fr-ctc-flow6-reason' in \[TX\_TVA\_ERR, MONTANTTOTAL\_ERR, CALCUL\_ERR, NON\_CONFORME, DOUBLON, DEST\_ERR, TRANSAC\_INC, EMMET\_INC, CONTRAT\_TERM, DOUBLE\_FACT, CMD\_ERR, ADR\_ERR, REF\_CT\_ABSENT]</li></ul>                                                                                                                                                    | `GOBL-FR-CTC-FLOW6-BILL-STATUS-21`<br />Status line reason ext fr-ctc-flow6-reason for status code 210 (Refusée) must be one of TX\_TVA\_ERR, MONTANTTOTAL\_ERR, CALCUL\_ERR, NON\_CONFORME, DOUBLON, DEST\_ERR, TRANSAC\_INC, EMMET\_INC, CONTRAT\_TERM, DOUBLE\_FACT, CMD\_ERR, ADR\_ERR, REF\_CT\_ABSENT (BR-FR-CDV-CL-09)                                                                                                                                                      |
    | `lines[*].reasons[*].ext` | <ul class="gobl-test"><li>Line status code 213</li><li>Ext 'fr-ctc-flow6-reason' in \[MONTANTTOTAL\_ERR, CALCUL\_ERR, DOUBLON, ADR\_ERR, REJ\_SEMAN, REJ\_UNI, REJ\_COH, REJ\_ADR, REJ\_CONT\_B2G, REJ\_REF\_PJ, REJ\_ASS\_PJ]</li></ul>                                                                                                                                                                                        | `GOBL-FR-CTC-FLOW6-BILL-STATUS-22`<br />Status line reason ext fr-ctc-flow6-reason for status code 213 (Rejetée sémantique) must be one of MONTANTTOTAL\_ERR, CALCUL\_ERR, DOUBLON, ADR\_ERR, REJ\_SEMAN, REJ\_UNI, REJ\_COH, REJ\_ADR, REJ\_CONT\_B2G, REJ\_REF\_PJ, REJ\_ASS\_PJ (BR-FR-CDV-CL-09)                                                                                                                                                                               |
    | `lines[*].key`            | <ul class="gobl-test"><li>Status type in \[response]</li><li>One of \[acknowledged, processing, accepted, querying, rejected, error]</li></ul>                                                                                                                                                                                                                                                                                  | `GOBL-FR-CTC-FLOW6-BILL-STATUS-23`<br />Status line key must be consistent with status type 'response'                                                                                                                                                                                                                                                                                                                                                                             |
    | `lines[*].key`            | <ul class="gobl-test"><li>Status type in \[update]</li><li>One of \[issued]</li></ul>                                                                                                                                                                                                                                                                                                                                           | `GOBL-FR-CTC-FLOW6-BILL-STATUS-24`<br />Status line key must be consistent with status type 'update'                                                                                                                                                                                                                                                                                                                                                                               |
  </Accordion>

  <Accordion title="bill.Payment">
    | Field                                                               | Test                                                                                                               | Validation Code / Message                                                                                                                                                                                                                                                  |
    | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `type`<br /><small class="gobl-field-calculated">Calculated</small> | <ul class="gobl-test"><li>One of \[advice, receipt]</li></ul>                                                      | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-01`<br />Payment type must be 'advice' (CDAR 211) or 'receipt' (CDAR 212); 'request' is not a Flow 6 CDV event                                                                                                                             |
    | `supplier`                                                          | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                              | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-02`<br />Payment supplier is required (BR-FR-CDV-13)                                                                                                                                                                                       |
    | `supplier.identities`                                               | <ul class="gobl-test"><li>Has a ext \[iso-scheme-id] in \[0002]</li></ul>                                          | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-03`<br />Payment supplier must have an identity with ISO/IEC 6523 scheme 0002 (SIREN)                                                                                                                                                      |
    | `supplier.identities[*].ext`                                        | <ul class="gobl-test"><li>Ext 'iso-scheme-id' in \[0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-04`<br />Payment supplier identity ext iso-scheme-id must be in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept                                                                                                                |
    | `customer`                                                          | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                              | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-05`<br />Payment customer is required (BR-FR-CDV-CL-04)                                                                                                                                                                                    |
    | `customer.identities`                                               | <ul class="gobl-test"><li>Has a ext \[iso-scheme-id] in \[0002]</li></ul>                                          | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-06`<br />Payment customer must have an identity with ISO/IEC 6523 scheme 0002 (SIREN)                                                                                                                                                      |
    | `customer.identities[*].ext`                                        | <ul class="gobl-test"><li>Ext 'iso-scheme-id' in \[0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-07`<br />Payment customer identity ext iso-scheme-id must be in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept                                                                                                                |
    | `payee.identities[*].ext`                                           | <ul class="gobl-test"><li>Ext 'iso-scheme-id' in \[0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-08`<br />Payment payee identity ext iso-scheme-id must be in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept                                                                                                                   |
    | `lines`                                                             | <ul class="gobl-test"><li>Exactly one line</li></ul>                                                               | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-09`<br />Payment lines must contain exactly one entry (a CDV references a single invoice)                                                                                                                                                  |
    | `lines[*].document`                                                 | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                              | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-10`<br />Payment line document is required (BR-FR-CDV-10)                                                                                                                                                                                  |
    | `lines[*].document.code`                                            | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                              | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-11`<br />Payment line document code is required (BR-FR-CDV-10)                                                                                                                                                                             |
    | `lines[*].document.issue_date`                                      | <ul class="gobl-test"><li class="gobl-test-present">Present</li></ul>                                              | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-12`<br />Payment line document issue\_date is required (BR-FR-CDV-11)                                                                                                                                                                      |
    | `ext`                                                               | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-status' in \[211, 212]</li></ul>                                       | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-13`<br />Payment ext fr-ctc-flow6-status must be a Payment-applicable ProcessConditionCode (211 advice or 212 receipt); codes 200-210, 213 belong on bill.Status                                                                           |
    | `ext`                                                               | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-condition' in \[MEN, MPA, RAP]</li></ul>                               | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-14`<br />Payment ext fr-ctc-flow6-condition must be a Payment-applicable CharacteristicTypeCode (MEN, MPA, RAP); status-only codes (CBB, DIV, DVA, MAJ, MAP, MAPTTC, MNA, MNATTC, ESC, RAB, REM) belong on a bill.Reason under bill.Status |
    | `ext`                                                               | <ul class="gobl-test"><li>Payment type in \[advice]</li><li>Ext 'fr-ctc-flow6-status' in \[211]</li></ul>          | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-15`<br />Payment ext fr-ctc-flow6-status for an advice payment must be ProcessConditionCode 211 (Paiement transmis)                                                                                                                        |
    | `ext`                                                               | <ul class="gobl-test"><li>Payment type in \[receipt]</li><li>Ext 'fr-ctc-flow6-status' in \[212]</li></ul>         | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-16`<br />Payment ext fr-ctc-flow6-status for a receipt payment must be ProcessConditionCode 212 (Encaissée)                                                                                                                                |
  </Accordion>

  <Accordion title="bill.Reason">
    | Field | Test                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Validation Code / Message                                                                                                                                                                                                        |
    | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `ext` | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-reason' in \[NON\_TRANSMISE, JUSTIF\_ABS, ROUTAGE\_ERR, AUTRE, COORD\_BANC\_ERR, TX\_TVA\_ERR, MONTANTTOTAL\_ERR, CALCUL\_ERR, NON\_CONFORME, DOUBLON, DEST\_INC, DEST\_ERR, TRANSAC\_INC, EMMET\_INC, CONTRAT\_TERM, DOUBLE\_FACT, CMD\_ERR, ADR\_ERR, SIRET\_ERR, CODE\_ROUTAGE\_ERR, REF\_CT\_ABSENT, REF\_ERR, PU\_ERR, REM\_ERR, QTE\_ERR, ART\_ERR, MODPAI\_ERR, QUALITE\_ERR, LIVR\_INCOMP, REJ\_SEMAN, REJ\_UNI, REJ\_COH, REJ\_ADR, REJ\_CONT\_B2G, REJ\_REF\_PJ, REJ\_ASS\_PJ, IRR\_VIDE\_F, IRR\_TYPE\_F, IRR\_SYNTAX, IRR\_TAILLE\_PJ, IRR\_NOM\_PJ, IRR\_VID\_PJ, IRR\_EXT\_DOC, IRR\_TAILLE\_F, IRR\_ANTIVIRUS]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-REASON-01`<br />Reason ext fr-ctc-flow6-reason must be a known CDAR ReasonCode                                                                                                                           |
    | `ext` | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-condition' in \[CBB, DIV, DVA, MAJ, MAP, MAPTTC, MNA, MNATTC, ESC, RAB, REM]</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | `GOBL-FR-CTC-FLOW6-BILL-REASON-02`<br />Reason ext fr-ctc-flow6-condition must be a Status-applicable CharacteristicTypeCode (CBB, DIV, DVA, MAJ, MAP, MAPTTC, MNA, MNATTC, ESC, RAB, REM); MEN, MPA, RAP belong on bill.Payment |
  </Accordion>

  <Accordion title="bill.Action">
    | Field | Test                                                                                                  | Validation Code / Message                                                                                                 |
    | ----- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
    | `ext` | <ul class="gobl-test"><li>Ext 'fr-ctc-flow6-action' in \[NOA, PIN, NIN, CNF, CNP, CNA, OTH]</li></ul> | `GOBL-FR-CTC-FLOW6-BILL-ACTION-01`<br />Action ext fr-ctc-flow6-action must be a known CDAR RequestedActionCode (MDT-121) |
  </Accordion>

  <Accordion title="org.Party">
    | Field                | Test                                                                                                               | Validation Code / Message                                                                                                                            |
    | -------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `ext`                | <ul class="gobl-test"><li>Known fr-ctc-flow6-role</li></ul>                                                        | `GOBL-FR-CTC-FLOW6-ORG-PARTY-01`<br />Party ext fr-ctc-flow6-role must be one of the UNCL 3035 subset: SE, BY, WK, DFH, AB, SR, DL, PE, PR, II, IV   |
    | `identities`         | <ul class="gobl-test"><li>SIRET/SIREN coherent</li></ul>                                                           | `GOBL-FR-CTC-FLOW6-ORG-PARTY-02`<br />Party identities SIRET and SIREN codes must be coherent (BR-FR-09/10)                                          |
    | `identities`         | <ul class="gobl-test"><li>Unique iso-scheme-id</li></ul>                                                           | `GOBL-FR-CTC-FLOW6-ORG-PARTY-03`<br />Party identities must not duplicate iso-scheme-id values (BR-FR-CO-10)                                         |
    | `identities[*].ext`  | <ul class="gobl-test"><li>Ext require \[iso-scheme-id]</li></ul>                                                   | `GOBL-FR-CTC-FLOW6-ORG-PARTY-04`<br />Party identity ext iso-scheme-id is required (BR-FR-CO-10)                                                     |
    | `identities[*].ext`  | <ul class="gobl-test"><li>Ext 'iso-scheme-id' in \[0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]</li></ul> | `GOBL-FR-CTC-FLOW6-ORG-PARTY-05`<br />Party identity ext iso-scheme-id must be one of the Flow 6 allowed schemes (BR-FR-CO-10)                       |
    | `identities[*].code` | <ul class="gobl-test"><li>Scheme 0224 (private-id)</li><li>Length between 0 and 100</li></ul>                      | `GOBL-FR-CTC-FLOW6-ORG-PARTY-06`<br />Party identity code for private-id (0224) must not exceed 100 characters (BR-FR-26)                            |
    | `identities[*].code` | <ul class="gobl-test"><li>Scheme 0224 (private-id)</li><li>Matches ^\[A-Za-z0-9+-\_/]+\$</li></ul>                 | `GOBL-FR-CTC-FLOW6-ORG-PARTY-07`<br />Party identity code for private-id (0224) must contain only alphanumeric characters and +, -, \_, / (BR-FR-24) |
    | `inboxes[*]`         | <ul class="gobl-test"><li>Valid inbox</li></ul>                                                                    | `GOBL-FR-CTC-FLOW6-ORG-PARTY-08`<br />Party inbox code format is invalid                                                                             |
  </Accordion>
</AccordionGroup>
