invoiceInvoice
Number, dates, seller and buyer tax IDs, lines, VAT and total, reconciled.
- Category
- Payments and finance
- Country
- International
- Extracted fields
- 10 fields
- Cost
- 1 credit
Invalid
Constaia extracts the whole invoice, checks the tax IDs and that base, VAT and total add up. For non-standard invoices, pass your own JSON Schema in extract.
What it checks
- NIF/NIE check letter. The check character is recomputed (mod 23).
- Totals. Net amount, taxes and total add up.
- Expected values. Amount, reference or IBAN match the ones you provide.
Extracted fields
- Number
number - Issue date
issue_date - Seller (name, tax ID, address)
seller - Buyer
buyer - Line items
lines - Tax base
tax_base - VAT
vat - Withholding
withholding - Total
total - Currency
currency
Where it is used
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@document.pdf" \
-F 'options={
"expect": "invoice",
"checks": {
"require_fields": [
"number",
"total"
]
},
"storage": "none"
}'Sample response
Fictitious data. Shortened response.
200 OK · application/json
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "invoice",
"label": "Invoice",
"confidence": 0.97
},
"verdict": {
"expected": [
"invoice"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: Invoice."
}
]
},
"fields": {
"number": {
"value": "F-2026-0412",
"confidence": 0.99,
"validated": true
},
"issue_date": {
"value": "2026-09-15",
"confidence": 0.98,
"validated": null
},
"tax_base": {
"value": 100,
"confidence": 0.97,
"validated": null
},
"total": {
"value": 121,
"confidence": 0.96,
"validated": null
},
"currency": {
"value": "EUR",
"confidence": 0.99,
"validated": null
}
},
"checks": [
{
"code": "tax_id_check_digit",
"passed": true,
"message": "The tax ID is correct."
},
{
"code": "totals_balance",
"passed": true,
"message": "Base, VAT and total add up."
}
],
"warnings": [],
"storage": {
"mode": "none",
"file_deleted_at": "2026-09-29T10:00:02Z",
"expires_at": null
},
"usage": {
"credits": 1,
"pages": 1
}
}FAQ
Does Constaia prove the document is authentic?
No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.
Is a copy of the document kept?
No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.
Other documents
And for the record…
Create your account, copy the test key and validate your first document in five minutes.