---
title: "Start bank statement PDF upload"
method: POST
path: "/verify/bank_statement_pdf/start_upload"
tags: ["Bank Statement PDF"]
---

# Start bank statement PDF upload

`POST /verify/bank_statement_pdf/start_upload`

Initializes a bank statement PDF upload session and returns an IDTO session_id used by the remaining bank statement APIs.

## Request body

- BankStatementStartUploadRequest
  - `client_ref_num` string — Optional merchant reference number
  - `txn_completed_cburl` string, uri — Callback URL for transaction completion
  - `institution_id` string — Institution ID selected from the institutions API
  - `institution_id_list` union — One institution ID or a list of institution IDs.
    - string
    - string[]
  - `start_month` string — Statement start month
  - `end_month` string — Statement end month
  - `acceptance_policy` string — Vendor acceptance policy
  - `relaxation_days` string — Relaxation days accepted by provider
  - `employer_name` string — Employer name for salary analysis
  - `multi_account_support_required` union — Whether multi-account support is required.
    - string
    - boolean

## Response `200`

Upload session initialized

- BankStatementStartUploadResponse
  - `status` string
  - `message` string
  - `data` object
    - `session_id` string, uuid, required — IDTO bank statement session ID
    - `status` string, required
    - `expires_at` string, nullable — Session expiry timestamp
  - `chargeble` string
  - `user_consent` string

## Other responses

- `400` — Invalid request or business validation failed
- `401` — Unauthorized - Invalid or missing API key or client ID
- `422` — Request body validation failed
- `500` — Internal server error

---

[API](https://skmtc.dev/idto/apis/verification-api.md) · [All operations](https://skmtc.dev/idto/apis/verification-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idto/verification-api/revisions/e3d57dab8db4/schema)
