Bank Statement · Errors
Beyond global errors — see Errors (global).
Upload
| HTTP | Error | Meaning |
|---|---|---|
| 400 | file required (multipart field) | Missing file form field. |
| 400 | pdf only | We don't accept JPEG/PNG/image scans directly. |
| 413 | file too large (>50 MB) | Enterprise tier max is 100 MB; talk to us. |
| 422 | unsupported bank — using AI fallback | Note: this isn't a hard error; AI parser kicks in. Surfaces as a flag not failure. |
| 429 | rate limit exceeded: upload (60 per 10 min) | Provisionable. |
Password
| HTTP | Error | Meaning |
|---|---|---|
| 409 | analysis not in password_required state | Calling password endpoint on a wrong-state analysis. |
| 422 | invalid password (attempt N of 5) | Try again; after 5 the analysis is locked. |
| 409 | analysis locked (password attempts exhausted) | Customer must re-upload with the correct password. |
Analyses
| HTTP | Error | Meaning |
|---|---|---|
| 404 | analysis not found | Wrong ID or analysis belongs to another org. |
| 409 | analysis status not retryable | Can't retry a completed analysis (use re-upload). Can retry failed. |
| 422 | parser unavailable | Native parser temporarily disabled (e.g. emergency rollback). AI fallback applies. |
Consolidations
| HTTP | Error | Meaning |
|---|---|---|
| 409 | consolidation has active analyses; cannot delete | Wait for analyses to finish, or ?cascade=true. |
| 422 | mismatched account holders in group | Different accountHolder strings across analyses. Surfaces as warning; doesn't block. |
Transactions
| HTTP | Error | Meaning |
|---|---|---|
| 400 | categoryId not in org category set | The categoryId must be a built-in or org-defined category. |
| 422 | applyToSimilar requires createRule | Bulk apply only when you also create a permanent rule. |
Webhooks
| HTTP | Error | Meaning |
|---|---|---|
| 400 | events: at least one required | Empty subscription. |
| 400 | url must be https | HTTPS-only outside sandbox. |