data.verification.
This is the part a document-reading model cannot offer. It does not tell you whether we read the bill correctly. It tells you whether the bill agrees with itself, which is a fact about your document and worth knowing before you file against it.
The response
boolean
True when no error-level check failed. Warnings do not affect it.
number
Share of applicable checks that passed, 0 to 1. Checks that do not apply to a document are not counted, so a bill with no container table is not penalised for it.
number
Error-level failures.
number
Warning-level failures.
array
One entry per failure, with
id, severity and a detail naming the figures that disagreed.The checks
What a failure usually means
document.single-bill: several bills concatenated into one PDF. Their sections have been merged into a single incoherent document: the header is the first bill’s, the item rows are all of them. Split the file and extract each bill separately.
value.fob-equals-item-sum: the summary FOB and the item lines disagree. A delta that is an exact factor of ten is a decimal-place error somewhere in the document.
header.item-count or header.invoice-count: the file is truncated, or a part is missing. A bill whose header declares four items but carries three rows is missing a row, not mis-read.
Extraction still succeeds
A document that fails verification is still returned with a200 and full fields. The checks describe the document; they do not gate the response.
What you do with that is yours to decide. Routing failures to human review before filing is the obvious use. A bill that does not reconcile with itself will not reconcile with DGFT either.