DAC7 · checked against the sources on

DAC7 for small marketplaces: the French file

A marketplace resident in France reports what each seller earned through it to the DGFiP by 31 January: 31 January 2027 for 2026. No platform is too small; only sellers fall below thresholds. The DGFiP takes an XML file to its own schema, which departs from the OECD's, named to its rule, gzipped, then encrypted to its public key; or, for a platform selling goods with at most 50 sellers, an online form. dac7-report builds the file from your sellers and payouts CSVs on your machine and sends nothing: you file it yourself.

“no later than 31 January of the year following the calendar year”

Council Directive (EU) 2021/514 (DAC7), Annex V (read 9 Oct 2026)

Not tax advice. The platform operator files its own DAC7 report and answers for what it says; what the tool writes is a draft to check.

Why a generic DAC7 file will not do

The DGFiP collects with its own schema, stricter than the OECD's: no “:v1” in the namespace URIs, TaxesQn where the OECD has TaxQn, one platform operator per file, version 1.0 on the root, MessageRefId and DocRefId in its own forms, and the sequences “--”, “&#” and “/*” forbidden anywhere. The file is named DPIDAC7_<year>_<SIREN>_<000>_<timestamp>.xml, gzipped, then encrypted to the DGFiP's public key. Stripe's platform tax reporting, in early access, writes the Dutch schema for the EU, not this one: see Stripe's docs.

Who is left out

A seller of goods with fewer than 30 sales and no more than EUR 2,000 in the year; governmental and listed entities; an entity with more than 2,000 rentals of one property; a seller resident outside the EU, except for property it rents in the EU. Everyone else paid in the year is reported, quarter by quarter.

Filing

Only through the Espace professionnel on impots.gouv.fr, in the Tiers déclarants service, which your company joins once with an activation code sent by post. Test on the DGFiP's test platform first. Give each seller its copy by 31 January too, and keep the records for five to ten years. A platform selling goods with at most 50 sellers can use the DGFiP's online form instead (its guide).

Free routes

backmarket-oss/dac7 is a free Python tool that builds, names and encrypts the French file from JSON, with GnuPG installed. dac7-report takes CSVs, needs only Node.js, and is free for up to 25 reportable sellers; both are open source.

Build the file on your machine

npx --allow-remote=root https://agentwares.vercel.app/dl/dac7-report-0.1.0.tgz init
npx --allow-remote=root https://agentwares.vercel.app/dl/dac7-report-0.1.0.tgz check
npx --allow-remote=root https://agentwares.vercel.app/dl/dac7-report-0.1.0.tgz build --key DGFIP_TIERSDECLARANTS_PROD.asc
  1. Write the files to fill: dac7-report.json (your SIREN, legal name and address) and the headers of sellers.csv and transactions.csv.
  2. One seller per row in sellers.csv, and one payment per row in transactions.csv (the net amount paid to the seller, your fees, the activity).
  3. Build and check: each error is named by file, line and column, and nothing is written while one stands.
  4. With the DGFiP's public key (the .asc from its zip), the file is encrypted, ready to deposit in the Espace professionnel, Tiers déclarants service.

It reads your files on your machine and writes the XML, its gzipped copy and, with the DGFiP's key, the encrypted file to deposit, plus a statement per seller and a validation log. It files nothing, sends nothing and calls no payment API. It needs Node.js 20 or later.

Free for up to 25 reportable sellers in a reporting year. Above 25, it takes a paid unlock for the reporting year, which is not on sale yet: no price is set and nothing is charged. The code is MIT and public, so the limit is a courtesy line, not a lock.

I would pay for the unlock

Free elsewhere:

  • the DGFiP's own online form (Espace professionnel, Tiers déclarants): sale of goods only, up to 50 sellers, typed in by hand;
  • backmarket-oss/dac7, a Python tool (Apache-2.0) that builds, names and encrypts the French file from JSON, with GnuPG installed.

A kept DAC7 record, held for the years the law asks (the seller details, the tax-ID collection log and every filing), is not built. A platform keeps its DAC7 records for five to ten years. What exists today is this tool and the files it writes on your own disk. If you would pay for a record kept for you, say so with one click: no price is set, and it gets built only if enough people ask.

Count me in

Sources

Other DAC7 guides

A draft for the filer to check; not tax advice. The platform operator files its own DAC7 report and answers for what it says.