Request upload slots with PUT /documents/bank-statements/presign,
providing each PDF file name (and optional external identifier).
The response includes presigned_url and path values for every
requested file.
Upload the PDF content to every presigned_url using an HTTP PUT
request with Content-Type: application/octet-stream.
Call this endpoint with the JSON payload returned in step one,
echoing the path (and optional external_document_id) for every
uploaded file so Teal can extract and store the bank statement data.
The path values you submit must match the ones returned by the presign
step. Any files that failed validation or extraction are reported in the
bank_statement_errors array.
PUT
/
documents
/
bank-statements
Submit previously uploaded bank statements for processing
Optional authorisation ID to associate with this request. If not provided, the system will attempt to resolve a valid authorisation for the user automatically.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Teal","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/teal/Bcr09DVpVxdrVRJl/logo/light.svg?fit=max\u0026auto=format\u0026n=Bcr09DVpVxdrVRJl\u0026q=85\u0026s=f1f94f62054040d698706983d3b88016","dark":"https://mintcdn.com/teal/Bcr09DVpVxdrVRJl/logo/dark.svg?fit=max\u0026auto=format\u0026n=Bcr09DVpVxdrVRJl\u0026q=85\u0026s=e6414f548a8e27e0c07175a488d2f256"},"favicon":"https://mintcdn.com/teal/Bcr09DVpVxdrVRJl/favicon.svg?fit=max\u0026auto=format\u0026n=Bcr09DVpVxdrVRJl\u0026q=85\u0026s=dfb4da63f6b3fdca92c71519210b7ccd","navbar":{"links":[{"href":"mailto:hello@goteal.co","label":"Support"}]},"footer":{"socials":{"website":"https://goteal.co","linkedin":"https://www.linkedin.com/company/goteal"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"book-open-cover","href":"https://goteal.co"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"teal","hasAudioNarration":false,"actualSubdomain":"teal","customDomains":["docs.goteal.co"],"gitSource":{"type":"github","owner":"teal-connect","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb82c56e43bdfe55f01a95","collectionId":"a44b63e9-4fff-4cf7-86d1-961ae27c6af7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb82c56e43bdfe55f01a95"},"entitlements":{},"buildId":"6adb82c56e43bdfe55f01a95","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":45},{"language":"default","tag":"Accounts","count":7},{"language":"default","tag":"Authorisations","count":7},{"language":"default","tag":"Doc Scan","count":6},{"language":"default","tag":"Payroll","count":6},{"language":"default","tag":"Users","count":6},{"language":"default","tag":"Documentation","count":5},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Webhooks","count":4},{"language":"default","tag":"Configuration","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/documents/bank-statements-upload","slug":"/api-reference/documents/bank-statements-upload","pageMetadata":{"title":"Upload bank statements","openapi":"PUT /documents/bank-statements","description":"Uploading bank statements is a three-step flow:\n 1. Request upload slots with `PUT /documents/bank-statements/presign`,\n providing each PDF file name (and optional external identifier).\n The response includes `presigned_url` and `path` values for every\n requested file.\n 2. Upload the PDF content to every `presigned_url` using an HTTP `PUT`\n request with `Content-Type: application/octet-stream`.\n 3. Call this endpoint with the JSON payload returned in step one,\n echoing the `path` (and optional `external_document_id`) for every\n uploaded file so Teal can extract and store the bank statement data.\nThe `path` values you submit must match the ones returned by the presign\nstep. Any files that failed validation or extraction are reported in the\n`bank_statement_errors` array.\n","href":"/api-reference/documents/bank-statements-upload"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Uploading bank statements is a three-step flow:\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Request upload slots with \", _jsx(_components.code, {\n children: \"PUT /documents/bank-statements/presign\"\n }), \",\\nproviding each PDF file name (and optional external identifier).\\nThe response includes \", _jsx(_components.code, {\n children: \"presigned_url\"\n }), \" and \", _jsx(_components.code, {\n children: \"path\"\n }), \" values for every\\nrequested file.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Upload the PDF content to every \", _jsx(_components.code, {\n children: \"presigned_url\"\n }), \" using an HTTP \", _jsx(_components.code, {\n children: \"PUT\"\n }), \"\\nrequest with \", _jsx(_components.code, {\n children: \"Content-Type: application/octet-stream\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Call this endpoint with the JSON payload returned in step one,\\nechoing the \", _jsx(_components.code, {\n children: \"path\"\n }), \" (and optional \", _jsx(_components.code, {\n children: \"external_document_id\"\n }), \") for every\\nuploaded file so Teal can extract and store the bank statement data.\\nThe \", _jsx(_components.code, {\n children: \"path\"\n }), \" values you submit must match the ones returned by the presign\\nstep. Any files that failed validation or extraction are reported in the\\n\", _jsx(_components.code, {\n children: \"bank_statement_errors\"\n }), \" array.\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Upload bank statements","openapi":"PUT /documents/bank-statements","description":"Uploading bank statements is a three-step flow:\n 1. Request upload slots with `PUT /documents/bank-statements/presign`,\n providing each PDF file name (and optional external identifier).\n The response includes `presigned_url` and `path` values for every\n requested file.\n 2. Upload the PDF content to every `presigned_url` using an HTTP `PUT`\n request with `Content-Type: application/octet-stream`.\n 3. Call this endpoint with the JSON payload returned in step one,\n echoing the `path` (and optional `external_document_id`) for every\n uploaded file so Teal can extract and store the bank statement data.\nThe `path` values you submit must match the ones returned by the presign\nstep. Any files that failed validation or extraction are reported in the\n`bank_statement_errors` array.\n","href":"/api-reference/documents/bank-statements-upload"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Submit previously uploaded bank statements for processing","parameters":["0d1b3a7f-3eaa-4ba0-85ef-a2371d387fd9"],"description":"Uploading bank statements is a three-step flow:\n 1. Request upload slots with `PUT /documents/bank-statements/presign`,\n providing each PDF file name (and optional external identifier).\n The response includes `presigned_url` and `path` values for every\n requested file.\n 2. Upload the PDF content to every `presigned_url` using an HTTP `PUT`\n request with `Content-Type: application/octet-stream`.\n 3. Call this endpoint with the JSON payload returned in step one,\n echoing the `path` (and optional `external_document_id`) for every\n uploaded file so Teal can extract and store the bank statement data.\nThe `path` values you submit must match the ones returned by the presign\nstep. Any files that failed validation or extraction are reported in the\n`bank_statement_errors` array.\n","security":["ea839e3a-e45e-4173-8368-365c6ac59a6e"],"requestBody":"0245fce5-02a4-44d5-94ce-ef1eed45cd53","responses":{"200":"c1c2316c-d6fd-47d9-ad27-21be7744cb06","201":"93da0ebe-687a-4edb-b8f0-d173c45b7b1e","400":"e787e664-be35-44c8-b914-9e8fd4bc369c","401":"c9ce727f-918b-41ef-aaad-85f7c8642b1e"},"method":"put","type":"path","servers":["742833a9-e448-4843-b38b-cd5bf228a9b1","77e4d818-25f3-46e0-88a5-6a8a8c77be0b"],"path":"/documents/bank-statements","baseUrlOptions":["https://api.sandbox.goteal.co","https://api.goteal.co"],"title":"Submit previously uploaded bank statements for processing","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0d1b3a7f-3eaa-4ba0-85ef-a2371d387fd9":{"name":"x-teal-authorisation-id","in":"header","required":false,"description":"Optional authorisation ID to associate with this request. If not provided, the system will attempt to resolve a valid authorisation for the user automatically.","schema":{"type":"string","format":"uuid","example":"7f3b8c2a-1d4e-4f6a-8b8c-9a0b1c2d3e4f","isRequired":false,"description":"Optional authorisation ID to associate with this request. If not provided, the system will attempt to resolve a valid authorisation for the user automatically.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["files"],"properties":{"files":{"type":"array","minItems":1,"items":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":"Storage path returned by the presign endpoint.","example":"client/acct123/users/user456/stmt1.pdf","isRequired":true,"uniqueKey":"files.items.[INDEX].path","typeLabel":"string"},"external_document_id":{"type":"string","description":"Optional identifier shown in submissions when present.","example":"ext-stmt-2024-01","uniqueKey":"files.items.[INDEX].external_document_id","typeLabel":"string"}},"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"files":[{"path":"client/acct123/users/user456/stmt1.pdf","external_document_id":"ext-stmt-2024-01"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c1c2316c-d6fd-47d9-ad27-21be7744cb06":{"description":"OK — all files successfully extracted","content":{"application/json":{"schema":{"type":"object","properties":{"bank_statement_submissions":{"type":"array","description":"Successfully processed bank statements","items":{"type":"object","required":["id","created_at"],"properties":{"id":{"type":"string","format":"uuid","description":"Unique bank statement submission identifier","example":"95a0e70b-fe02-4f47-aef9-2efff279df71","isRequired":true,"uniqueKey":"bank_statement_submissions.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"created_at":{"type":"string","format":"date-time","example":"2019-05-17T00:00:00.000Z","isRequired":true,"uniqueKey":"bank_statement_submissions.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"document_id":{"oneOf":[{"type":"string","format":"uuid","description":"ID of the linked raw document, if available","uniqueKey":"bank_statement_submissions.items.[INDEX].document_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"ID of the linked raw document, if available","uniqueKey":"bank_statement_submissions.items.[INDEX].document_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_id","typeLabel":"string\u003cuuid> | null"},"document_external_id":{"oneOf":[{"type":"string","description":"External ID provided during upload, if any","uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External ID provided during upload, if any","uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id","typeLabel":"string | null"},"document_filename":{"oneOf":[{"type":"string","description":"File name of the uploaded document","uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename.oneOf.0","typeLabel":"string"},{"type":"null","description":"File name of the uploaded document","uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename","typeLabel":"string | null"},"currency":{"oneOf":[{"type":"string","description":"ISO-4217 currency code. Null when the statement does not determine one.","example":"GBP","uniqueKey":"bank_statement_submissions.items.[INDEX].currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO-4217 currency code. Null when the statement does not determine one.","example":"GBP","uniqueKey":"bank_statement_submissions.items.[INDEX].currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].currency","typeLabel":"string | null"},"bank_account_id":{"oneOf":[{"type":"string","format":"uuid","description":"Stable identifier derived from sort code and account number. Null when either value is missing.","example":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Stable identifier derived from sort code and account number. Null when either value is missing.","example":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id","typeLabel":"string\u003cuuid> | null"},"account_information":{"oneOf":[{"type":"object","description":"Account holder and bank details extracted from the bank statement","properties":{"account_holder_name":{"oneOf":[{"type":"string","description":"Name of the account holder","example":"JANE DOE","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the account holder","example":"JANE DOE","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name","typeLabel":"string | null"},"account_number":{"oneOf":[{"type":"string","description":"Bank account number","example":"12345678","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Bank account number","example":"12345678","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number","typeLabel":"string | null"},"sort_code":{"oneOf":[{"type":"string","description":"Sort code of the bank account","example":"12-34-56","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sort code of the bank account","example":"12-34-56","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code","typeLabel":"string | null"},"bank_name":{"oneOf":[{"type":"string","description":"Name of the bank","example":"HSBC","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the bank","example":"HSBC","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name","typeLabel":"string | null"},"iban":{"oneOf":[{"type":"string","description":"IBAN of the bank account","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban.oneOf.0","typeLabel":"string"},{"type":"null","description":"IBAN of the bank account","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0","typeLabel":"object"},{"type":"null","description":"Account holder and bank details extracted from the bank statement","properties":{"account_holder_name":{"oneOf":[{"type":"string","description":"Name of the account holder","example":"JANE DOE"},{"type":"null","description":"Name of the account holder","example":"JANE DOE"}]},"account_number":{"oneOf":[{"type":"string","description":"Bank account number","example":"12345678"},{"type":"null","description":"Bank account number","example":"12345678"}]},"sort_code":{"oneOf":[{"type":"string","description":"Sort code of the bank account","example":"12-34-56"},{"type":"null","description":"Sort code of the bank account","example":"12-34-56"}]},"bank_name":{"oneOf":[{"type":"string","description":"Name of the bank","example":"HSBC"},{"type":"null","description":"Name of the bank","example":"HSBC"}]},"iban":{"oneOf":[{"type":"string","description":"IBAN of the bank account"},{"type":"null","description":"IBAN of the bank account"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information","typeLabel":"object | null"},"period":{"oneOf":[{"type":"object","description":"Time period covered by the bank statement","properties":{"start_date":{"oneOf":[{"type":"string","description":"Start date of the statement period","example":"2024-01-01","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Start date of the statement period","example":"2024-01-01","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date","typeLabel":"string | null"},"end_date":{"oneOf":[{"type":"string","description":"End date of the statement period","example":"2024-01-31","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"End date of the statement period","example":"2024-01-31","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","description":"Time period covered by the bank statement","properties":{"start_date":{"oneOf":[{"type":"string","description":"Start date of the statement period","example":"2024-01-01"},{"type":"null","description":"Start date of the statement period","example":"2024-01-01"}]},"end_date":{"oneOf":[{"type":"string","description":"End date of the statement period","example":"2024-01-31"},{"type":"null","description":"End date of the statement period","example":"2024-01-31"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period","typeLabel":"object | null"},"balance_information":{"oneOf":[{"type":"object","description":"Opening and closing balances from the bank statement","properties":{"opening_balance":{"oneOf":[{"type":"string","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance","typeLabel":"string | null"},"closing_balance":{"oneOf":[{"type":"string","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance.oneOf.0","typeLabel":"string"},{"type":"null","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0","typeLabel":"object"},{"type":"null","description":"Opening and closing balances from the bank statement","properties":{"opening_balance":{"oneOf":[{"type":"string","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00"},{"type":"null","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00"}]},"closing_balance":{"oneOf":[{"type":"string","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00"},{"type":"null","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information","typeLabel":"object | null"},"transactions":{"oneOf":[{"type":"array","description":"List of transactions extracted from the bank statement","items":{"type":"object","description":"A single transaction from the bank statement","properties":{"date":{"oneOf":[{"type":"string","description":"Date of the transaction","example":"2024-01-15","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date of the transaction","example":"2024-01-15","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Transaction description","example":"Salary Payment","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction description","example":"Salary Payment","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"string","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","description":"Transaction type (credit or debit)","example":"credit","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction type (credit or debit)","example":"credit","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"List of transactions extracted from the bank statement","items":{"type":"object","description":"A single transaction from the bank statement","properties":{"date":{"oneOf":[{"type":"string","description":"Date of the transaction","example":"2024-01-15"},{"type":"null","description":"Date of the transaction","example":"2024-01-15"}]},"description":{"oneOf":[{"type":"string","description":"Transaction description","example":"Salary Payment"},{"type":"null","description":"Transaction description","example":"Salary Payment"}]},"amount":{"oneOf":[{"type":"string","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00"},{"type":"null","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00"}]},"type":{"oneOf":[{"type":"string","description":"Transaction type (credit or debit)","example":"credit"},{"type":"null","description":"Transaction type (credit or debit)","example":"credit"}]}}},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions","typeLabel":"object[] | null"},"bank_statement_probability":{"oneOf":[{"type":"number","format":"float","description":"Confidence score (0-1) that the document is a genuine bank statement","example":0.95,"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Confidence score (0-1) that the document is a genuine bank statement","example":0.95,"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability","typeLabel":"number\u003cfloat> | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_submissions","typeLabel":"object[]"},"bank_statement_errors":{"type":"array","description":"Files that failed extraction","items":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"bank_statement_errors.items.[INDEX].error","typeLabel":"string"},"file_name":{"type":"string","uniqueKey":"bank_statement_errors.items.[INDEX].file_name","typeLabel":"string"}},"uniqueKey":"bank_statement_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"bank_statement_submissions":[{"id":"95a0e70b-fe02-4f47-aef9-2efff279df71","created_at":"2019-05-17T00:00:00.000Z","document_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","document_external_id":"\u003cstring>","document_filename":"\u003cstring>","currency":"GBP","bank_account_id":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","account_information":{"account_holder_name":"JANE DOE","account_number":"12345678","sort_code":"12-34-56","bank_name":"HSBC","iban":"\u003cstring>"},"period":{"start_date":"2024-01-01","end_date":"2024-01-31"},"balance_information":{"opening_balance":"1000.00","closing_balance":"1250.00"},"transactions":[{"date":"2024-01-15","description":"Salary Payment","amount":"2500.00","type":"credit"}],"bank_statement_probability":0.95}],"bank_statement_errors":[{"error":"\u003cstring>","file_name":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"93da0ebe-687a-4edb-b8f0-d173c45b7b1e":{"description":"Created — bank statement(s) extracted and saved","content":{"application/json":{"schema":{"type":"object","properties":{"bank_statement_submissions":{"type":"array","description":"Successfully processed bank statements","items":{"type":"object","required":["id","created_at"],"properties":{"id":{"type":"string","format":"uuid","description":"Unique bank statement submission identifier","example":"95a0e70b-fe02-4f47-aef9-2efff279df71","isRequired":true,"uniqueKey":"bank_statement_submissions.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"created_at":{"type":"string","format":"date-time","example":"2019-05-17T00:00:00.000Z","isRequired":true,"uniqueKey":"bank_statement_submissions.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"document_id":{"oneOf":[{"type":"string","format":"uuid","description":"ID of the linked raw document, if available","uniqueKey":"bank_statement_submissions.items.[INDEX].document_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"ID of the linked raw document, if available","uniqueKey":"bank_statement_submissions.items.[INDEX].document_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_id","typeLabel":"string\u003cuuid> | null"},"document_external_id":{"oneOf":[{"type":"string","description":"External ID provided during upload, if any","uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External ID provided during upload, if any","uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_external_id","typeLabel":"string | null"},"document_filename":{"oneOf":[{"type":"string","description":"File name of the uploaded document","uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename.oneOf.0","typeLabel":"string"},{"type":"null","description":"File name of the uploaded document","uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].document_filename","typeLabel":"string | null"},"currency":{"oneOf":[{"type":"string","description":"ISO-4217 currency code. Null when the statement does not determine one.","example":"GBP","uniqueKey":"bank_statement_submissions.items.[INDEX].currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO-4217 currency code. Null when the statement does not determine one.","example":"GBP","uniqueKey":"bank_statement_submissions.items.[INDEX].currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].currency","typeLabel":"string | null"},"bank_account_id":{"oneOf":[{"type":"string","format":"uuid","description":"Stable identifier derived from sort code and account number. Null when either value is missing.","example":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Stable identifier derived from sort code and account number. Null when either value is missing.","example":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_account_id","typeLabel":"string\u003cuuid> | null"},"account_information":{"oneOf":[{"type":"object","description":"Account holder and bank details extracted from the bank statement","properties":{"account_holder_name":{"oneOf":[{"type":"string","description":"Name of the account holder","example":"JANE DOE","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the account holder","example":"JANE DOE","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_holder_name","typeLabel":"string | null"},"account_number":{"oneOf":[{"type":"string","description":"Bank account number","example":"12345678","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Bank account number","example":"12345678","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.account_number","typeLabel":"string | null"},"sort_code":{"oneOf":[{"type":"string","description":"Sort code of the bank account","example":"12-34-56","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sort code of the bank account","example":"12-34-56","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.sort_code","typeLabel":"string | null"},"bank_name":{"oneOf":[{"type":"string","description":"Name of the bank","example":"HSBC","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the bank","example":"HSBC","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.bank_name","typeLabel":"string | null"},"iban":{"oneOf":[{"type":"string","description":"IBAN of the bank account","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban.oneOf.0","typeLabel":"string"},{"type":"null","description":"IBAN of the bank account","uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0.iban","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.0","typeLabel":"object"},{"type":"null","description":"Account holder and bank details extracted from the bank statement","properties":{"account_holder_name":{"oneOf":[{"type":"string","description":"Name of the account holder","example":"JANE DOE"},{"type":"null","description":"Name of the account holder","example":"JANE DOE"}]},"account_number":{"oneOf":[{"type":"string","description":"Bank account number","example":"12345678"},{"type":"null","description":"Bank account number","example":"12345678"}]},"sort_code":{"oneOf":[{"type":"string","description":"Sort code of the bank account","example":"12-34-56"},{"type":"null","description":"Sort code of the bank account","example":"12-34-56"}]},"bank_name":{"oneOf":[{"type":"string","description":"Name of the bank","example":"HSBC"},{"type":"null","description":"Name of the bank","example":"HSBC"}]},"iban":{"oneOf":[{"type":"string","description":"IBAN of the bank account"},{"type":"null","description":"IBAN of the bank account"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].account_information","typeLabel":"object | null"},"period":{"oneOf":[{"type":"object","description":"Time period covered by the bank statement","properties":{"start_date":{"oneOf":[{"type":"string","description":"Start date of the statement period","example":"2024-01-01","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Start date of the statement period","example":"2024-01-01","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.start_date","typeLabel":"string | null"},"end_date":{"oneOf":[{"type":"string","description":"End date of the statement period","example":"2024-01-31","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"End date of the statement period","example":"2024-01-31","uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0.end_date","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.0","typeLabel":"object"},{"type":"null","description":"Time period covered by the bank statement","properties":{"start_date":{"oneOf":[{"type":"string","description":"Start date of the statement period","example":"2024-01-01"},{"type":"null","description":"Start date of the statement period","example":"2024-01-01"}]},"end_date":{"oneOf":[{"type":"string","description":"End date of the statement period","example":"2024-01-31"},{"type":"null","description":"End date of the statement period","example":"2024-01-31"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].period.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].period","typeLabel":"object | null"},"balance_information":{"oneOf":[{"type":"object","description":"Opening and closing balances from the bank statement","properties":{"opening_balance":{"oneOf":[{"type":"string","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.opening_balance","typeLabel":"string | null"},"closing_balance":{"oneOf":[{"type":"string","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance.oneOf.0","typeLabel":"string"},{"type":"null","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00","uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0.closing_balance","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.0","typeLabel":"object"},{"type":"null","description":"Opening and closing balances from the bank statement","properties":{"opening_balance":{"oneOf":[{"type":"string","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00"},{"type":"null","description":"Opening balance at the start of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1000.00"}]},"closing_balance":{"oneOf":[{"type":"string","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00"},{"type":"null","description":"Closing balance at the end of the statement period. Decimal string with 2 decimal places, no thousands separators. Sign is preserved.","example":"1250.00"}]}},"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].balance_information","typeLabel":"object | null"},"transactions":{"oneOf":[{"type":"array","description":"List of transactions extracted from the bank statement","items":{"type":"object","description":"A single transaction from the bank statement","properties":{"date":{"oneOf":[{"type":"string","description":"Date of the transaction","example":"2024-01-15","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date of the transaction","example":"2024-01-15","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].date","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Transaction description","example":"Salary Payment","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction description","example":"Salary Payment","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"string","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].amount","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","description":"Transaction type (credit or debit)","example":"credit","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction type (credit or debit)","example":"credit","uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX].type","typeLabel":"string | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"List of transactions extracted from the bank statement","items":{"type":"object","description":"A single transaction from the bank statement","properties":{"date":{"oneOf":[{"type":"string","description":"Date of the transaction","example":"2024-01-15"},{"type":"null","description":"Date of the transaction","example":"2024-01-15"}]},"description":{"oneOf":[{"type":"string","description":"Transaction description","example":"Salary Payment"},{"type":"null","description":"Transaction description","example":"Salary Payment"}]},"amount":{"oneOf":[{"type":"string","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00"},{"type":"null","description":"Transaction amount as a positive decimal string with 2 decimal places and no thousands separators. Direction is in type.","example":"2500.00"}]},"type":{"oneOf":[{"type":"string","description":"Transaction type (credit or debit)","example":"credit"},{"type":"null","description":"Transaction type (credit or debit)","example":"credit"}]}}},"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].transactions","typeLabel":"object[] | null"},"bank_statement_probability":{"oneOf":[{"type":"number","format":"float","description":"Confidence score (0-1) that the document is a genuine bank statement","example":0.95,"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Confidence score (0-1) that the document is a genuine bank statement","example":0.95,"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_statement_submissions.items.[INDEX].bank_statement_probability","typeLabel":"number\u003cfloat> | null"}},"uniqueKey":"bank_statement_submissions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_submissions","typeLabel":"object[]"},"bank_statement_errors":{"type":"array","description":"Files that failed extraction","items":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"bank_statement_errors.items.[INDEX].error","typeLabel":"string"},"file_name":{"type":"string","uniqueKey":"bank_statement_errors.items.[INDEX].file_name","typeLabel":"string"}},"uniqueKey":"bank_statement_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_statement_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"bank_statement_submissions":[{"id":"95a0e70b-fe02-4f47-aef9-2efff279df71","created_at":"2019-05-17T00:00:00.000Z","document_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","document_external_id":"\u003cstring>","document_filename":"\u003cstring>","currency":"GBP","bank_account_id":"f2d985e8-e77d-334f-bd3e-bee1a4057e8b","account_information":{"account_holder_name":"JANE DOE","account_number":"12345678","sort_code":"12-34-56","bank_name":"HSBC","iban":"\u003cstring>"},"period":{"start_date":"2024-01-01","end_date":"2024-01-31"},"balance_information":{"opening_balance":"1000.00","closing_balance":"1250.00"},"transactions":[{"date":"2024-01-15","description":"Salary Payment","amount":"2500.00","type":"credit"}],"bank_statement_probability":0.95}],"bank_statement_errors":[{"error":"\u003cstring>","file_name":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"e787e664-be35-44c8-b914-9e8fd4bc369c":{"description":"Bad request if one of the required parameters is missing","content":{"application/json":{"schema":{"required":["errors"],"type":"object","properties":{"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"An array of messages describing the errors","example":["The request is missing the required field `name`"],"isRequired":true,"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":["The request is missing the required field `name`"]}}},"exampleType":"generated"}},"exampleType":"generated"},"c9ce727f-918b-41ef-aaad-85f7c8642b1e":{"description":"Unauthorized if the X-API-KEY is not provided or is wrong","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"An array of messages describing the errors","example":["Not Authorization: Bearer \u003ctoken> provided or wrong value"],"uniqueKey":"errors","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":["Not Authorization: Bearer \u003ctoken> provided or wrong value"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ea839e3a-e45e-4173-8368-365c6ac59a6e":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token for authentication. The token should be the one returned by the /user-tokens endpoint.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"742833a9-e448-4843-b38b-cd5bf228a9b1":{"url":"https://api.sandbox.goteal.co","description":"Sandbox server for experiments"},"77e4d818-25f3-46e0-88a5-6a8a8c77be0b":{"url":"https://api.goteal.co","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer token for authentication. The token should be the one returned by the /user-tokens endpoint.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token for authentication. The token should be the one returned by the /user-tokens endpoint.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"teal","siteName":"Teal","title":"Upload bank statements - Teal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-14T10:54:12.566Z","originalFileLocation":"api-reference/documents/bank-statements-upload.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Uploading bank statements is a three-step flow: 1. Request upload slots with PUT /documents/bank-statements/presign, providing each PDF file name (and optional external identifier). The response includes presigned_url and path values for every requested file. 2. Upload the PDF content to every presigned_url using an HTTP PUT request with Content-Type: application/octet-stream. 3. Call this endpoint with the JSON payload returned in step one, echoing the path (and optional external_document_id) for every uploaded file so Teal can extract and store the bank statement data. The path values you submit must match the ones returned by the presign step. Any files that failed validation or extraction are reported in the bank_statement_errors array.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Teal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upload bank statements - Teal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Uploading bank statements is a three-step flow: 1. Request upload slots with PUT /documents/bank-statements/presign, providing each PDF file name (and optional external identifier). The response includes presigned_url and path values for every requested file. 2. Upload the PDF content to every presigned_url using an HTTP PUT request with Content-Type: application/octet-stream. 3. Call this endpoint with the JSON payload returned in step one, echoing the path (and optional external_document_id) for every uploaded file so Teal can extract and store the bank statement data. The path values you submit must match the ones returned by the presign step. Any files that failed validation or extraction are reported in the bank_statement_errors array.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Teal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.goteal.co/api-reference/documents/bank-statements-upload\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://teal.mintlify.app/_mintlify/api/og/v2?division=Doc+Scan\u0026amp;title=Upload+bank+statements\u0026amp;description=Uploading+bank+statements+is+a+three-step+flow%3A%0A++1.+Request+upload+slots+with+%60PUT+%2Fdocuments%2Fbank-statements%2Fpresign%60%2C%0A+++++providing+each+PDF+file+name+%28and+\u0026amp;theme=20e9f009a1ad75d8032a04e4\u0026amp;signature=35601bb9d05847cfd991564596f551f961921388ae272c6415c260968efed5e5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Upload bank statements - Teal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Uploading bank statements is a three-step flow: 1. Request upload slots with PUT /documents/bank-statements/presign, providing each PDF file name (and optional external identifier). The response includes presigned_url and path values for every requested file. 2. Upload the PDF content to every presigned_url using an HTTP PUT request with Content-Type: application/octet-stream. 3. Call this endpoint with the JSON payload returned in step one, echoing the path (and optional external_document_id) for every uploaded file so Teal can extract and store the bank statement data. The path values you submit must match the ones returned by the presign step. Any files that failed validation or extraction are reported in the bank_statement_errors array.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://teal.mintlify.app/_mintlify/api/og/v2?division=Doc+Scan\u0026amp;title=Upload+bank+statements\u0026amp;description=Uploading+bank+statements+is+a+three-step+flow%3A%0A++1.+Request+upload+slots+with+%60PUT+%2Fdocuments%2Fbank-statements%2Fpresign%60%2C%0A+++++providing+each+PDF+file+name+%28and+\u0026amp;theme=20e9f009a1ad75d8032a04e4\u0026amp;signature=35601bb9d05847cfd991564596f551f961921388ae272c6415c260968efed5e5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/teal/LMHi1fxtC26ppOnK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Teal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.goteal.co/api-reference/documents/bank-statements-upload\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/documents/bank-statements-upload.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.goteal.co/#organization\",\"name\":\"Teal\",\"url\":\"https://docs.goteal.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/teal/Bcr09DVpVxdrVRJl/logo/light.svg?fit=max\u0026auto=format\u0026n=Bcr09DVpVxdrVRJl\u0026q=85\u0026s=f1f94f62054040d698706983d3b88016\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.goteal.co#website\",\"name\":\"Teal\",\"url\":\"https://docs.goteal.co\",\"publisher\":{\"@id\":\"https://docs.goteal.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload#webpage\",\"url\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload\",\"name\":\"Upload bank statements\",\"description\":\"Uploading bank statements is a three-step flow: 1. Request upload slots with PUT /documents/bank-statements/presign, providing each PDF file name (and optional external identifier). The response includes presigned_url and path values for every requested file. 2. Upload the PDF content to every presigned_url using an HTTP PUT request with Content-Type: application/octet-stream. 3. Call this endpoint with the JSON payload returned in step one, echoing the path (and optional external_document_id) for every uploaded file so Teal can extract and store the bank statement data. The path values you submit must match the ones returned by the presign step. Any files that failed validation or extraction are reported in the bank_statement_errors array.\",\"dateModified\":\"2026-04-14T10:54:12.566Z\",\"isPartOf\":{\"@id\":\"https://docs.goteal.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Doc Scan\",\"item\":\"https://docs.goteal.co/api-reference/documents/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload bank statements\",\"item\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload#apireference\",\"headline\":\"Upload bank statements\",\"name\":\"Upload bank statements\",\"description\":\"Uploading bank statements is a three-step flow: 1. Request upload slots with PUT /documents/bank-statements/presign, providing each PDF file name (and optional external identifier). The response includes presigned_url and path values for every requested file. 2. Upload the PDF content to every presigned_url using an HTTP PUT request with Content-Type: application/octet-stream. 3. Call this endpoint with the JSON payload returned in step one, echoing the path (and optional external_document_id) for every uploaded file so Teal can extract and store the bank statement data. The path values you submit must match the ones returned by the presign step. Any files that failed validation or extraction are reported in the bank_statement_errors array.\",\"url\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload\",\"mainEntityOfPage\":{\"@id\":\"https://docs.goteal.co/api-reference/documents/bank-statements-upload#webpage\"},\"dateModified\":\"2026-04-14T10:54:12.566Z\",\"publisher\":{\"@id\":\"https://docs.goteal.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.goteal.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Teal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Teal","nav":{"global":{"anchors":[{"anchor":"Website","icon":"book-open-cover","href":"https://goteal.co"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Quickstart","href":"/api-reference/quickstart"},{"title":"Webhooks","href":"/api-reference/webhooks"}]},{"group":"Users","pages":[{"title":"Create a User","openapi":"POST /users","href":"/api-reference/users/create"},{"title":"Retrieve a user","openapi":"GET /users/{user_id}","href":"/api-reference/users/get"},{"title":"Update a User","openapi":"PATCH /users/{user_id}","href":"/api-reference/users/update"},{"title":"List all users","openapi":"GET /users","href":"/api-reference/users/list"},{"title":"List all recurring users","openapi":"GET /users/recurring","href":"/api-reference/users/list-recurring"},{"title":"Delete a user","openapi":"DELETE /users/{user_id}","href":"/api-reference/users/delete"}]},{"group":"User Token","pages":[{"title":"Generate User token","openapi":"POST /user-tokens","href":"/api-reference/users/tokens"}]},{"group":"Accounts","pages":[{"title":"Create an account","openapi":"POST /accounts","href":"/api-reference/accounts/create"},{"title":"Submit MFA response","openapi":"PUT /accounts/{account_id}/mfa","href":"/api-reference/accounts/mfa"},{"title":"Direct Connection","openapi":"POST /accounts/direct-connections","href":"/api-reference/accounts/direct-connections-create"},{"title":"List all accounts","openapi":"GET /accounts","href":"/api-reference/accounts/list"},{"title":"List all recurring accounts","openapi":"GET /accounts/recurring","href":"/api-reference/accounts/list-recurring"},{"title":"Get an account","openapi":"GET /accounts/{account_id}","href":"/api-reference/accounts/get"},{"title":"Delete an account","openapi":"DELETE /accounts/{account_id}","href":"/api-reference/accounts/delete"}]},{"group":"Payroll","pages":[{"title":"Query Payroll Connection","openapi":"POST /payroll/entries/connections","href":"/api-reference/payroll/connections-create"},{"title":"Generate presigned payslip URLs","openapi":"POST /payroll/entries/payslips/presign","href":"/api-reference/payroll/payslips-presign"},{"title":"Payslips upload","openapi":"POST /payroll/entries/payslips","href":"/api-reference/payroll/payslips-create"},{"title":"Get Payroll","openapi":"GET /payroll/{user_id}","href":"/api-reference/payroll/get"},{"title":"List all entries","openapi":"GET /payroll/entries","href":"/api-reference/payroll/entries-list"},{"title":"Delete an entry","openapi":"DELETE /payroll/entries/{entry_id}","href":"/api-reference/payroll/entries-delete"}]},{"group":"Expenditure","pages":[{"title":"Get ONS expenditure","openapi":"GET /expenditure/{user_id}/ons","href":"/api-reference/expenditure/ons"}]},{"group":"Gov Connect","pages":[{"title":"Query Gov Connection","openapi":"POST /gov-connect/entries/connections","href":"/api-reference/gov-connect/connections-create"},{"title":"Get Gov Connect income","openapi":"GET /gov-connect/{user_id}","href":"/api-reference/gov-connect/get"}]},{"group":"Doc Scan","pages":[{"title":"Lists all documents","openapi":"GET /documents","href":"/api-reference/documents/list"},{"title":"Retrieve a specific document","openapi":"GET /documents/{document_id}","href":"/api-reference/documents/get"},{"title":"Delete a document","openapi":"DELETE /documents/{document_id}","href":"/api-reference/documents/delete"},{"title":"Presign bank statement uploads","openapi":"PUT /documents/bank-statements/presign","description":"Generates short-lived presigned URLs that you can use to upload bank\nstatement PDFs directly to Teal-managed storage. Use this endpoint\nbefore uploading any files and submitting them for processing.\n","href":"/api-reference/documents/bank-statements-presign"},{"title":"Upload bank statements","openapi":"PUT /documents/bank-statements","href":"/api-reference/documents/bank-statements-upload"},{"title":"List bank statement submissions","openapi":"GET /bankstatements/{user_id}","description":"Retrieve paginated bank statement submissions for a given user.\nEach submission includes the extracted data (account information,\nstatement period, balance information, and transactions) when available.\n","href":"/api-reference/documents/bank-statements-get"}]},{"group":"Authorisations","pages":[{"title":"Create an Authorisation Term","openapi":"POST /authorisations/terms","href":"/api-reference/authorisations/terms-create"},{"title":"List Authorisation Terms","openapi":"GET /authorisations/terms","href":"/api-reference/authorisations/terms-list"},{"title":"Get an Authorisation Term","openapi":"GET /authorisations/terms/{term_id}","href":"/api-reference/authorisations/terms-get"},{"title":"Get Latest Term for User","openapi":"GET /authorisations/terms/latest","href":"/api-reference/authorisations/terms-latest"},{"title":"Record Authorisation Acceptance","openapi":"POST /authorisations","href":"/api-reference/authorisations/create"},{"title":"List User Authorisations","openapi":"GET /authorisations","href":"/api-reference/authorisations/list"},{"title":"Revoke an Authorisation","openapi":"PUT /authorisations/{authorisation_id}/revoke","href":"/api-reference/authorisations/revoke"}]},{"group":"Providers","pages":[{"title":"List all providers","openapi":"GET /providers","href":"/api-reference/providers/list"}]},{"group":"Configuration","pages":[{"title":"Get client configuration","openapi":"GET /configuration","href":"/api-reference/configuration/get"},{"title":"Update client configuration","openapi":"PATCH /configuration","href":"/api-reference/configuration/update"}]},{"group":"Webhooks","pages":[{"title":"Create a Webhook","openapi":"POST /webhooks","href":"/api-reference/webhooks/create"},{"title":"Retrieve a Webhook","openapi":"GET /webhooks/{webhook_id}","href":"/api-reference/webhooks/get"},{"title":"List all webhooks","openapi":"GET /webhooks","href":"/api-reference/webhooks/list"},{"title":"Delete a Webhook","openapi":"DELETE /webhooks/{webhook_id}","href":"/api-reference/webhooks/delete"}]}]}]},"basePath":"","title":"Upload bank statements - Teal","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}