---
title: "Create a customer profile bank account"
method: POST
path: "/{customer_profile_id}/bank_accounts"
---

# Create a customer profile bank account

`POST /{customer_profile_id}/bank_accounts`

## 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`
- Auth: none required

[Available in Sandbox/Production environment] Add a bank account for a customer profile

## Path parameters

- `customer_profile_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, required: Bank account number<br>Bank account length: Between 5 - 34<br>Regex: `/^[a-zA-Z0-9\-]{5,34}$/`
  - `bank` string: Only required for FAST<br>SG Bank account abbreviation (`abbreviation`) can be retrieved from [Get a list of supported banks API](https://docs.straitsx.com/reference/get-a-list-of-supported-banks)<br>Regex: `/^\s*.{1,191}\s*$/`
  - `swift_bic` string: SWIFT code of the bank account<br>*Required field if you are doing SWIFT payments*<br>Regex: `/^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$/`<br><br><strong>Note:</strong> Must be uppercase
  - `intermediary_swift_bic` string: Intermediary SWIFT code if applicable(Must be alphanumeric with 11 characters)<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 if applicable(Must be alphanumeric with maximum 31 characters)<br>Regex: `/^[A-Z0-9]{1,31}$/`<br><br><strong>Note:</strong> Must be uppercase
  - `account_holder_name` string, required: Name of bank account holder(The length must be within 191 characters)<br>Regex: `/^\s*.{1,191}\s*$/`
  - `bank_account_proof` object: Must have either `fileData` or `fileUrl`
    - `fileData` string: File data format: base64<br>Recommended maximum file size: 5MB
    - `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`
  - `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.

## Other responses

- `400`: 400

---

[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)
