Hello,
As part of the France e-invoicing requirements, when payment has already been received and the invoice is issued subsequently, the Billing Framework (BT-23) must be set to one of the following values:
- B2 – Goods Invoice Already Paid
- S2 – Services Invoice Already Paid
- M2 – Mixed Invoice Already Paid
When any of these values are used for BT-23, the PrepaidAmount must be equal to the total invoice amount. Consequently:
- BT-112 (Invoice Total Amount Including VAT) = Total Invoice Amount
- BT-113 (Amount Already Paid) = Total Invoice Amount
- BT-115 (Net Amount Due) = 0
Currently, when the Billing Framework is set to B2, S2, or M2, the PrepaidAmount tag is not populated and is transmitted as empty in the generated invoice XML.
As a result, the invoice validation fails and the document is rejected by “e-invoice solution platform” with the following validation rule:
If the billing framework (BT-23) is B2, S2, or M2, then the amount already paid (BT-113) must be equal to the total amount including tax (BT-112), and the net amount due (BT-115) must be zero.
Current Behavior
Invoice Amount (Including VAT): 3,000.00
- Billing Framework (BT-23): B2 / S2 / M2
- BT-112 (Total Amount Including VAT): 3,000.00
- BT-113 (Amount Already Paid): 0.00
- BT-115 (Net Amount Due): 3,000.00
Expected Behavior
Invoice Amount (Including VAT): 3,000.00
- Billing Framework (BT-23): B2 / S2 / M2
- BT-112 (Total Amount Including VAT): 3,000.00
- BT-113 (Amount Already Paid): 3,000.00
- BT-115 (Net Amount Due): 0.00
Product Version: 25.2.5
We would appreciate any insights on why the Prepaid Amount tag is not being populated when BT-23 is set to B2, S2, or M2, and whether there is a recommended approach to ensure compliance with the France e-invoicing requirements.
Invoices that have already been paid cannot be successfully transmitted through the France e-invoicing network, resulting in compliance risks, invoice rejection, reporting delays, and disruption to business operations.