# Verification

> The check on every response, what reconciled means, and what to do when it is false.

Section: Guides
Source: https://statementbear.com/docs/verification
Product: StatementBear statement parsing API, $0.49 per document, 25 free.

---

Every response carries a check of the extraction against the document it came from. Read it before you use the figures.

## What is checked

- **Every amount appears in the document.** An amount printed nowhere in the PDF is an error, and it is caught before the document is returned.
- **Balances close.** Where the statement prints an opening and a closing balance, the transactions must account for the movement between them exactly.
- **Printed totals are compared** against our own sum.
- **Missing sections are reported**, so a statement missing part of itself does not come back looking complete.

## The field

```json
"verification": {
  "reconciled": false,
  "issues": [
    "Closing balance 1602.56 does not follow from opening balance 1204.11 and the rows returned (difference 42.10)."
  ]
}
```

| `reconciled` | `issues` | Meaning |
| --- | --- | --- |
| `true` | empty | Checked, nothing wrong. Use the figures. |
| `false` | non-empty | Something is wrong. Treat the figures as unverified and put the document in front of a person. |
| `false` | empty | The document could not be checked, usually because the issuer printed no balances and no totals. |

> **Branch on reconciled, display issues**
>
> `issues` is written for a person triaging a document. The wording changes. `reconciled` does not.

## Printed totals

Issuers disagree about what their own totals mean. Amex's total new spend is net of refunds; most banks' equivalent is not. A gap between `totals` and `statedTotals` does not on its own make a document unreconciled.

## When reconciled is false

1. Keep the document. The rows are still there and are usually right.
2. Do not present the totals as verified.
3. Send it to manual review with `doc.id` and `verification.issues` attached.
4. If you think a document should have passed, email us the `doc.id`. We keep no transactions, so that is what we need to look into it.

A document that fails the check is still billable. It returned `200` and the rows were extracted.

---

All documentation: https://statementbear.com/docs/llms.txt
Questions: api@statementbear.com
