Upload bank statement

POST https://app.speybooks.com/api/v1/bank-imports/upload

Upload a CSV bank statement file via multipart form data. The UIE engine auto-detects the schema (column roles, date format, amount model) and returns a preview of parsed rows with duplicate detection results and balance proof.

The file is stored temporarily for potential remapping. It is cleared when the import is confirmed or deleted.

Send the file as multipart/form-data with fields:

  • file: The CSV file
  • bankAccountId: Integer ID of the target bank account

Response

201 File parsed. Returns import ID, row counts, date range, preview of first 20 rows, detected schema with column mapping, and balance proof if available.
Show response fields
balanceProof object
Show child attributes
closingBalance integer
delta integer
openingBalance integer
status string
stepwisePass boolean
dateRange object
Show child attributes
from string
to string
duplicates integer
errorRows integer
ignoredRows integer
importId string
schema object
Show child attributes
detectedPreset string
fingerprint string
provenance string
totalRows integer
validRows integer

Error codes

400 No file uploaded, unsupported format, parse errors, or no valid transactions found.
404 Bank account not found.
413 File exceeds 5MB limit.