bankstract
Endpoints

Parse a bank statement

Upload a PDF (or XLSX) statement and get structured transactions back. `?format=json` (default) returns ParseResponse; `?format=csv` returns the engine-serialized CSV. Redaction is its own route, POST /v1/redact. The file is parsed in memory and never written to disk.

POST
/v1/parse

Query Parameters

format?Format

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

curl -X POST "https://example.com/v1/parse" \  -F pdf="string"
{  "format_version": "string",  "metadata": {    "bank": "string",    "account_holder": "string",    "account_number_masked": "string",    "statement_period_start": "2019-08-24T14:15:22Z",    "statement_period_end": "2019-08-24T14:15:22Z",    "opening_balance": "string",    "closing_balance": "string"  },  "totals": {    "credit": "string",    "debit": "string"  },  "reconciliation": {    "totals": "passed",    "row_wise": "passed",    "row_wise_reason": "string"  },  "transactions": [    {      "date": "2019-08-24T14:15:22Z",      "narration": "string",      "debit": "string",      "credit": "string",      "balance": "string",      "reference": "string",      "currency": "string",      "has_time": 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}