Submit a French cross-border report
Submit a French e-reporting declaration for an operation with a business established outside France.
Submit a French e-reporting declaration for an operation with a business established outside France. These invoices are not exchanged over the French e-invoicing network, so their data is reported to the French tax administration instead. You do not need to create or submit a regulatory file yourself.
Use an invoice report for a single cross-border invoice or credit note. Report every such document; the buyer must not be established in France. Buyers in the European Union are identified by their VAT number, buyers elsewhere by their country and name.
Use a payment report for a payment received on a cross-border invoice. The invoice has to be reported before its payment can be, and the payment report refers back to it by invoiceNumber. Amounts on a payment report include VAT. Payment reports are only accepted for companies registered with VAT due on payment.
The reporting service keeps one payment report per invoice. A second payment report on the same invoice replaces the one on file rather than being added to it, so separate instalments on one invoice cannot be reported yet. A plain submit for an invoice that already has a payment report on file is refused with a 409 and nothing is filed; send action: "correct" under a new reference to replace the report on file deliberately, or action: "cancel" to withdraw it, after which a new payment report for the invoice can be submitted.
The company must be registered for French e-reporting first, through PUT /:companyId/reporting/fr/declarant. Reports for playground and test-network teams are recorded but not filed.
Choose a new, unique reference for every report, including corrections and cancellations. Retrying the exact same request with the same reference is safe: it returns the report filed the first time instead of filing a second one. A correction or cancellation acts on the report identified by the data in the request, and carries the optional action field.
A report is matched on the declarant and on the data that identifies the operation, and never on the reference: an invoice report and its payments on the invoice number, a daily sales total on the day, category and currency, and a daily payment total on the day and currency. Neither the issue date nor the payment date is part of how an invoice or its payment is matched. A correction replaces the report it matches in full, so send the complete report rather than the fields that changed, and a cancellation carries the complete report as well.
Both are refused with a 409 once the filing for that period has been assembled, which happens after the period ends rather than on the last day itself, and can happen before the report shows as filed. From then on the data of that period is with the tax administration: a new report for that period can still be submitted and is carried by a corrective filing, but changing or withdrawing a report that is already filed is done by the reporting service on request. Contact support with the reference of the report on file and its period.
When the reference of an earlier report is reused, the earlier report is returned with duplicate: true and a warning, and nothing is filed: the correction or cancellation still has to be sent under a new reference.
Follow a report through the reporting block of its document. It is final once final is true: filed with outcome code 300, superseded, or rejected. A report that shows as filed with an empty outcome code or 500 is still being processed by the tax administration.
A submitted report is recorded alongside your sent documents and counts towards your document quota.
Basic API key authentication. Create a new API key and secret in the Recommand dashboard.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Choose an invoice report for a cross-border invoice or credit note, and a payment report for a payment received on one.
Reports one invoice or credit note issued to a business established outside France. These operations are not exchanged over the French e-invoicing network, so they are reported to the French tax administration instead. The reporting company must carry its own French VAT number as well as its SIREN; cross-border reports identify the seller by both.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/string/reporting/fr/b2bi" \ -H "Content-Type: application/json" \ -d '{ "reference": "EREPORT-INV-2026-000431", "type": "invoice", "documentNumber": "INV-2026-000431", "billingMode": "B1", "issueDate": "2026-01-15", "buyer": { "name": "Rossi Forniture S.r.l.", "country": "IT" }, "taxExclusiveAmount": "10000.00", "taxAmount": "0.00", "vatBreakdown": [ { "percentage": "0.00", "taxableAmount": "10000.00", "taxAmount": "0.00", "category": "K" } ] }'{ "success": true, "id": "string", "duplicate": true, "warning": "string"}