Submit a French B2C report
Submit French daily sales or payment totals for transactions with private individuals.
Submit French daily sales or payment totals for transactions with private individuals. You do not need to create or submit a regulatory file yourself.
Use a sales report for the normal daily transaction totals, regardless of when customers pay. This endpoint accepts one sales summary per day, category and currency. The current integration supports taxable goods and taxable services.
Use a payment report only as an additional report for services using cash-basis VAT (TVA sur les encaissements), where VAT becomes due when the customer pays. Submit the sales report as usual, then submit the payment report for the day payment is received. Payment reports are only accepted for companies registered with VAT due on payment.
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 a sales report for normal daily B2C transaction totals. Choose a payment report only as an additional report for service payments using cash-basis VAT.
The normal daily report for sales to private individuals. It records the sale date, category, transaction count, amounts excluding VAT, and VAT totals. Submit it regardless of whether customers paid immediately or will pay later. This does not send invoices to consumers. The current integration supports taxable goods and taxable services only. A day, category and currency are reported once; use action: correct with a new reference to replace that report.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/string/reporting/fr/b2c" \ -H "Content-Type: application/json" \ -d '{ "reference": "SALES-2026-07-01-GOODS", "type": "sales", "date": "2026-07-01", "category": "goods", "taxExclusiveAmount": "10000.00", "taxAmount": "2000.00", "transactionCount": 42, "vatBreakdown": [ { "percentage": "20.00", "taxableAmount": "10000.00", "taxAmount": "2000.00" } ] }'{ "success": true, "id": "string", "duplicate": true, "warning": "string"}Register a company for French e-reporting PUT
Registers the company as a declarant for French e-reporting, so its B2C and cross-border reports can be filed with the French tax administration on its...
Submit a French cross-border report POST
Submit a French e-reporting declaration for an operation with a business established outside France.