Tax compliance and VeriFactu
Find the workflow for your invoice, check its status and resolve tax issues.
Plan your integration
Fiscal cookbook
Six end-to-end recipes — issue and wait for AEAT acceptance, correct an amount, substitute simplified invoices, pass on a disbursement, invoice outside the EU, and repair a rejected record.
Invoice examples
The 21 Spanish tax scenarios for invoicing, which four of them ship as ready-to-send request examples in the API Reference, and a corrective example for each AEAT R-code (R1–R5).
Issue and correct
Simplified and full invoices
F1, F2 and F3 — when a simplified invoice is legal, the 3.000 € cap that is actually enforced, and the one-call substitution that turns a batch of tickets into a complete invoice.
Annul or correct
Four operations look like "undo an invoice" and only one is right for each case — delete, cancel, annul and corrective. Pick wrong and you either lose a fiscal document or file a declaration you did not intend.
Corrective invoices
R1 to R5, substitution versus differences, and how the lines of a corrective are built — the four decisions that determine what the AEAT and the VAT return actually receive.
VeriFactu and AEAT
AEAT census verification
Check your company's — and your clients' — name + NIF pair against the AEAT census before issuing VeriFactu invoices — deterministic states, sandbox magic NIFs and fail-open behavior.
Automatic submission
There is no "send to AEAT" button. Registration is created when the invoice leaves draft — this is the list of gates that decide whether it happens, and the only manual levers that exist afterwards.
Submission states
The lifecycle of a VeriFactu billing record — pending, submitted, accepted, rejected, error — what csv and huella mean, how the retry budget works, and when to retry instead of subsanar.
Resolve a rejection
Fix and resubmit VeriFactu billing records rejected by the AEAT — when subsanación applies, when you need an annulment or a corrective instead, and the exact API flow.
Tax treatment
Regime keys
Three different things are called "regime" in Spanish invoicing. This is which one you set, which one is derived, and the closed AEAT catalogue of seventeen codes a line may declare.
Classification and exemptions
E1–E6 and N1–N2 per line, IRPF withholding that subtracts, and the closed matrix of legal VAT-to-equivalence-surcharge pairs — the four fields that decide what the AEAT breakdown says.
IVA, IGIC and IPSI
Spain has three indirect taxes, not one. Which rates are legal in each, how the regime is chosen per document, what the AEAT breakdown declares, and why IGIC and IPSI never appear in the quarterly VAT return.
Disbursements
Money you pay on behalf of your customer — court fees, registry duties, visas — is not your revenue. How to invoice it so it stays out of your taxable base, your VAT and your annual third-party return.
International customers
Identifying a non-Spanish recipient with the AEAT alternative-ID catalogue, and the scenario-to-qualification map for intra-EU supplies, reverse charge, exports and one-stop-shop sales.
FacturaE and reports
FACe invoicing (B2G)
Submit FacturaE 3.2.2 invoices to FACe — DIR3 codes, signed XAdES-EPES XML, processing states, cancellation, sandbox simulation and the facturae:write scope.
Tax reports
Generate Modelo 303, 347 and 130, choose the right output format, and tell the file you submit apart from the workbook you review.
Scope and limitations
What the Factuarea API deliberately does not do, what it does not do yet, and the equivalent way to get each job done — plus four capabilities you may assume are missing and are not.