Esquema JSON: extraer una factura española
JSON Schema para extraer una factura española con un LLM: emisor y NIF, número, fecha, líneas, base imponible, IVA y total en euros.
Extrae los datos de la factura. Los importes son números en euros, sin símbolo. Si falta un dato, no lo inventes.
JSON Schema
{
"type": "object",
"required": [
"emisor",
"fecha",
"total"
],
"properties": {
"fecha": {
"type": "string",
"format": "date",
"description": "Fecha de expedición (AAAA-MM-DD)"
},
"total": {
"type": "number"
},
"emisor": {
"type": "string",
"description": "Razón social del emisor"
},
"lineas": {
"type": "array",
"items": {
"type": "object",
"required": [
"concepto",
"importe"
],
"properties": {
"importe": {
"type": "number"
},
"cantidad": {
"type": "number"
},
"concepto": {
"type": "string"
}
}
}
},
"numero": {
"type": "string",
"description": "Número de factura"
},
"tipo_iva": {
"type": "number",
"description": "Porcentaje de IVA (21, 10 o 4)"
},
"cuota_iva": {
"type": "number"
},
"nif_emisor": {
"type": "string",
"description": "NIF o CIF del emisor"
},
"base_imponible": {
"type": "number"
}
}
}Ejemplo de salida
{
"emisor": "Imprenta Gómez S.L.",
"nif_emisor": "B12345678",
"numero": "F-2026-0412",
"fecha": "2026-09-15",
"lineas": [
{
"concepto": "Tarjetas de visita x500",
"cantidad": 1,
"importe": 80.0
},
{
"concepto": "Folletos A5 x1000",
"cantidad": 1,
"importe": 120.0
}
],
"base_imponible": 200.0,
"tipo_iva": 21,
"cuota_iva": 42.0,
"total": 242.0
}Coste estimado
Tokens de entrada por llamada : ≈ 610
| Modelo | Por llamada | Por 1.000 llamadas |
|---|---|---|
| Mistral Large · Mistral AI | 0,00027 € | 0,27 € |
| DeepSeek Flash · DeepSeek | 0,00016 € | 0,16 € |
| DeepSeek V4 Pro · DeepSeek | 0,00071 € | 0,71 € |
| GPT-6 Luna · OpenAI | 0,00005 € | 0,05 € |
| GPT-6 Sol · OpenAI | 0,00107 € | 1,07 € |
| Claude Sonnet 5.5 · Anthropic | 0,00107 € | 1,07 € |
| Claude Opus 5.5 · Anthropic | 0,00215 € | 2,15 € |
| Modelo de código abierto autoalojado (Ollama, vLLM) | 0 € de API (solo el coste del servidor) | |
Solo coste de entrada, sin la respuesta del modelo. Precios públicos estándar de los proveedores (Mistral AI, DeepSeek, OpenAI, Anthropic) convertidos de USD a euros al tipo del BCE del 29 de septiembre de 2026. Estimación: 1 token ≈ 3,6 caracteres.
Common to all 3 regions
Created by the author, no outside source.
Commercial use allowed · credit the author · changes allowed.
Text or data only: no access to files, network or commands.
Hosted in France (Scaleway, Paris). No transfer outside the EU.
European Union · 5/5
No personal data.
No training data: no summary required.
United States · 5/5
No personal data.
No training data: no documentation to publish.
China · 5/5
No personal data.
No training data; AI-generated content published in China must be labelled (2025).
Indicative summary as of 30/09/2026, not a legal certification. Method and sources →
Estadísticas
Me gusta : 0 · Comentarios : 0
Haz clic en un contador para mostrarlo u ocultarlo; pasa el ratón por el gráfico para ver el detalle. Una visita por visitante y día, sin robots; recuento iniciado el 30 de septiembre de 2026.
- Identificador
- contextetech--extraer-factura-espanola
- Tipo
- Esquemas de salida
- Archivo
- extraer-factura-espanola.schema.json
- Formato
- JSON (application/json)
- Tamaño
- 1163 bytes (1,1 KB)
- Codificación
- UTF-8
- Tokens estimados
- ≈ 322
- Idioma
- Español
- Licencia
- MIT
- Uso comercial
- Permitido
- Datos personales
- Ninguno
- Versión
- 1.0
- Publicado el
- 3 de octubre de 2026 a las 5:20
- Actualizado el
- 3 de octubre de 2026 a las 5:20
- Almacenamiento
- en base de datos
- Usos
- 0
- Me gusta
- 0
extraer-factura-espanola.schema.json
{
"type": "object",
"required": [
"emisor",
"fecha",
"total"
],
"properties": {
"fecha": {
"type": "string",
"format": "date",
"description": "Fecha de expedición (AAAA-MM-DD)"
},
"total": {
"type": "number"
},
"emisor": {
"type": "string",
"description": "Razón social del emisor"
},
"lineas": {
"type": "array",
"items": {
"type": "object",
"required": [
"concepto",
"importe"
],
"properties": {
"importe": {
"type": "number"
},
"cantidad": {
"type": "number"
},
"concepto": {
"type": "string"
}
}
}
},
"numero": {
"type": "string",
"description": "Número de factura"
},
"tipo_iva": {
"type": "number",
"description": "Porcentaje de IVA (21, 10 o 4)"
},
"cuota_iva": {
"type": "number"
},
"nif_emisor": {
"type": "string",
"description": "NIF o CIF del emisor"
},
"base_imponible": {
"type": "number"
}
}
}API de Anthropic (Python)
import json, anthropic
schema = json.load(open("extraer-factura-espanola.schema.json"))
client = anthropic.Anthropic()
resp = client.messages.create(model="claude-sonnet-5", max_tokens=1024,
tools=[{"name": "extraire", "description": "Renvoie les données extraites", "input_schema": schema}],
tool_choice={"type": "tool", "name": "extraire"},
messages=[{"role": "user", "content": "tu entrada aquí"}])
print(resp.content[0].input)Formato OpenAI (response_format)
{
"type": "json_schema",
"json_schema": {
"name": "extraer-factura-espanola",
"schema": {
"type": "object",
"required": [
"emisor",
"fecha",
"total"
],
"properties": {
"fecha": {
"type": "string",
"format": "date",
"description": "Fecha de expedición (AAAA-MM-DD)"
},
"total": {
"type": "number"
},
"emisor": {
"type": "string",
"description": "Razón social del emisor"
},
"lineas": {
"type": "array",
"items": {
"type": "object",
"required": [
"concepto",
"importe"
],
"properties": {
"importe": {
"type": "number"
},
"cantidad": {
"type": "number"
},
"concepto": {
"type": "string"
}
}
}
},
"numero": {
"type": "string",
"description": "Número de factura"
},
"tipo_iva": {
"type": "number",
"description": "Porcentaje de IVA (21, 10 o 4)"
},
"cuota_iva": {
"type": "number"
},
"nif_emisor": {
"type": "string",
"description": "NIF o CIF del emisor"
},
"base_imponible": {
"type": "number"
}
}
},
"strict": true
}
}
Comunidad
Aún no hay comentarios. Comparte tu opinión, ayudará a los siguientes.