File size: 3,134 Bytes
7ff7119 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | {
"type": "object",
"title": "InvoiceSchema",
"description": "Structured-extraction JSON schema for invoices. Mandatory fields per the relevant national VAT act (e.g. HU VAT Act §169 for Hungarian invoices). _quotes and _confidence are anti-hallucination layers.",
"properties": {
"invoice_number": {
"type": ["string", "null"],
"description": "Invoice serial number. If incomplete, use null."
},
"issue_date": {
"type": ["string", "null"],
"description": "Issue date in ISO 8601 format (YYYY-MM-DD). Normalize from other formats."
},
"fulfillment_date": {
"type": ["string", "null"],
"description": "Fulfillment / service-delivery date in ISO 8601 format (YYYY-MM-DD)."
},
"payment_due_date": {
"type": ["string", "null"],
"description": "Payment due date in ISO 8601 format (YYYY-MM-DD)."
},
"payment_method": {
"type": ["string", "null"],
"description": "e.g. transfer, cash, card"
},
"currency": {
"type": "string",
"description": "ISO 4217 code or well-known: USD, EUR, HUF, GBP, CHF",
"default": "USD"
},
"issuer": {
"type": ["object", "null"],
"properties": {
"name": { "type": ["string", "null"] },
"tax_id": { "type": ["string", "null"], "description": "Format depends on jurisdiction (HU: XXXXXXXX-X-XX, US: XX-XXXXXXX EIN, EU: VAT ID)" },
"address": { "type": ["string", "null"] }
}
},
"customer": {
"type": ["object", "null"],
"properties": {
"name": { "type": ["string", "null"] },
"tax_id": { "type": ["string", "null"] },
"address": { "type": ["string", "null"] }
}
},
"line_items": {
"type": "array",
"description": "Invoice line items",
"items": {
"type": "object",
"properties": {
"item_code": { "type": ["string", "null"] },
"description": { "type": ["string", "null"] },
"quantity": { "type": ["number", "null"] },
"unit": { "type": ["string", "null"] },
"unit_price_net": { "type": ["number", "null"] },
"vat_rate": { "type": ["number", "null"], "description": "As a percentage (e.g. 20)" },
"total_net": { "type": ["number", "null"] },
"total_vat": { "type": ["number", "null"] },
"total_gross": { "type": ["number", "null"] }
}
}
},
"total_net": { "type": ["number", "null"] },
"total_vat": { "type": ["number", "null"] },
"total_gross": { "type": ["number", "null"] },
"_quotes": {
"type": "array",
"items": { "type": "string" },
"description": "ANTI-HALLUCINATION: verbatim document quotes (at least 3 quotes for key fields)"
},
"_confidence": {
"type": "object",
"description": "ANTI-HALLUCINATION: per-field reliability: high | medium | low"
},
"_source": {
"type": "object",
"properties": {
"file_name": { "type": "string" },
"page_number": { "type": ["integer", "null"] }
}
}
},
"required": ["_quotes", "_confidence"]
}
|