JSON-schema: läsa ut en svensk faktura
JSON Schema för att läsa ut en svensk faktura med en LLM: leverantör, organisationsnummer, momsnummer, OCR, bankgiro, rader, moms och att betala i kronor.
Läs ut uppgifterna från fakturan. Beloppen är tal i kronor, utan valutatecken. Om en uppgift saknas, hitta inte på den.
JSON Schema
{
"type": "object",
"required": [
"leverantor",
"fakturadatum",
"att_betala"
],
"properties": {
"ocr": {
"type": "string",
"description": "OCR-nummer att ange vid betalning"
},
"moms": {
"type": "number"
},
"rader": {
"type": "array",
"items": {
"type": "object",
"required": [
"beskrivning",
"belopp"
],
"properties": {
"antal": {
"type": "number"
},
"belopp": {
"type": "number"
},
"beskrivning": {
"type": "string"
}
}
}
},
"bankgiro": {
"type": "string"
},
"momssats": {
"type": "number",
"description": "Momssats i procent (25, 12 eller 6)"
},
"att_betala": {
"type": "number",
"description": "Att betala i kronor"
},
"leverantor": {
"type": "string",
"description": "Leverantörens namn"
},
"fakturadatum": {
"type": "string",
"format": "date",
"description": "Fakturadatum (ÅÅÅÅ-MM-DD)"
},
"fakturanummer": {
"type": "string"
},
"forfallodatum": {
"type": "string",
"format": "date",
"description": "Förfallodatum (ÅÅÅÅ-MM-DD)"
},
"belopp_exkl_moms": {
"type": "number"
},
"organisationsnummer": {
"type": "string",
"description": "Organisationsnummer (NNNNNN-NNNN)"
},
"momsregistreringsnummer": {
"type": "string",
"description": "Momsregistreringsnummer (SE + 12 siffror)"
}
}
}Exempel på utdata
{
"leverantor": "Tryckeriet i Norden AB",
"organisationsnummer": "556677-8899",
"momsregistreringsnummer": "SE556677889901",
"fakturanummer": "2026-0412",
"fakturadatum": "2026-09-15",
"forfallodatum": "2026-10-15",
"ocr": "4120260915",
"bankgiro": "123-4567",
"rader": [
{
"beskrivning": "Visitkort x500",
"antal": 1,
"belopp": 800.0
},
{
"beskrivning": "Flygblad A5 x1000",
"antal": 1,
"belopp": 1200.0
}
],
"belopp_exkl_moms": 2000.0,
"momssats": 25,
"moms": 500.0,
"att_betala": 2500.0
}Uppskattad kostnad
Indatatokens per anrop : ≈ 795
| Modell | Per anrop | Per 1 000 anrop |
|---|---|---|
| Mistral Large · Mistral AI | 0,00035 € | 0,35 € |
| DeepSeek Flash · DeepSeek | 0,00021 € | 0,21 € |
| DeepSeek V4 Pro · DeepSeek | 0,00092 € | 0,92 € |
| GPT-6 Luna · OpenAI | 0,00007 € | 0,07 € |
| GPT-6 Sol · OpenAI | 0,00140 € | 1,40 € |
| Claude Sonnet 5.5 · Anthropic | 0,00140 € | 1,40 € |
| Claude Opus 5.5 · Anthropic | 0,00280 € | 2,80 € |
| Egendriftad öppen källkodsmodell (Ollama, vLLM) | 0 € i API-avgifter (endast serverkostnad) | |
Endast kostnaden för indata, utan modellens svar. Leverantörernas offentliga standardpriser (Mistral AI, DeepSeek, OpenAI, Anthropic) omräknade från USD till euro enligt ECB:s kurs den 29 september 2026. Uppskattning: 1 token ≈ 3,6 tecken.
Gemensamt för de 3 regionerna
Skapad av författaren, utan extern källa.
Kommersiell användning tillåten · ange upphovsperson · ändringar tillåtna.
Endast text eller data: ingen åtkomst till filer, nätverk eller kommandon.
Driftas i Frankrike (Scaleway, Paris). Ingen överföring utanför EU.
Europeiska unionen · 5/5
Inga personuppgifter.
Inga träningsdata: ingen sammanfattning krävs.
USA · 5/5
Inga personuppgifter.
Inga träningsdata: ingen dokumentation att publicera.
Kina · 5/5
Inga personuppgifter.
Inga träningsdata; AI-genererat innehåll som sprids i Kina måste märkas (2025).
Vägledande sammanfattning per 30/09/2026, utan värde som juridisk certifiering. Metod och källor →
Statistik
Gillamarkeringar : 0 · Kommentarer : 0
Klicka på en räknare för att visa eller dölja den, för muspekaren över diagrammet för detaljer. En visning per besökare och dag, robotar undantagna; räkningen startade den 30 september 2026.
- Identifierare
- contextetech--extrahera-svensk-faktura
- Typ
- Utdatascheman
- Fil
- extrahera-svensk-faktura.schema.json
- Format
- JSON (application/json)
- Storlek
- 1 629 byte (1,6 KB)
- Teckenkodning
- UTF-8
- Uppskattade tokens
- ≈ 450
- Språk
- Svenska
- Licens
- MIT
- Kommersiell användning
- Tillåten
- Personuppgifter
- Inga
- Version
- 1.0
- Publicerad
- 8 oktober 2026 kl. 19:48
- Uppdaterad
- 8 oktober 2026 kl. 19:48
- Lagring
- i databasen
- Användningar
- 0
- Gillamarkeringar
- 0
extrahera-svensk-faktura.schema.json
{
"type": "object",
"required": [
"leverantor",
"fakturadatum",
"att_betala"
],
"properties": {
"ocr": {
"type": "string",
"description": "OCR-nummer att ange vid betalning"
},
"moms": {
"type": "number"
},
"rader": {
"type": "array",
"items": {
"type": "object",
"required": [
"beskrivning",
"belopp"
],
"properties": {
"antal": {
"type": "number"
},
"belopp": {
"type": "number"
},
"beskrivning": {
"type": "string"
}
}
}
},
"bankgiro": {
"type": "string"
},
"momssats": {
"type": "number",
"description": "Momssats i procent (25, 12 eller 6)"
},
"att_betala": {
"type": "number",
"description": "Att betala i kronor"
},
"leverantor": {
"type": "string",
"description": "Leverantörens namn"
},
"fakturadatum": {
"type": "string",
"format": "date",
"description": "Fakturadatum (ÅÅÅÅ-MM-DD)"
},
"fakturanummer": {
"type": "string"
},
"forfallodatum": {
"type": "string",
"format": "date",
"description": "Förfallodatum (ÅÅÅÅ-MM-DD)"
},
"belopp_exkl_moms": {
"type": "number"
},
"organisationsnummer": {
"type": "string",
"description": "Organisationsnummer (NNNNNN-NNNN)"
},
"momsregistreringsnummer": {
"type": "string",
"description": "Momsregistreringsnummer (SE + 12 siffror)"
}
}
}Anthropics API (Python)
import json, anthropic
schema = json.load(open("extrahera-svensk-faktura.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": "din indata här"}])
print(resp.content[0].input)OpenAI-format (response_format)
{
"type": "json_schema",
"json_schema": {
"name": "extrahera-svensk-faktura",
"schema": {
"type": "object",
"required": [
"leverantor",
"fakturadatum",
"att_betala"
],
"properties": {
"ocr": {
"type": "string",
"description": "OCR-nummer att ange vid betalning"
},
"moms": {
"type": "number"
},
"rader": {
"type": "array",
"items": {
"type": "object",
"required": [
"beskrivning",
"belopp"
],
"properties": {
"antal": {
"type": "number"
},
"belopp": {
"type": "number"
},
"beskrivning": {
"type": "string"
}
}
}
},
"bankgiro": {
"type": "string"
},
"momssats": {
"type": "number",
"description": "Momssats i procent (25, 12 eller 6)"
},
"att_betala": {
"type": "number",
"description": "Att betala i kronor"
},
"leverantor": {
"type": "string",
"description": "Leverantörens namn"
},
"fakturadatum": {
"type": "string",
"format": "date",
"description": "Fakturadatum (ÅÅÅÅ-MM-DD)"
},
"fakturanummer": {
"type": "string"
},
"forfallodatum": {
"type": "string",
"format": "date",
"description": "Förfallodatum (ÅÅÅÅ-MM-DD)"
},
"belopp_exkl_moms": {
"type": "number"
},
"organisationsnummer": {
"type": "string",
"description": "Organisationsnummer (NNNNNN-NNNN)"
},
"momsregistreringsnummer": {
"type": "string",
"description": "Momsregistreringsnummer (SE + 12 siffror)"
}
}
},
"strict": true
}
}
Gemenskap
Inga kommentarer ännu. Dela din erfarenhet, det hjälper nästa person.