Stored French cross-border report
A cross-border report as it was filed. Invoice reports filed before the invoicing framework was asked for carry no `billingMode`.
One of
Stored French cross-border invoice report
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. Reports filed before billingMode was introduced carry no invoicing framework.
| Name | Type | Required | Description |
|---|---|---|---|
reference | string | Yes | Your unique reference for this submission, at most 128 characters. It is the idempotency key: retrying the exact same request with the same reference files nothing again and returns the report filed the first time, with duplicate: true. Every new submission, corrections and cancellations included, needs its own reference. Example: "EREPORT-INV-2026-000431" |
action | submit | correct | cancel | Yes | Use submit for a new report, correct to replace a report you filed earlier for the same period or document, or cancel to cancel it. Corrections and cancellations are matched on the data that identifies the report (for example the day and category of a daily total, or the document number of an invoice), and always need a new reference. Defaults to submit. Default: submit. Example: "submit". Values: submit, correct, cancel |
type | string | Yes | Choose invoice to report a single cross-border invoice or credit note issued to a business. Value: invoice |
documentNumber | string | Yes | The number of the invoice or credit note being reported. A payment report refers back to it, and a correction or cancellation is matched on it. Example: "INV-2026-000431" |
billingMode | B1 | S1 | M1 | B2 | S2 | M2 | B4 | S4 | M4 | No | The invoicing framework the reported document belongs to, in the same codes as the billingMode of a French regulated invoice. Use the code that matches the invoice. | Mode | Description | | --- | --- | | B1 | Goods invoice. | | S1 | Services invoice. | | M1 | Mixed invoice containing goods and services that are not ancillary to each other. | | B2 | Goods invoice that has already been paid. | | S2 | Services invoice that has already been paid. | | M2 | Mixed invoice that has already been paid. | | B4 | Final goods invoice after an advance payment. | | S4 | Final services invoice after an advance payment. | | M4 | Final mixed invoice after an advance payment. | This code is checked against the invoice when the reporting period is assembled, which is after the report is accepted. A framework that does not match the invoice can cause the filing for that period to be rejected, so set it from the invoice rather than from a default. Example: "B1". Values: B1, S1, M1, B2, S2, M2, B4, S4, M4 |
documentType | invoice | creditNote | Yes | Whether the reported document is an invoice or a credit note. Defaults to invoice. Default: invoice. Example: "invoice". Values: invoice, creditNote |
issueDate | string (date) | Yes | Date on which the document was issued. Example: "2026-01-15". Format: date |
dueDate | string | null | No | Date on which the amount is due, when the document names one. Example: "2026-02-14". Format: date |
currency | string (enum) | Yes | Three-letter currency code of the reported amounts. EUR is used when this field is omitted. Default: EUR. Example: "EUR". Values: XUA, AFN, DZD, ARS, AMD, AWG, AUD, AZN, BSD, BHD, THB, PAB, BBD, BYN, BZD, BMD, VES, VED, BOB, XBA, XBB, XBD, XBC, BRL, BND, BGN, BIF, CVE, CAD, KYD, XOF, XAF, XPF, CLP, XTS, COP, KMF, CDF, BAM, NIO, CRC, CUP, CZK, GMD, DKK, MKD, DJF, STN, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, XAU, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, KWD, AOA, MMK, LAK, GEL, LBP, ALL, HNL, LRD, LYD, SZL, LSL, MGA, MWK, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, MRU, TOP, PKR, XPD, MOP, UYU, PHP, XPT, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, XDR, RSD, SCR, SLE, XAG, SGD, PEN, SBD, KGS, SOS, TJS, SSP, LKR, XSU, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, XXX, TTD, MNT, TND, TRY, TMT, AED, UGX, CLF, COU, UYW, UYI, USD, USN, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWG, PLN |
buyer | object | Yes | The foreign business the reported operation was invoiced to |
taxExclusiveAmount | string | Yes | Total amount of the document excluding VAT. Example: "10000.00" |
taxAmount | string | Yes | Total VAT amount of the document. Example: "0.00" |
vatBreakdown | object[] | Yes | Breakdown of the document total by VAT rate. Include one entry for every VAT rate used. Min items: 1 |
French cross-border payment report
Reports a payment received on a cross-border invoice. Report the invoice first, then report the payment for the day it was received. 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 instead of 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 and nothing is filed; use 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. A retry of the same report under the same reference is always safe.
| Name | Type | Required | Description |
|---|---|---|---|
reference | string | Yes | Your unique reference for this submission, at most 128 characters. It is the idempotency key: retrying the exact same request with the same reference files nothing again and returns the report filed the first time, with duplicate: true. Every new submission, corrections and cancellations included, needs its own reference. Example: "EREPORT-INV-2026-000431" |
action | submit | correct | cancel | No | Use submit for a new report, correct to replace a report you filed earlier for the same period or document, or cancel to cancel it. Corrections and cancellations are matched on the data that identifies the report (for example the day and category of a daily total, or the document number of an invoice), and always need a new reference. Defaults to submit. Default: submit. Example: "submit". Values: submit, correct, cancel |
type | string | Yes | Choose payment to report a payment received on a cross-border invoice you reported earlier. One payment report per invoice: a second one replaces the first at the reporting service. Value: payment |
invoiceNumber | string | Yes | The documentNumber of the invoice report this payment belongs to. The invoice must have been reported before its payment can be. A payment report is matched on this number: the reporting service keeps one payment report per invoice, and a later one replaces it rather than adding to it. Example: "INV-2026-000431" |
issueDate | string (date) | Yes | Date on which the invoice was issued. Example: "2026-01-15". Format: date |
date | string (date) | Yes | Date on which the payment was received. Not part of how the payment report is matched: the invoice number is. Example: "2026-02-10". Format: date |
currency | string (enum) | No | Three-letter currency code of the received amounts. EUR is used when this field is omitted. Default: EUR. Example: "EUR". Values: XUA, AFN, DZD, ARS, AMD, AWG, AUD, AZN, BSD, BHD, THB, PAB, BBD, BYN, BZD, BMD, VES, VED, BOB, XBA, XBB, XBD, XBC, BRL, BND, BGN, BIF, CVE, CAD, KYD, XOF, XAF, XPF, CLP, XTS, COP, KMF, CDF, BAM, NIO, CRC, CUP, CZK, GMD, DKK, MKD, DJF, STN, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, XAU, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, KWD, AOA, MMK, LAK, GEL, LBP, ALL, HNL, LRD, LYD, SZL, LSL, MGA, MWK, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, MRU, TOP, PKR, XPD, MOP, UYU, PHP, XPT, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, XDR, RSD, SCR, SLE, XAG, SGD, PEN, SBD, KGS, SOS, TJS, SSP, LKR, XSU, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, XXX, TTD, MNT, TND, TRY, TMT, AED, UGX, CLF, COU, UYW, UYI, USD, USN, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWG, PLN |
vatBreakdown | object[] | Yes | Amounts received, grouped by VAT rate. Amounts include VAT. Min items: 1 |
Used by
French B2CPayment Vat Breakdown
Daily received payment total for one VAT rate.
Stored French cross-border invoice report
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. Reports filed before `billingMode` was introduced carry no invoicing framework.