A Factur-X that bounces almost always fails one of six checks: the profile, the buyer's SIREN, the operation category, the VAT treatment, the totals, or the PDF/A-3 container. French platforms and accounts payable systems validate the XML layer against the EN 16931 standard plus the French business rules (BR-FR), and they all check the same things. The validator, with French rules on, runs the identical battery and names what fails in plain words. Here is each check and how to pass it, so the file you email your French customer goes through on the first try.
1. The profile: EN 16931
The profile says how much data the XML carries. MINIMUM and BASIC WL hold header amounts only, no line items, and fail a B2B invoice. Pass it: generate at the EN 16931 profile, which the converter and the invoice form produce by default. German suppliers: a ZUGFeRD 2.x file at the EN 16931 profile is the same thing.
2. The buyer's SIREN
France made the customer's nine-digit company number a mandatory mention, and platforms use it to identify the buyer. A missing or malformed SIREN is the most frequent rejection since September 2026. Pass it: put the SIREN in the buyer's legal identifier field. It is on your customer's purchase order or website legal notice, and the SIREN lookup confirms it resolves to the right company.
3. The operation category
French rules require each invoice to state what it covers: goods, services, or both. The category drives VAT timing rules on the French side. Pass it: one field on the invoice; the form asks for it, and the validator flags it when absent.
4. The VAT treatment
An invoice without VAT must say why, in codes the standard defines: reverse charge (category AE) for a cross-border service to a French business, intra-Community supply for goods shipped within the EU, export for goods leaving the EU. A zero-VAT line with no category, or a treatment that contradicts the customer's situation, fails. Pass it: pick the treatment per line and keep your usual mention ("Autoliquidation" for reverse charge); the exact AE coding, field by field, is here.
5. The totals
Line amounts, the VAT breakdown per rate, and the grand totals must reconcile to the cent. Rounding per line versus on the total is the classic failure, discounts applied in one place and not the other the second. Pass it: let the tool recompute the totals from the lines rather than typing them, and fix the source figure when the validator points at a mismatch.
6. The PDF/A-3 container
Factur-X requires a valid PDF/A-3: embedded fonts, XMP metadata, the XML attached with the right relationship and filename. A file printed to PDF from another tool, e-signed after generation, or resaved by a reader loses conformance while looking identical on screen. Pass it: generate the hybrid file last and do not touch it afterwards; sign or annotate before conversion, never after.
The thirty-second routine
Drop the file on the validator, switch the French rules on, read the list. Green: email it. Red: the message names the field; fix it in the editor without redoing the invoice, regenerate, validate again. The rulesets are the same ones French platforms run, so a file that passes here does not bounce there.
Frequently asked questions
Are these checks legal requirements for me as a foreign supplier?
The French mandate binds your customer, not you. The checks matter because your customer's systems run them on every incoming file; failing them means manual handling and delayed payment, not a fine.
Which rules exactly does the validator run?
The EN 16931 schema and Schematron business rules for the detected profile, plus the French BR-FR business rules when you switch them on. The report names each failed rule with the element concerned.
My invoice has no VAT because of reverse charge. Is that a problem?
No, it is the expected case for a cross-border service. The XML just has to say so: VAT category AE on the lines and the reverse-charge mention. Missing the category is what fails, not the zero.
Do I need the SIREN for a consumer or a non-French customer?
No. The SIREN check applies to invoices to French businesses. A private customer or a buyer in another country is identified without one.
The file passed the validator but my customer still reports a problem. What now?
Ask for the exact message. If it names a rule, the editor fixes the field. If the XML is reported missing, the file was altered in transit: resend the generated file as an untouched attachment.
Is there a way to check the whole flow before a real invoice?
Send yourself a test: validate a real past invoice converted to Factur-X. The validator's report reads like the platform's answer, without a customer involved.
Published 15 September 2026. GetFacturX is not an accredited platform (Plateforme Agréée); transmission over the French network, which foreign suppliers do not need, is operated by an accredited partner platform. This article is not tax or legal advice. Dates, frequencies and amounts are those known at publication and may change; check them before relying on them.