Tax rates are judged by the operation date and the withholding by the issuer
Temporary VAT and surcharge rates only on operations of their period, 0.625 becomes 0.62, companies cannot withhold individuals' IRPF rates, and some regime keys are refused.
The rates, regime keys and exemptions an invoice accepts are now the ones AEAT accepts for that operation and that issuer, checked on create, edit and issue, before a number is used. Until now some of these invoices were issued and then rejected by AEAT. Correctives keep what their original carried: they are exempt from the values retired here. Invoices already issued do not change.
What breaks
- Temporary VAT rates only on operations of their period, judged on
operation_date(or the issue date when there is none): 5 % from 2022-07-01 to 2024-09-30, and the new 2 % and 7.5 % from 2024-10-01 to 2024-12-31. Otherwise422 VAT_RATE_NOT_ACCEPTED_ON_DATE. A line at 5 % without anoperation_dateof that period is now rejected. - The 5 % surcharge is
0.62, not0.625, from 2023-01-01, and0.5up to 2022-12-31.0.625answers422 VALIDATION_ERROR; a pair outside its period,422 SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE. New pairs: 2 % ↔0.26and 7.5 % ↔1in the last quarter of 2024, and 21 % ↔1.75for tobacco. Products, templates and configurations stored with0.625now read0.62; drafts and proformas were recalculated, and one that could not be answers422 SURCHARGE_RATE_REQUIRES_RECALCULATIONat issue until you edit it. Issued invoices keep0.625. - No entity withholds an individual's IRPF rate. An issuer whose NIF starts with
A,B,C,D,F,G,Q,R,UorWaccepts only0,19,24and9.5;Nonly0,19and24;SandPonly0. Anything else answers422 IRPF_RATE_NOT_FOR_CORPORATE_ISSUER, on invoice lines, products, the default tax configuration and recurring templates. A company's line sent withoutirpf_ratenow takes0instead of a stored default of 15 %. - Regime keys
03,06and14are refused with422 REGIME_KEY_NOT_SUPPORTED. And what AEAT requires with each key is checked before numbering:04only with reverse charge or an exemption,08only withNO_SUJETA_LOCALIZACION(it is not the IGIC general regime, which is01),10only on aSTANDARDinvoice to a recipient withnif,11only at 21 %. The codes areREGIME_KEY_CLASSIFICATION_NOT_ACCEPTED,REGIME_KEY_REQUIRES_VAT_RATE,REGIME_KEY_REQUIRES_STANDARD_INVOICEandREGIME_KEY_REQUIRES_RECIPIENT_NIF. EXENTA_ART_26is refused on an issued invoice (422 EXEMPTION_NOT_FOR_ISSUED_INVOICE): it exempts the buyer's acquisition. A supply to another member state isEXENTA_ART_25.irpf_rateandequivalence_surcharge_ratein responses are plain numbers, and so aredefault_irpf_rateanddefault_equivalence_surchargeof the tax configuration: they carry what was stored, which an older invoice may hold outside today's list. The JSON of an integer rate does not change, but an SDK generated from the previous contract types them as enums and fails on2.8,7.6or9.5, or on an issued0.625: regenerate it. The unused schemasVatCategory,IrpfCategory,IgicPercentage,IpsiPercentageandOtherTaxPercentageare gone from the contract.
Does this affect you?
- If you invoice from a company NIF with
irpf_rate1, 2, 7 or 15, use0(a service) or19/24where the Corporate Income Tax requires it. - If you send
equivalence_surcharge_rate: 0.625, send0.62. - If you issue late invoices at 5 %, 2 % or 7.5 % VAT, send the
operation_dateof the period. - If you use regime keys
03,06,08,10,11or14, check the requirements above. - If you use a generated SDK with enums for
irpf_rateorequivalence_surcharge_rate, regenerate it.
What else changed
- Ceuta and Melilla withholding rates:
6,2.8and7.6for individuals,9.5for companies (422 IRPF_RATE_ONLY_FOR_CORPORATE_ISSUERfrom an individual).irpf_rateis a number now;15.0is15. withholding_optionsin the company's tax configuration lists the IRPF rates that company can use and the one to preselect: build the IRPF picker from it.GET /v1/tax-typesgives every rate and every VAT ↔ surcharge pair itsvalid_fromandvalid_until, and offers only the regime keys that are accepted. A surcharge can appear twice (0.5with 4 % and with 5 %): key them by rate and VAT.- Newly accepted: reverse charge
ISP_ART_84_2_B,_Cand_D;EXENTA_ART_140(investment gold); regime key02with IGIC;05and07with the mention of their regime on the PDF.ISP_ART_84_2_Gis refused with422 REVERSE_CHARGE_CASE_NOT_SUPPORTED: the law requires a special series for it. entity_typemust match the NIF when a company is created or updated:422 ENTITY_TYPE_INCONSISTENT_WITH_NIF.
Endpoints
- POST/v1/companies/{company_id}/invoicesVAT_RATE_NOT_ACCEPTED_ON_DATE, SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE, IRPF_RATE_NOT_FOR_CORPORATE_ISSUER, REGIME_KEY_*; also on PATCH and issue
- GET/v1/companies/{company_id}/tax-configurationNew read-only withholding_options; default rates are plain numbers
- GET/v1/tax-typesvalid_from / valid_until on every rate and surcharge pair; only the accepted regime keys
Where to go next
Exchange simplified invoices for a full invoice
A new operation issues a full invoice in exchange for simplified invoices when the customer asks for one with their details. With VeriFactu it is now recorded as `F3`.
A new series needs its document type, and what else changes in this release
A new series needs `document_type`, several rejections now carry a specific code or status, and an issued invoice's PDF never changes. Plus behaviour changes.