Properties
| Name | Type | Description |
|---|---|---|
| modelo | string | |
| year | integer | |
| quarter | integer | |
| sourceType | string | UPLOADED_FORM when read from a filed form, MANUAL_ENTRY when typed from the user's notes |
| casillas | object | Every box printed on the form, keyed by its printed two- or three-digit number ('01', '71', '110', '120'). Monetary amounts in EUR; rate boxes in percent. Omitted keys preserve existing values, null c |
| nif | stringnull | |
| apellidosNombre | stringnull | |
| numeroJustificante | stringnull | AEAT receipt number exactly as printed; does not itself mark a filing as verified |
| sourceDocumentUrl | stringnull | |
| filed | boolean | Explicit assertion that this source was filed with AEAT. Separate from internal verified status. Omitted means unknown. |
| datosExtraidos | objectnull | Original extraction retained for provenance; does not populate boxes automatically. Replay casillas explicitly to repair an earlier import. |
| period | string | 349 only: 1T..4T or 01..12. May use quarter for quarterly forms. |
| operacionesIntracomunitarias | array | |
| totalOperaciones | integernull | |
| importeTotalOperaciones | numbernull | |
| rectificaciones | array | |
| ivaDevengado | numbernull | Modelo 303: total IVA devengado (box 27) |
| ivaDeducible | numbernull | Modelo 303: total IVA deducible (box 45) |
| ivaResultado | numbernull | Modelo 303: result (box 71) |
| source_file | stringnull |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/declararfacil-com/json-schema/declararfacil-com-historical-modelo-input-schema.json",
"title": "HistoricalModeloInput",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/declararfacil-com-openapi.json#/components/schemas/HistoricalModeloInput",
"type": "object",
"required": [
"modelo",
"year"
],
"properties": {
"modelo": {
"type": "string",
"enum": [
"303",
"130",
"349"
]
},
"year": {
"type": "integer"
},
"quarter": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"sourceType": {
"type": "string",
"enum": [
"UPLOADED_FORM",
"MANUAL_ENTRY"
],
"default": "UPLOADED_FORM",
"description": "UPLOADED_FORM when read from a filed form, MANUAL_ENTRY when typed from the user's notes"
},
"casillas": {
"type": "object",
"description": "Every box printed on the form, keyed by its printed two- or three-digit number ('01', '71', '110', '120'). Monetary amounts in EUR; rate boxes in percent. Omitted keys preserve existing values, null clears, zero is stored. 130 boxes are cumulative. Aggregate aliases must agree with the same submitted box",
"additionalProperties": {
"type": [
"number",
"null"
]
}
},
"nif": {
"type": [
"string",
"null"
]
},
"apellidosNombre": {
"type": [
"string",
"null"
]
},
"numeroJustificante": {
"type": [
"string",
"null"
],
"description": "AEAT receipt number exactly as printed; does not itself mark a filing as verified"
},
"sourceDocumentUrl": {
"type": [
"string",
"null"
]
},
"filed": {
"type": "boolean",
"description": "Explicit assertion that this source was filed with AEAT. Separate from internal verified status. Omitted means unknown."
},
"datosExtraidos": {
"type": [
"object",
"null"
],
"additionalProperties": true,
"description": "Original extraction retained for provenance; does not populate boxes automatically. Replay casillas explicitly to repair an earlier import."
},
"period": {
"type": "string",
"description": "349 only: 1T..4T or 01..12. May use quarter for quarterly forms."
},
"operacionesIntracomunitarias": {
"type": "array",
"items": {
"type": "object",
"required": [
"pais",
"vatIdEU",
"nombreOperador",
"clave",
"baseImponible"
],
"properties": {
"pais": {
"type": "string"
},
"vatIdEU": {
"type": "string"
},
"nombreOperador": {
"type": "string"
},
"clave": {
"type": "string"
},
"baseImponible": {
"type": "number"
},
"rectificaciones": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"totalOperaciones": {
"type": [
"integer",
"null"
]
},
"importeTotalOperaciones": {
"type": [
"number",
"null"
]
},
"rectificaciones": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"ivaDevengado": {
"type": [
"number",
"null"
],
"description": "Modelo 303: total IVA devengado (box 27)"
},
"ivaDeducible": {
"type": [
"number",
"null"
],
"description": "Modelo 303: total IVA deducible (box 45)"
},
"ivaResultado": {
"type": [
"number",
"null"
],
"description": "Modelo 303: result (box 71)"
},
"source_file": {
"type": [
"string",
"null"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/declararfacil-com-historical-modelo-input"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.