bankstract
Endpoints

Check a statement for tamper signals

Upload a statement and get evidence about whether the file was edited: reconciliation, revisions, producer, fonts, overlays drawn over text, and date order. This is evidence, never a verdict. A forger who regenerates the file with the bank's own library and recomputes every balance passes every check. `clean` means no signals; a `checks_skipped` warning means a check could not run on part of the file. HTTP 200 with error signals is a normal outcome. Counts as one parse for your plan. The anonymous demo key can call it with a Turnstile token: it shares the demo's per-IP budget, and its report carries the same additive `_demo` envelope as a demo parse. The file is read in memory and never written to disk.

POST
/v1/inspect

Header Parameters

authorization?string|null

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/inspect" \  -F pdf="string"
{  "bank": "string",  "format_version": "string",  "signals": [    {      "code": "string",      "severity": "warn",      "detail": "string",      "page": 0,      "row": 0    }  ],  "clean": true}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}
{  "error": "string",  "error_class": "string",  "format_version": "string",  "marker_coverage": 0}