France's e-invoicing reform mandates that all B2B domestic invoices be exchanged through approved platforms (Plateforme Agréée, PA) and with the Public Invoicing Portal (Portail Public de Facturation, PPF). As part of this reform, when a buyer receives a supplier invoice, they are not just passive recipients, they must actively respond to the invoice by performing one of several lifecycle actions using the eDocument Cockpit: Accept, Reject, Dispute, Suspend, or Partially Accept.
But the French tax authority goes further: when a buyer takes certain actions (such as Reject or Dispute), they are required to communicate why they are taking that action and what they expect the supplier to do next. This is where Reason Codes (Codes Motifs) and Action Codes come in.
This blog explains how SAP Document and Reporting Compliance, cloud edition, handles these codes for the France B2B Domestic Supplier Invoice process, and how you, as a customer, need to configure them in your system.
🔵 Applicability: This blog applies to customers on SAP ERP, SAP S/4HANA, SAP S/4HANA Cloud Private Edition, and SAP S/4HANA Cloud Public Edition. The functionality, codes, and configuration logic described here are the same across all deployments. Where the access path differs for different products (for example, using configuration activity instead of SM30 transactions), dedicated notes are provided inline.
When your business partner (the sender or the supplier) sends you an invoice, SAP Document and Reporting Compliance acting as your access point (or approved platform), receives the invoice from the sender access point and pushes it into your SAP system.
The system creates an electronic document in the Domestic Supplier Invoice process, visible in the eDocument Cockpit (transaction EDOC_COCKPIT). From there, your accounts payable team reviews the invoice and takes one of the following actions using the action buttons available in the eDocument Cockpit.
eDocument Cockpit Action Buttons Table
|
eDocument Cockpit Action Button |
Reason |
|
Accept |
The invoice is correct and will be processed for payment |
|
Reject |
The invoice is incorrect; the sender must take corrective action |
|
Dispute |
There is a disagreement on specific items; the invoice is under review |
|
Suspend |
Processing is temporarily paused pending additional information |
|
Partially Accept |
Part of the invoice is accepted; the remaining items are under review |
SAP Document and Reporting Compliance then communicates the buyer's response back to the sender (via the sender access point) as a lifecycle status message (CDV – Compte-Rendu de Cycle de Vie).
ℹ️ Important: In the case of a Reject action, the lifecycle status is also transmitted to the French tax authority (Direction Générale des Finances Publiques – DGFiP) as it is a legal mandate. For all other actions (Accept, Dispute, Suspend, Partially Accept), the status is communicated only to the sender access point, there is no legal obligation to notify the tax authority.
A Reason Code tells the sender why the buyer is taking a particular action on the invoice (such as Reject or Dispute). For example, if you reject an invoice, the sender needs to know whether it was rejected because of an incorrect amount, a missing order reference, or a duplicate submission.
In the French tax authority specifications, these are called Codes Motifs and are published as part of the official standard XP Z12-012 (February 2026 edition). The full list of reason codes, along with instructions on how to download the official Excel file from the tax authority portal, is provided in Section 8 of this blog.
In SAP Document and Reporting Compliance, reason codes are stored in a customizing table because the tax authority may update, add, or remove codes over time. This means you are responsible for maintaining the list in your system, as mentioned in Section 6 of this blog. SAP does not deliver pre-filled values.
3.1 Technical Details
SAP ERP / SAP S/4HANA / SAP S/4HANA Cloud Private Edition
|
SM30 View |
EDOFRSICODMOTIFV |
|
Transaction |
EDOC_FR_SI_REASONCOD |
☁️ SAP S/4HANA Public Cloud Edition: You do not have access to SM30 or the transaction EDOC_FR_SI_REASONCOD. Instead, open your configuration environment and search for the Activate Reason Codes for Supplier Invoice Actions (ID: 107322). The fields and checkboxes are identical to those described in Section 3.2 below. Enter the official reason code, description, and check the applicable action boxes, then save your entries.
3.2 View Columns
When you open the view, you will see the following columns. For each reason code from the XP Z12-012 standard (see Section 8 for how to access the official list), you create one row and check the boxes for the cockpit actions for which that reason code is valid.
Reason Codes View Columns Explanation Table
|
Column |
Description |
|
Reason Code |
The official code identifier from the XP Z12-012 standard (e.g., CMD_ERR, REF_ERR) |
|
Reason Code Description |
A meaningful description of the reason (free text, enter in your preferred language) |
|
Accept |
Check if this reason code should be selectable when the buyer clicks Accept |
|
Reject |
Check if this reason code should be selectable when the buyer clicks Reject |
|
PartAccept |
Check if this reason code should be selectable when the buyer clicks Partially Accept |
|
Suspend |
Check if this reason code should be selectable when the buyer clicks Suspend |
|
Dispute |
Check if this reason code should be selectable when the buyer clicks Dispute |
📌 Note: If a reason code is not checked for a specific eDocument cockpit action, and a user selects that reason code when performing that action (for example, clicking Reject or Dispute), the system will display the error message: “Selected reason code is not valid for [eDocument cockpit Action]”.
💡 Clarification: To avoid confusion, throughout this blog, “action” refers to the buttons available in the eDocument cockpit (Accept, Reject, Dispute, Suspend, Partially Accept). “Action Code” is a separate concept – it is a code sent to the sender telling them what corrective step to take.
An action code tells the sender, what you expect them to do in response to your eDocument cockpit action. For example, if you click Reject on an invoice due to a calculation error, you might want the supplier to issue a new corrected invoice (NIN) or issue a credit note (CNF).
Unlike reason codes, action codes are delivered by SAP and are already pre-filled in the system. You do not need to maintain them.
4.1 Technical Details
SAP ERP / SAP S/4HANA / SAP S/4HANA Cloud Private Edition
|
SM30 View |
EDOFRSIACTNCODEV |
|
Transaction |
Display only; you do not maintain action codes |
☁️SAP S/4HANA Public Cloud Edition: The action codes table (EDOFRSIACTNCODEV) is not directly accessible in your configuration environment. However, all action codes listed in Section 4.2 are pre-delivered by SAP and work in the same way. When an eDocument cockpit action is triggered, a pop-up will display the action codes by default. No configuration is required from your side.
4.2 Action Codes Reference Table
The following action codes are pre-delivered by SAP and align exactly with the official XP Z12-012 standard published by the French tax authority. You do not need to configure these, they are available in the system by default.
SAP Pre-delivered Action Codes for Supplier Invoices
|
Action Code |
Official Definition |
Usage Note |
|
NOA |
No action required |
No action required from the supplier |
|
PIN |
Provide information |
Missing information requested without re-issuing the invoice |
|
NIN |
Issue new invoice |
Request to re-issue a corrected invoice |
|
CNF |
Credit fully |
Request to fully cancel the referenced invoice with a credit note |
|
CNP |
Credit partially |
Request to issue a partial credit note for corrections only |
|
CNA |
Credit the amount |
Request to repay the amount paid on the invoice |
|
OTH |
Other |
Requested action is not defined by any of the above codes |
📌 Note: Action codes are applicable when the buyer clicks Reject, Dispute, Suspend, or Partially Accept. The system handles this automatically. No configuration is needed.
The following table lists all 26 buyer-relevant reason codes from the French tax authority standard XP Z12-012 and their applicability to each action in the eDocument cockpit. This data is taken directly from the official Excel file published by the tax authority (see Section 8 for step-by-step instructions on how to download it). Use this table as your reference when configuring Activate Reason Codes for Supplier Invoice Actions (Transaction EDOC_FR_SI_REASONCOD).
ℹ️ Note: The XP Z12-012 standard also defines several platform-level rejection codes (REJ_SEMAN, REJ_UNI, REJ_COH, REJ_ADR, REJ_CONT_B2G, REJ_REF_PJ, REJ_ASS_PJ) that are used automatically by the Chorus Pro / PPF platform for technical format rejections. These are NOT buyer cockpit actions and do NOT need to be configured in Activate Reason Codes for Supplier Invoice Actions.
Reason Codes and Applicable Invoice Actions
Legend: ✓ = Applicable — = Not applicable
|
Reason Code |
French Label |
Description |
Accept |
Reject |
Partial |
Suspend |
Dispute |
|
EMMET_INC |
Emetteur inconnu |
The invoice issuer is unknown to the recipient (anti-spam protection) |
— |
✓ |
— |
— |
✓ |
|
DEST_ERR |
Erreur de destinataire |
The bill-to legal entity is not the correct one (recipient's SIREN number). For example, the invoice was sent to the wrong company |
— |
✓ |
— |
— |
✓ |
|
TRANSAC_INC |
Transaction inconnue |
The invoice does not correspond to a completed delivery or a delivered service |
— |
✓ |
— |
— |
✓ |
|
CONTRAT_TERM |
Contrat terminé |
Contract terminated; no further invoicing is possible under this contract |
— |
✓ |
— |
— |
✓ |
|
TX_TVA_ERR |
Taux de TVA erroné |
A VAT rate used on the invoice is not the one that should have been applied |
— |
✓ |
— |
— |
✓ |
|
MONTANTTOTAL_ERR |
Montant total erroné |
One of the total invoice amounts is incorrect (e.g., payment amount, tax amount) |
— |
✓ |
— |
— |
✓ |
|
CALCUL_ERR |
Erreur de calcul sur la facture |
Calculation error detected (line totals, rounding, or tax computation) |
— |
✓ |
— |
— |
✓ |
|
NON_CONFORME |
Mention légale manquante |
A mandatory legal notice or field required by regulation is missing from the invoice |
— |
✓ |
— |
— |
✓ |
|
DOUBLON |
Doublon (déjà émis/reçu) |
Duplicate invoice: same supplier number and same invoice date year already received |
— |
✓ |
— |
— |
✓ |
|
DOUBLE_FACT |
Double Facture |
The service or delivery has already been invoiced on a separate invoice |
— |
✓ |
— |
— |
✓ |
|
ADR_ERR |
Adresse de facturation électronique erronée |
The electronic billing address of the recipient (BT-49 or BT-34) is missing or incorrect |
— |
✓ |
— |
— |
✓ |
|
CMD_ERR |
N° de Commande Incorrect ou manquant |
Incorrect or missing order number. Note: Reject is only valid if the order number was communicated to the supplier before invoicing |
— |
✓ |
✓ |
✓ |
✓ |
|
REF_CT_ABSENT |
Référence contextuelle manquante |
A contractually required reference needed for invoice processing is absent (the specific reference must be identified in the invoice note field) |
— |
✓ |
✓ |
✓ |
✓ |
|
SIRET_ERR |
SIRET Erroné ou absent |
The recipient's SIRET number is incorrect or absent (when required by the contract or regulation) |
— |
— |
✓ |
✓ |
✓ |
|
CODE_ROUTAGE_ERR |
CODE_ROUTAGE Absent ou Erroné |
The recipient's routing code is incorrect or absent (when required) |
— |
— |
✓ |
✓ |
✓ |
|
REF_ERR |
Référence incorrecte |
An invoice reference is incorrect; specify in the invoice note field which reference is concerned |
— |
— |
✓ |
✓ |
✓ |
|
PU_ERR |
Prix Unitaires incorrects |
A unit price on the invoice is not as expected |
— |
— |
✓ |
— |
✓ |
|
REM_ERR |
Remise erronée |
A discount is absent or not as expected |
— |
— |
✓ |
— |
✓ |
|
QTE_ERR |
Quantité facturée incorrecte |
An invoiced quantity does not match the delivered or agreed quantity |
— |
— |
✓ |
— |
✓ |
|
ART_ERR |
Article facturé incorrect |
An invoiced item (product or service) is incorrect or does not match the order |
— |
— |
✓ |
— |
✓ |
|
MODPAI_ERR |
Modalités de paiement incorrectes |
Payment terms (e.g., due date, payment method) are not as agreed |
— |
— |
✓ |
— |
✓ |
|
QUALITE_ERR |
Qualité d'article livré incorrecte |
One or more of the delivered items is defective or does not meet quality requirements |
— |
— |
✓ |
— |
✓ |
|
LIVR_INCOMP |
Problème de livraison |
Incomplete or non-conforming delivery (underdelivery or delivery not matching the order) |
— |
— |
✓ |
— |
✓ |
|
AUTRE |
Autre |
Other reason not covered by the above codes; an explanation must be provided in the invoice note field |
— |
— |
✓ |
— |
✓ |
|
COORD_BANC_ERR |
Coordonnées bancaires erronées |
The bank details on the invoice do not match those registered for the payer / payment recipient |
— |
— |
— |
✓ |
✓ |
|
JUSTIF_ABS |
Justificatif absent ou insuffisant |
Supporting documents (attachments) required for invoice processing are missing or insufficient |
— |
— |
— |
✓ |
— |
🗒 ️Source & Validity Note: The reason codes listed in the table above have been extracted directly from the official XP Z12-012 Annexe A V1.3 Excel file published by the French tax authority (“Tableau des motifs de STATUTS” tab), as of the date this blog was written (May 2026). This saves you the effort of manually reading through the standard. The data is ready for you to use as-is when configuring your SAP system. However, the French tax authority may update, add, or remove codes in future versions of the standard. We recommend periodically checking the official portal ( see Section 8 ) to ensure your configuration stays up to date.
SAP S/4HANA Public Cloud Edition:Use Configuration activity ID 107322 (Activate Reason Codes for Supplier Invoice Actions) in your configuration environment instead of the transaction and SM30 view mentioned in the steps below. All other steps remain the same.
Prerequisites
- You have access to the SAP system with authorization to maintain customizing views (or the configuration environment for SAP S/4HANA Cloud Public Edition).
- You have downloaded the latest version of the XP Z12-012 standard from the tax authority portal (see Section 8 for instructions).
Steps
Step 1: Access the configuration view
- SAP ERP / SAP S/4HANA / SAP S/4HANA Cloud Private Edition: Run transaction EDOC_FR_SI_REASONCOD, or run SM30 and enter view name EDOFRSICODMOTIFV
- SAP S/4HANA Cloud Public Edition: In your configuration environment, search for Configuration activity 107322 (Activate Reason Codes for Supplier Invoice Actions)
Step 2: Create new entries
- Click “New Entries”
- Enter the Reason Code, use the official code identifier from the XP Z12-012 Excel file (e.g., CMD_ERR, REF_ERR). The complete list with all valid codes is provided in Section 5 of this blog.
- Enter the Reason Code Description; a meaningful label in your preferred language
- Check the action checkboxes (Accept, Reject, PartAccept, Suspend, Dispute) based on the applicability matrix in Section 5. The ✓ marks in that table indicate which actions each reason code is officially valid for, as defined by the French tax authority standard.
Step 3: Save your entries
- Click Save
- The entries are stored in Activate Reason Codes for Supplier Invoice Actions (EDOFRSICODMOTIF)
Now that you have configured the reason codes and, since the action codes are pre-delivered by SAP, the system is ready to capture this information from the user at the right moment.
7.1 Which Actions Are Available Depends on the Document Status
The actions available to you in the eDocument Cockpit (Accept, Reject, Dispute, Suspend and Partially Accept) depend on the current status of the electronic document. For example, a document in Suspended status allows you to trigger Accept, Reject, Dispute or Partially Accept. A document in Rejected status allows you to trigger Accept, Dispute, Suspend or Partially Accept. A document in Accepted status has no further actions available, as it is a final status.
To see the complete list of statuses and which actions are possible for each, you can check directly in the eDocument Cockpit:
- Select Domestic Supplier Invoice process
- Click Help
- Click the link Process Statuses for Domestic Supplier Invoice
This opens the built-in system documentation with full status and action matrix for the Domestic Supplier Invoice process.
7.2 Pop-up Behaviour When an Action Is Triggered
When an action is triggered for an electronic document in the eDocument Cockpit, such as Accept, Reject, Dispute, Suspend, or Partially Accept, the system displays a pop-up asking for relevant data (Reason Code, Action Code, or both) based on your configuration.
If you have configured reason codes for that action, the pop-up will ask for both reason code and an action code. If no reason codes are configured for that action, the pop-up will ask only for an action code.
For example: if you click Dispute but have not configured any reason codes for the Dispute action, the pop-up will show only the Action Code field. It will not ask for a Reason Code. Once you configure reason codes for Dispute (as described in Section 3), the pop-up will show both fields.
The official reason codes and action codes are published by the French tax authority as part of the XP Z12-012 standard. Follow these steps to download the official Excel file:
- Go to: https://www.impots.gouv.fr/specifications-externes-b2b
- Navigate to the AFNOR standard page for XP Z12-012
3. Click “Consultation gratuite” (Free Consultation)
4.Select “Consulter en Anglais” (or French)
5. Click “Téléchargement des annexes” (Download Annexes)
6. Extract the ZIP file. It contains the Excel file XP_Z12-012_Annexe_A_2026_V1.3.xlsx
7. Open the Excel file and navigate to:
- “Codes Action” tab → Action codes (already pre-delivered by SAP; for reference only)
- “Tableau des motifs de STATUTS” tab → Reason codes matrix with applicable statuses (use this to configure Section 3)
Key Takeaways Table
|
Topic |
Summary |
|
Reason Codes |
Must be configured by the customer using ‘Activate Reason Codes for Supplier Invoice Actions (transaction EDOC_FR_SI_REASONCOD)'. Use the XP Z12-012 standard ( Section 8 ) as your reference. |
|
Action Codes |
Pre-delivered by SAP. No configuration needed. Aligned with the official XP Z12-012 standard. |
|
Pop-up behavior |
Shows Reason Code + Action Code fields if reason codes are configured for the action; shows only Action Code otherwise. |
|
Reject & Tax Authority |
Only the Reject action status is transmitted to the French tax authority (DGFiP), this is a legal mandate. All other actions are communicated only to the sender access point. |
|
Maintenance |
The tax authority may update the reason code list. Monitor the XP Z12-012 standard and update your SAP configuration accordingly. |
SAP S/4HANA Cloud Public Edition
SAP S/4HANA Cloud Private Edition
SAP ERP
I hope you find this information useful. You can leave a comment on this blog or follow us for more information about SAP Document and Reporting Compliance here in SAP Community.
Author: Mahesh Varma Kalidindi | SAP Document and Reporting Compliance



