For Italian companies billed by EU and non-EU suppliers.
Reverse charge self-invoices, decided by a rule.
We built Refattura to take away a job that comes back every month: invoices from foreign suppliers become TD17, TD18 or TD19 self-invoices, ready in Fatture in Cloud or as FatturaPA XML. It is made for Italian companies and their accountants, and its interface is in Italian.
Invoice
Page 1 of 1
- Invoice number
- EU-2026-0921
- Date of issue
- 21 September 2026
From
Cloud Services Europe S.à r.l.
L-1855 Luxembourg
VAT LU20944528
Bill to
Rossi S.r.l.
10123 Torino, Italy
Reverse charge: VAT to be accounted for by the recipient.
Autofattura
ProntaTD17
Servizi da fornitore UE
→ Fatture in Cloud
Interface in Italian, sample data
01 · In short
An AI model reads the foreign invoices, a rule tree picks the code and no field is ever cut short in silence. Refattura is one of ours: we designed it, built it and run it every day.
02 · The problem
Every month, dozens of invoices typed in again by hand.
Software, hosting, advertising, parts: Italian SMEs buy abroad more and more, and every invoice without Italian VAT has to become a self-invoice, with the right code and on time. By hand that means hours of copying, and the risk of a wrong code or a missed deadline. And when the invoice already carries Italian VAT, a self-invoice would make the company pay it twice.
€250-2,000
the fine for a wrong document type (art. 6 D.Lgs. 471/97)
15
of the following month: the self-invoice deadline
12 days
for a TD19 from a non-EU seller
03 · How it works
From PDF to self-invoice, in six steps.
01 · Upload
The month’s PDFs, all at once if you like.
From upload or Google Drive, with no limit on the number of files. Before it is read, every PDF is stripped of scripts, attachments and automatic actions.
Carica le fatture del mese
Trascina qui i PDF
oppure importa da Google Drive
- meta-ads-2026-09.pdf
- openai-invoice-0921.pdf
- stripe-fees-september.pdf
- componenti-gmbh-4411.pdf
- figma-2026-09.pdf
Interface in Italian, sample data
02 · Read
AI extracts the facts. It does not decide.
Supplier, foreign tax ID, address, number, date, currency, net amount, total and payment method. Each document gets three attempts in the background.
Invoice
Page 1 of 1
- Invoice number
- EU-2026-0921
- Date of issue
- 21 September 2026
From
Cloud Services Europe S.à r.l.
L-1855 Luxembourg
VAT LU20944528
Bill to
Rossi S.r.l.
10123 Torino, Italy
Reverse charge: VAT to be accounted for by the recipient.
Autofattura
ProntaTD17
Servizi da fornitore UE
→ Fatture in Cloud
Interface in Italian, sample data
03 · Match
A supplier is learned once.
Matching works on the domain and on the name stripped of company forms. A choice made by hand becomes an alias for every later invoice.
Fornitore riconosciuto
Meta Platforms Ireland Ltd
Interface in Italian, sample data
04 · Decide
A rule tree picks the code.
Services: TD17. Goods from the EU: TD18. Goods already in Italy: TD19. Above 0.85 confidence it is one click to confirm, below it a closed question; when it is ambiguous, it stops and asks.
Albero TD · regola, non AI
TD17
Interface in Italian, sample data
05 · Review
A whole month on one screen.
Every invoice has a clear status, from ready to blocked, and keyboard shortcuts for whoever handles a hundred of them.
Revisione · settembre 2026
J / K per scorrere · 1 2 3 per il TD
Interface in Italian, sample data
06 · Issue
It lands in the software they already use.
In batches to Fatture in Cloud through its API, with the SdI outcome on the invoice, or as FatturaPA XML in a ZIP. Refattura itself never sends anything to the SdI.
Fatture in Cloud · API
18
autofatture emesse in blocco
Esito SdI riportato
Interface in Italian, sample data
XML FatturaPA · ZIP
.zip
per Genya, Zucchetti Ago Infinity e altri
Schema XSD verificato
Interface in Italian, sample data
Carica le fatture del mese
Trascina qui i PDF
oppure importa da Google Drive
- meta-ads-2026-09.pdf
- openai-invoice-0921.pdf
- stripe-fees-september.pdf
- componenti-gmbh-4411.pdf
- figma-2026-09.pdf
Interface in Italian, sample data
04 · Principles
Four guarantees on every self-invoice.
AI never picks the code
AI extracts the facts, a deterministic tree decides the code. A decision that can cost a fine has to be explainable line by line.
The exchange rate follows a rule
Bank of Italy on the date that counts; on a non-TARGET2 day, the last available quote, then the ECB. A rate is never made up.
FatturaPA limits before sending
Lengths and characters follow specification 1.9.1. A field that does not fit stops the document; it is never cut short.
VIES checked, exceptions recorded
EU VAT numbers are checked on VIES; going ahead without it needs a written reason, and a VIES outage does not block issuing.
05 · What’s inside
Three codes, one rule for each.
TD17
Services from EU and non-EU suppliers
Self-invoice for services bought abroad
Examples: Meta Ads, OpenAI, Stripe, Adobe, Figma, Notion
TD18
Intra-EU purchases of goods
Art. 46 DL 331/93
Example: parts shipped from Germany
TD19
Goods already in Italy from a foreign seller
Art. 17(2) DPR 633/72
Example: stock in an Italian warehouse, French seller
When none is due
AWS, Google Workspace and Microsoft 365 bill with Italian VAT: a self-invoice would mean paying it twice. Refattura recognises them and does not propose one.
It stops instead of guessing
- San Marino with VAT charged
- Italian VAT number with VAT shown
- Goods cleared outside the EU
- Italian supplier
Every feature
01
Input
- Many PDFs uploaded at once
- Import from Google Drive
- PDFs cleaned before reading
- PDF preview next to the data
02
Suppliers
- Matching with aliases
- Sync with Fatture in Cloud
- No duplicate suppliers
03
Tax rules
- One date to enter: the receipt date
- Payment method by cascade
- Separate rates and numbering for EU and non-EU
- Exchange-rate corrections recorded
04
Review
- Safe codes confirmed in one click
- Keyboard shortcuts
- Dates edited in bulk
- XML preview
05
Issuing
- Bulk sending in the background
- Numbering read from Fatture in Cloud
- SdI outcome on the invoice
06
Platform
- Dashboard built around the 15th of the month
- Reminders before the deadline
- Monthly email summary
- Support answered by people
06 · Who it’s for
Made for whoever closes the month.
01
Companies
One organisation, self-invoices issued on Fatture in Cloud or exported as XML for their accounting software.
02
Accounting firms
Each client is its own organisation, picked from an always-visible switcher. Clients connect Fatture in Cloud through a delegation link and never sign up.
03
Freelancers
Anyone with international SaaS subscriptions who wants to close the month without copying invoices written in English.
07 · Getting started
It starts with this month’s invoices.
The trial is free and asks for no card: upload the month’s foreign invoices, check the self-invoices it proposes and decide whether to issue them.
What you need to start
- The PDFs of your foreign suppliers’ invoices
- Fatture in Cloud or the accounting software you already use
- No credit card for the trial
The data stays where it belongs.
- Data encrypted in transit and at rest, every organisation isolated.
- Hetzner servers in Germany, documents on Backblaze B2, Cloudflare CDN.
- Documents read through OpenAI’s API are not used to train its models.
- Documents deleted within 90 days of the end of the contract.
- Fatture in Cloud or your own channel sends to the SdI: Refattura does not.
Free tools, open to everyone (in Italian)
08 · How we built it
RedergoAI for the facts, rules for the decisions.
The core of the product is a clean split. A language model reads the document, because it copes with layouts that are never the same. The TD code, the exchange rate and the deadline are worked out by deterministic code, because a mistake costs a fine and must be explainable line by line. The app and its worker run apart, and a queue sends to Fatture in Cloud one request at a time, because its rate limit applies per company.
01
PDF
cleaned, up to 10 MB
02
Reading
GPT-4.1 mini
03
Supplier
GPT-4o mini and aliases
04
TD tree
deterministic rules
05
Limits
FatturaPA 1.9.1 and XSD schema
06
Queue
pg-boss, one at a time
07
Accounting
API or XML
Project numbers
1206
commits
54
changelog entries in 8 months
27
blog articles
32
rejection codes documented
Technologies
- Next.js 16
- React 19
- HeroUI v3
- Tailwind 4
- Prisma
- PostgreSQL
- pg-boss
- OpenAI
- Stripe
- libxml2-wasm
- Hetzner
- Cloudflare
Milestones
25 Mar 2026
First commit and first version.
16 Jul 2026
Public website live.
22 Jul 2026
Payments live in production.
Aug 2026
Deterministic TD tree.
Sep 2026
Trial with two accounting firms, VIES checks, XML export, free tools.
Oct 2026
Zucchetti Ago Infinity support.
09 · Questions
The questions people ask first.
It reads amounts, dates, supplier and description. The TD code, exchange rate and deadline come from written rules.
PDFs of any layout, scans included. When a value is uncertain, the invoice goes to review.
Fatture in Cloud, its official partner, directly; Genya and Zucchetti Ago Infinity with self-invoices already numbered; any other through the XML.
Fatture in Cloud or your own channel, never Refattura.
Yes. It handles Italian reverse charge rules and its interface is in Italian.
Yes: three self-invoices, no credit card.
Yes: each client is its own organisation, and clients connect Fatture in Cloud through a delegation link without signing up.
Encrypted in transit and at rest, isolated per organisation, on servers in Germany.
Read more on refattura.it
The guides, one by one.
- 01TD17, TD18 or TD19? Picking the right code (in Italian)
- 02Self-invoices created in Fatture in Cloud (in Italian)
- 03Which suppliers need a self-invoice (in Italian)
- 04FatturaPA XML validator (in Italian)
- 05SdI rejection codes (in Italian)
- 06Accounting firm accounts (in Italian)
- 07What changed, month by month (in Italian)
Made by Redergo
Refattura is one of ours. The next one could be yours.
We design, build and run them ourselves in Turin: from design to code, all the way to production. If you have a process that repeats every month, we can turn it into software.