Factuarea API

Classificació fiscal i exempcions per línia

E1–E6 i N1–N2 per línia, la retenció d'IRPF que resta, i la matriu tancada de parells legals d'IVA i recàrrec d'equivalència — els quatre camps que decideixen què diu el desglossament que arriba a l'AEAT.

Una línia de factura porta més informació fiscal que un tipus impositiu. Quatre camps opcionals decideixen com es classifica l'operació, si es repercuteix IVA o no, i quant paga realment el destinatari:

CampQuè fa
exemption_reasonDeclara la línia exempta (E1E6) o no subjecta (N1, N2).
regime_keyDeclara el règim especial — vegeu Claus de règim.
retention_rateRetenció d'IRPF, restada de l'import a pagar.
surcharge_rateRecàrrec d'equivalència, sumat — i només en combinacions aparellades legalment.

Tots quatre són opcionals i additius. Una factura que els omet tots es comporta exactament igual que abans que existissin, huella inclosa.

Quan aplica

Declara una causa d'exempció quan l'operació estigui exempta o no subjecta segons la Llei de l'IVA. Declara retenció quan facturis com a professional o arrendis un local de negoci. Declara recàrrec quan el teu client sigui un minorista en règim de recàrrec d'equivalència.

La distinció entre les dues famílies de codis és legal, no cosmètica (BR-INV-032):

FamíliaCodisBase a la LIVADesglossament AEAT
ExemptaE1 art. 20 · E2 art. 21 · E3 art. 22 · E4 arts. 23 i 24 · E5 art. 25 · E6 altresL'operació que està subjecta a l'IVA, i exempta.Declara un codi d'operació exempta. Sense quota d'IVA.
No subjectaN1 arts. 7, 14 i altres · N2 regles de localitzacióL'operació queda fora de l'àmbit de l'impost.Declara una qualificació de no subjecció.

El catàleg no conté cap codi S a propòsit. «Subjecta i no exempta» és el valor per defecte, no una causa seleccionable, i la inversió del subjecte passiu es modela a la capçalera de la factura, no per línia. Com que el règim de capçalera és de només lectura a la v1, la inversió del subjecte passiu no es pot declarar per l'API pública — vegeu Clients internacionals.

Què envia l'API

Exempció i no subjecció

lines[].exemption_reason a POST /v1/invoices i PUT /v1/invoices/{id}. Un valor fora del catàleg de vuit codis respon 422 amb allowed_values.

curl -X POST https://api.factuarea.com/v1/invoices \
  -H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
  -H "Content-Type: application/json" \
  -d '{
        "client_id": "0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42",
        "series_id": "019e5584-7a72-7038-a8f6-561ed180b699",
        "issued_on": "2026-06-01",
        "due_on": "2026-07-01",
        "lines": [
          { "description": "Exportación de maquinaria", "quantity": 1, "unit_price": 100, "tax_rate": 0, "exemption_reason": "E2" },
          { "description": "Servicio de instalación", "quantity": 1, "unit_price": 50, "tax_rate": 21 }
        ]
      }'

El desglossament de l'AEAT agrupa pel parell (tipus impositiu, causa d'exempció), així que una factura mixta produeix un grup per combinació i cada grup quadra pel seu compte. Les línies que comparteixen tots dos valors s'agreguen en un sol grup.

Una línia que omet el camp cau a la qualificació derivada de la capçalera de la factura. Com que una factura creada per la v1 té sempre el règim general de capçalera, aquest valor per defecte és «subjecta i no exempta» — i per això una línia exempta ho ha de dir de manera explícita.

La retenció d'IRPF resta

lines[].retention_rate és un percentatge de 0 a 100, opcionalment acompanyat de lines[].retention_rate_id, una referència a una retenció del teu catàleg. La fórmula canònica del total és:

total = subtotal + IVA − retenció + recàrrec d'equivalència

La retenció és diners que el client es queda i ingressa a l'Administració tributària en nom del professional, així que redueix l'import a pagar (BR-INV-033):

{
  "lines": [
    { "description": "Servicios de consultoría", "quantity": 1, "unit_price": 1000, "tax_rate": 21, "retention_rate": 15 }
  ]
}

Aquella línia factura 1000, repercuteix 210 d'IVA, reté 150, i el client paga 1060.

Si envies alhora retention_rate i retention_rate_id, han de coincidir. Una discrepància és un 422 que anomena tots dos percentatges, en lloc d'una decisió silenciosa sobre quin guanya.

Alguns tipus de retenció s'emmagatzemen amb signe negatiu — una convenció visual heretada que significa «això es reté». El càlcul pren el valor absolut i la resta està cablejada a la fórmula mateixa, així que el signe no canvia mai el resultat (BR-TAX-008). El catàleg fiscal públic publica sempre aquests tipus en positiu.

La matriu del recàrrec d'equivalència és tancada

lines[].surcharge_rate no és un número lliure. Tota línia amb recàrrec per damunt de zero es valida contra l'aparellament legal amb el seu tipus d'IVA (BR-INV-034):

Tipus d'IVARecàrrec legal
21 %5,2 %
10 %1,4 %
4 %0,5 %
0 %0 %

Una combinació il·legal —21 % d'IVA amb un recàrrec de l'1,4 %, per exemple— respon 422 amb els parells legals a allowed_values. La comparació és per valor arrodonit a dos decimals, així que 5.2 i 5.20 són el mateix parell.

Les operacions sota aquest règim solen portar a més regime_key: "18".

Què retorna cada línia

L'objecte línia de factura retorna tax_rate, retention_rate, surcharge_rate, discount_percent, el subtotal calculat, taxes i total, més els camps fiscals: regime_key, exemption_reason, indirect_tax_regime i aeat_tax_code.

Els dos últims són un snapshot fiscal congelat, escrit en construir la línia i mai recalculat (BR-TAX-023). Una factura emesa no canvia el seu règim indirecte perquè l'empresa traslladi després el seu domicili fiscal, i les línies històriques anteriors al snapshot es queden buides en lloc de reomplir-se amb les dades d'avui.

D'on surten els valors per defecte

Quan omets un tipus, el resol una única cadena del backend compartida per totes les superfícies —tauler, API pública, eines d'agent, importadors, factures recurrents— en ordre estricte de prioritat (BR-TAX-025):

Valors per defecte del client. El client desa tipus, no referències, i cada tipus es resol a un impost concret filtrat pel règim indirecte de l'emissor: un 7 % per defecte d'un client en una empresa canària resol a IGIC al 7 %, no a un IVA peninsular.

Ajustos de l'empresa, inclosa la suggerència derivada de la zona AEAT de l'empresa.

El catàleg global.

La cadena és de millor esforç i no retorna mai cap error per un valor per defecte irresoluble: degrada a l'esglaó següent. Si el client està marcat com a subjecte al recàrrec d'equivalència i el tipus d'IVA resolt té un recàrrec legalment vinculat, aquest recàrrec s'injecta als valors per defecte (BR-TAX-022).

Consulta-la directament amb GET /v1/taxes/defaults/{docType} quan vulguis ensenyar als teus usuaris el que s'aplicarà abans que ho confirmin.

Què surt al PDF

Canvien dues coses al document imprès.

El bloc de totals reflecteix la fórmula de dalt: la retenció apareix com a resta i el recàrrec d'equivalència com a suma, així que l'import a pagar difereix de subtotal + IVA.

Les mencions legals. Quan la factura porta una causa d'exempció a nivell de document, la seva frase legal —citant l'article de la LIVA— s'afegeix com a primera menció legal de la factura (BR-TAX-024). Aquesta causa és un camp de capçalera, un per factura, i és de només lectura per l'API pública: l'objecte factura exposa exemption_reason i legal_mentions, però cap operació de la v1 no els fixa. Una factura creada per la v1 no imprimeix, per tant, cap frase automàtica d'exempció; posa el text a notes si el document ho necessita.

El camp de línia exemption_reason_text (fins a 255 caràcters) existeix amb el mateix propòsit a nivell de línia, i és només de presentació — no té cap efecte fiscal.

Què arriba a l'AEAT

Una qualificació per grup de desglossament. Una línia que declara un codi E produeix una entrada d'operació exempta amb aquest codi literal i sense quota repercutida; una línia que declara un codi N produeix una qualificació de no subjecció. Una línia que no declara res hereta la qualificació derivada de la capçalera (BR-VFC-029).

La clau d'agrupació és el parell (tipus impositiu, causa d'exempció), que és el que permet a una factura mixta passar la validació de l'AEAT: cada grup declara la seva pròpia base, el seu propi tipus i la seva pròpia quota, i dins del grup es compleix base × tipus = quota.

La retenció no apareix al desglossament VeriFactu — no és IVA. Es declara a les declaracions de retencions i redueix el total de la factura.

El recàrrec d'equivalència només es propaga a les línies subjectes i no exemptes; les línies exemptes no porten ni IVA ni recàrrec.

Traçabilitat

Derivat de les regles de domini del backend de Factuarea:

  • BR-INV-032 — el catàleg tancat E1E6 / N1N2, el valor derivat de la capçalera, l'agrupació per (tipus, causa) i la invariant de huella idèntica.
  • BR-INV-033 — la retenció d'IRPF per línia al contracte v1 i la comprovació de coherència entre el tipus i l'impost referenciat.
  • BR-INV-034 — la matriu legal tancada de parells d'IVA i recàrrec.
  • BR-TAX-008 — la retenció emmagatzemada amb signe però calculada en valor absolut.
  • BR-TAX-022 — el vincle legal d'un tipus d'IVA amb el seu recàrrec d'equivalència.
  • BR-TAX-023 — el snapshot fiscal immutable per línia.
  • BR-TAX-024 — la causa d'exempció a nivell de document i la menció legal automàtica.
  • BR-TAX-025 — la cadena client → empresa → catàleg global de valors fiscals per defecte.
  • BR-VFC-029 — com es deriva la qualificació quan la línia no declara cap causa.

En aquesta pàgina