Informes fiscals
Genera el Modelo 303, el 347 i el 130, tria el format adequat i distingeix el fitxer que presentes del llibre amb què revises.
Un informe fiscal és una declaració calculada a partir de les teves pròpies dades de facturació per a un període i materialitzada en un fitxer. Factuarea cobreix els tres models espanyols que una empresa emissora de factures presenta per si mateixa, produeix cadascun en tres formats i desa totes les generacions en un històric que pots llistar, auditar i tornar a descarregar.
Tots els endpoints viuen sota https://api.factuarea.com/v1. Generar usa
tax_reports:write; previsualitzar, llistar i descarregar usen
tax_reports:read.
Els tres models
| Model | Què declara | Període | Endpoint |
|---|---|---|---|
| Modelo 303 | IVA trimestral: IVA meritat, recàrrec d'equivalència, adquisicions intracomunitàries, inversió del subjecte passiu, IVA suportat deduïble i el resultat de la liquidació. | Any + trimestre | POST /v1/tax_reports/303 |
| Modelo 347 | Operacions anuals amb tercers per damunt de 3.005,06 € per contrapart i exercici, desglossades en els quatre trimestres. | Només any | POST /v1/tax_reports/347 |
| Modelo 130 | Pagament fraccionat trimestral d'IRPF de l'autònom en estimació directa. El càlcul és acumulat des de l'1 de gener fins al final del trimestre. | Any + trimestre | POST /v1/tax_reports/130 |
year i format són obligatoris en tots tres. El quarter l'exigeixen el 303 i
el 130, i el 347 l'ignora: el 347 és anual i no existeix cap 347 trimestral. Els
exercicis suportats comencen el 2024.
curl -X POST https://api.factuarea.com/v1/tax_reports/303 \
-H "Authorization: Bearer $FACTUAREA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "year": 2026, "quarter": 1, "format": "txt_aeat" }'El Modelo 131 (estimació objectiva, el règim de mòduls) queda fora d'abast.
Una empresa en aquest règim que demani un 130 rep un 422 amb un missatge que
remet al 131, en comptes d'un fitxer que no podria presentar.
Tres formats, un sol càlcul
Els tres models produeixen les mateixes tres sortides, i totes tres es construeixen a partir del mateix càlcul de domini. Es diferencien en per a què serveixen, no en el que diuen.
format | Què és | Es pot presentar? |
|---|---|---|
txt_aeat | El fitxer posicional oficial, conforme al disseny de registre de l'AEAT que fixa l'ordre ministerial del model. | Sí: aquest és el que es presenta. |
pdf | Una versió llegible de la declaració, per arxivar-la i per enviar-la a un client o a un assessor. | No. |
excel | Un llibre de treball (.xlsx) per revisar i quadrar les xifres abans de presentar. | No. |
Davant l'AEAT només es presenta el txt_aeat. El PDF i el full de càlcul
són material de revisió: no es pugen a la Seu Electrònica ni substitueixen el
fitxer oficial en cap tràmit.
Dit això —i aquesta és l'altra meitat de la regla— les xifres del PDF i del llibre són fiables. No es recalculen per a la capa de presentació: surten exactament del mateix càlcul que produeix el fitxer oficial, així que quadrar contra elles és quadrar contra allò que presentaràs. Que un import diferís entre dos formats de la mateixa declaració és impossible per construcció.
El llibre d'Excel
El llibre té exactament dos fulls —Resumen i Detalle— i tots dos s'obren
amb la mateixa etiqueta de context: model, període fiscal i empresa declarant amb
el seu NIF. Un full es copia a un altre llibre o s'imprimeix a part, i aleshores
res del context de l'aplicació no hi viatja.
Les primeres files de Resumen, abans de qualsevol dada, porten l'avís:
AVISO: este libro es material de trabajo y NO es presentable ante la AEAT.
La presentación se realiza con el fichero oficial en formato TXT que genera
la propia aplicación.L'advertiment viu dins del fitxer expressament. El llibre es descarrega, s'adjunta a un correu i s'obre en un altre ordinador, que és justament on algú podria intentar presentar-lo. Un avís que només existís a la pantalla que va originar la descàrrega no hi seria, en aquell moment.
Què posa cada model a cada full:
| Model | Resumen | Detalle |
|---|---|---|
| 347 | Clients i proveïdors declarats, import total declarat i quantes contraparts superen el llindar de 3.005,06 €. | Una fila per contrapart: tipus, NIF, nom, província, país, base anual i els quatre trimestres. Primer els clients i després els proveïdors, en el mateix ordre que els registres del fitxer oficial. |
| 303 | Base i quota meritades, recàrrec, intracomunitàries, inversió del subjecte passiu, rectificatives, IVA suportat deduïble, compensació de períodes anteriors i resultat de la liquidació. | IVA meritat i recàrrec oberts per tipus impositiu, més onze blocs fixos que s'emeten sempre, zeros inclosos. |
| 130 | Les caselles derivades: la cadena que acaba en l'import a ingressar. | Les caselles de partida que les alimenten, perquè el resultat sigui traçable sense refer el càlcul. |
Dues propietats en què pots confiar:
- Els imports són nombres, no text formatat. Una columna d'imports se suma al
full mateix sense conversió prèvia, i un zero s'escriu com a
0en comptes de deixar-se en blanc: en un informe econòmic una cel·la buida es llegeix com a «sense dada», no com a «zero». - A cada fila del 347, els quatre trimestres sumen la base anual. La columna
Tipoés el que distingeix una compra d'una venda tan bon punt reordenes el full.
Un exercici sense cap contrapart per damunt del llindar genera llibre igualment: el full de detall surt buit i el resum ho diu citant el llindar. És el cas normal d'una empresa petita, no un error: no hauries d'endevinar si el càlcul va arribar a executar-se.
Generar, descarregar, conservar l'històric
Una generació és un recurs persistit. Els tres endpoints de model retornen
201 amb l'informe i el seu id; el fitxer s'obté a part, tantes vegades com
calgui.
# 1. Generar — retorna 201 amb l'id de l'informe
curl -X POST https://api.factuarea.com/v1/tax_reports/347 \
-H "Authorization: Bearer $FACTUAREA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "year": 2025, "format": "excel" }'
# 2. Descarregar el fitxer que va produir
curl -G https://api.factuarea.com/v1/tax_reports/01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0b/download \
-H "Authorization: Bearer $FACTUAREA_API_KEY" \
--output modelo-347-2025.xlsxGET /v1/tax_reports/{tax_report}/download transmet el fitxer amb el tipus de
contingut del format amb què es va generar —text posicional, PDF o full de
càlcul— i hi afegeix una capçalera X-Tax-Report-Hash amb què verificar que els
bytes que vas arxivar són els que es van generar.
La resta del domini llegeix aquest mateix històric:
| Endpoint | Què et dóna |
|---|---|
GET /v1/tax_reports/history | Totes les generacions de l'empresa, de la més recent a la més antiga, filtrables per type i year, amb paginació per cursor. |
POST /v1/tax_reports/find-by-period | La generació més recent d'un type + year (+ quarter), o 404 si aquell període no s'ha generat mai. |
GET /v1/tax_reports/stats | KPIs agregats: totals per model i per format, mida acumulada i període fiscal en curs. |
GET /v1/tax_reports/{tax_report}/activities | La cronologia d'activitat d'una generació: quan es va generar i qui la va generar. |
Per veure les xifres abans de comprometre't amb un fitxer, usa
POST /v1/tax_reports/preview amb type, year i quarter: calcula el mateix
desglossament, no persisteix res i no escriu cap fitxer. És la crida que va
darrere d'una pantalla de «revisar abans de presentar».
Errors que has de preveure
| Estat | code | Quan |
|---|---|---|
422 | invalid_period | Any fora del rang suportat, o trimestre absent o invàlid en un model que el necessita. |
422 | insufficient_data_for_report | El període no té res a declarar, o una factura del període no té un camp que el model exigeix. |
422 | unsupported_format | El model no produeix aquell format per a aquell exercici. |
422 | report_format_invalid | format fora de txt_aeat, pdf, excel. |
422 | tax_report_type_invalid | type fora de modelo_303, modelo_347, modelo_130. |
404 | tax_report_not_found | L'id no correspon a cap informe de la teva empresa. |
Referència completa a Tots els error codes.
Des d'un agent
Les mateixes nou operacions estan exposades com a MCP tools:
generate_tax_report_303, generate_tax_report_347 i
generate_tax_report_130 sota tax_reports:write, i previsualització, cerca per
període, històric, estadístiques, activitat i descàrrega sota tax_reports:read.
Consulta el catàleg de tools.
Passos següents
receptes de principi a fi per a les declaracions espanyoles.
els règims que condicionen el que declaren aquests models.
esquemes de petició i resposta.