---
title: "Update a customer profile bank account"
method: PUT
path: "/{customer_profile_id}/bank_accounts/{bank_account_id}"
---

# Update a customer profile bank account

`PUT /{customer_profile_id}/bank_accounts/{bank_account_id}`

## Request

- Base URL: `https://api-sandbox.straitsx.com/v1/customer_profile`
- URL: `https://api-sandbox.straitsx.com/v1/customer_profile/{customer_profile_id}/bank_accounts/{bank_account_id}`
- Auth: none required

[Available in Sandbox/Production environment] Updates the bank account information for a customer profile

## Path parameters

- `customer_profile_id` string, required
- `bank_account_id` string, required

## Headers

- `X-XFERS-APP-API-KEY` string, required
- `X-PUBLIC-KEY-ID` string
- `X-TIMESTAMP` string
- `X-NONCE` string
- `X-SIGNATURE` string

## Request body

- object
  - `account_no` string: Bank account number<br>Bank account length: Between 5 - 34 characters<br>Regex: `/^[a-zA-Z0-9\-]{5,34}$/`
  - `bank` string: Bank abbreviation. You can get the list of bank account abbreviation from the Get Bank and Abbreviation Mapping API. [Get Bank](https://dash.readme.io/project/xfers-payments/v3-SG/refs/get-bank-and-abbreviation-mapping)<br>Regex: `/^\s*.{1,191}\s*$/`
  - `account_holder_name` string: Name of bank account holder(Must be within 191 characters)<br>Regex: `/^\s*.{1,191}\s*$/`
  - `bank_account_proof` object: Required if bank account is already verified and `swift_bic` / `account_no` is being updated
    - `fileData` string: <b>File data format:</b> base64
    - `fileName` string: File name of the uploaded bank statement. <br><b>File format accepted:</b> PDF / PNG / JPG / JPEG<br>Example:<br>PDF: data:application/pdf;base64<br>PNG: data:image/png;base64<br>JPG/JPEG: data:image/jpeg;base64
    - `fileUrl` string: File link(Valid URL), accepts png/jpg/jpeg/pdf. <br>Regex: `%r{^(https?://)?(([0-9]{1,3}(\.[0-9]{1,3}){3,5})|(([-\p{L}_0-9]{1,256}\.)+[-\p{L}_]{2,6}))(:[0-9]+)?([/?].*)?$}i`
  - `intermediary_swift_bic` string: Intermediary SWIFT/BIC for the bank account<br>Regex: `/^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$/`<br><br><strong>Note:</strong> Must be uppercase
  - `routing_code` string: Routing code for the bank account<br>Regex: `/^[A-Z0-9]{1,31}$/`<br><br><strong>Note:</strong> Must be uppercase
  - `swift_bic` string: SWIFT code of the bank account<br>Regex: `/^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$/`<br><br><strong>Note:</strong> Must be uppercase
  - `payment_reason` string: Payment reason is a field used to pass clear, specific instructions to the receiving bank.<br>Length: 1 - 150 characters (Non-blank)<br>Regex: `/^\s*.{1,150}\s*$/`<br><br>Note: This value will override the default Remittance Information (MT103 Field 70 / pacs.008) in the final payment message sent to the bank when provided.

## Response `200`

200

- object[]
  - `id` integer: Customer profile bank account ID.
  - `account_no` string: Bank account number.
  - `account_holder_name` string: Name of the bank account holder.
  - `bank_abbrev` string: Bank abbreviation.
  - `disabled` boolean: Whether the customer profile bank account is disabled.
  - `verification_status` string: Customer profile bank account's verification status.
  - `bank_account_proof` string: Bank account proof.
  - `updated_at` string: Timestamp when the bank account was last updated.
  - `swift_bic` string: SWIFT code of the bank account.
  - `intermediary_swift_bic` string: Intermediary SWIFT/BIC for the bank account.
  - `routing_code` string: Routing code for the bank account.
  - `payment_reason` string: Payment reason is a field used to pass clear, specific instructions to the receiving bank.

---

[API](https://skmtc.dev/straitsx/apis/sandbox-customer-profile-api-sandbox-prod.md) - [All operations](https://skmtc.dev/straitsx/apis/sandbox-customer-profile-api-sandbox-prod/llms.txt) - [OpenAPI document](https://skmtc.dev/straitsx/apis/sandbox-customer-profile-api-sandbox-prod/revisions/fba039809316?raw)
