bankstract

Errors

One error envelope, typed by error_class.

Every non-2xx response uses the same JSON envelope:

{
  "error": "no registered parser detected this source",
  "error_class": "ParseError",
  "format_version": null,
  "marker_coverage": null
}

Branch on error_class, not the human error string. marker_coverage is populated only for EmptyStatementError.

Status codes

StatusMeaning
200Success: ParseResponse JSON, or redacted/CSV bytes
401Missing, invalid, or revoked key (AuthError)
402Subscription inactive (subscription_inactive)
413File over 50 MB (PayloadTooLarge)
422Parse failure: see error_class below
500Internal engine error

error_class (the 422 cases)

error_classWhat happenedWhat to do
EncryptedSourceErrorThe PDF is password-protectedRemove the password, re-upload
EmptyStatementErrorParsed clean, zero rows. High marker_coverage ≈ truly empty; low ≈ silent layout driftCheck the statement; if wrong, file an issue
LayoutDriftErrorBank detected, but the layout changedFile an issue with a redacted sample
ReconciliationErrorTotals don't reconcile against the statement headerLikely format drift. File an issue
ParseErrorNo supported bank detected, or a non-statement PDFConfirm the bank is supported

Format drift on a supported bank is fixed within 48h (see Banks).

On this page