> For the complete documentation index, see [llms.txt](https://developers.doku.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.doku.com/accept-payments/finance-and-settlement/bulk-registration-bank.md).

# Bulk Registration Bank

The feature needs to be activated before merchants can start to use the feature. Please see steps listed below :

1. [Activate Bulk Registration Bank Features](#activate-bulk-registration-bank-features)
2. [API for Settlement Bank Account](#api-for-settlement-bank-account)
   1. [Create Settlement Bank Account](#id-1.-create-settlement-bank-account)
   2. [Update Settlement Bank Account](#id-2.-update-settlement-bank-account)
   3. [Get Settlement Bank Account](#id-3.-get-settlement-bank-account)

### Activate Bulk Registration Bank Features

This feature will enable merchant to create, edit, and get settlement bank account in bulk via H2H API. Due to safety consideration, merchant have to enabling manually after finished onboarding.

Steps to enable the feature as follows :&#x20;

1. Login to DOKU dashboard
2. Go to menu **Setting** > **Service**

<figure><img src="/files/8RscJkdKCdMpNIajtnFi" alt=""><figcaption></figcaption></figure>

3. Click "**Add Service"** button&#x20;
4. Under menu of **"Financial Service"**, choose Others
5. Check **"Bulk Registration Bank"** option
6. Saved by click button **Activate**
7. Click document icon to download "Surat Instruksi Pelimpahan Dana" template document to be filled in&#x20;
8. Upload "Surat Instruksi Pelimpahan Dana" in PDF format
9. After document successfully uploaded, click "**Activate**" button.
10. The service will be successfully send. You can click "OK" button

### API for Settlement Bank Account

This is a documentation for host-to-host API Bank Account.<br>

#### **1. Create Settlement Bank Account**

To create settlement bank account, you will need to hit this API through your Backend :&#x20;

## create settlement bank account

> Creating a new settlement bank account.<br>

```json
{"openapi":"3.0.0","info":{"title":"FC H2H API - Bank Register & Split Settlement (Actual Implementation)","version":"1.0"},"tags":[{"name":"Bank Register","description":"Create/update/check-status settlement bank account"}],"servers":[{"description":"SwaggerHub API Auto Mocking","url":"https://{sandbox/production.doku.com}.com/fc-h2h-api"}],"paths":{"/v2/settlement-bank-account":{"post":{"tags":["Bank Register"],"summary":"create settlement bank account","operationId":"createSettlementBankAccount","description":"Creating a new settlement bank account.\n","parameters":[{"$ref":"#/components/parameters/ClientId"},{"$ref":"#/components/parameters/RequestId"},{"$ref":"#/components/parameters/RequestTimestamp"},{"$ref":"#/components/parameters/Signature"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestRegisterBankAccount"}}}},"responses":{"200":{"description":"settlement bank account created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankAccountResponse"}}}},"400":{"description":"Header/signature or bank account number characters invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized. The Bulk Bank Registration feature status is inactive.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseUnauthorized"}}}},"404":{"description":"Account or swift code is not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"A settlement bank account using this exact bank details (SWIFT code and account number) is already registered in the system.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal service error (unhandled exception)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"ClientId":{"in":"header","name":"Client-Id","schema":{"type":"string"},"required":true,"description":"Client ID retrieved from DOKU Dashboard."},"RequestId":{"in":"header","name":"Request-Id","schema":{"type":"string"},"required":true,"description":" Unique random string. max 128 characters."},"RequestTimestamp":{"in":"header","name":"Request-Timestamp","schema":{"type":"string"},"required":true,"description":"Timestamp request UTC ISO8601"},"Signature":{"in":"header","name":"Signature","schema":{"type":"string"},"required":true,"description":"HMAC signature."}},"schemas":{"RequestRegisterBankAccount":{"type":"object","required":["bank_account"],"properties":{"bank_account":{"$ref":"#/components/schemas/BankAccountCreateRequest"}}},"BankAccountCreateRequest":{"description":"When adding a new settlement bank account, you only need to fill in the basic details. Things like the account ID and system status are generated automatically by the server after it is created, so you don't need to include them.\n","allOf":[{"$ref":"#/components/schemas/BankAccountBase"}]},"BankAccountBase":{"type":"object","required":["code","number","name","currency","country"],"properties":{"code":{"type":"string","description":"The bank code is used to automatically find the bank name and make sure the account number has the correct number of digits."},"number":{"type":"string","pattern":"^[0-9]*$","description":"Settlement Bank Account number. Numbers only, no letters or special characters."},"name":{"type":"string","minLength":2,"description":"Account Holder Name"},"currency":{"type":"string","description":"Currency code in ISO 4217 standards"},"country":{"type":"string","description":"Country Code in ISO 3166-1 alpha-2 standards"}}},"BankAccountResponse":{"allOf":[{"$ref":"#/components/schemas/BankAccountBase"},{"type":"object","properties":{"status":{"type":"string","enum":["VERIFIED","UNVERIFIED"]},"bank_account_settlement_id":{"type":"string"}}}]}}}}
```

#### **2. Update Settlement Bank Account**

Update settlement bank account only able for data in “verified” state. To update settlement bank account, you will need to hit this API through your Backend:

## update settlement bank account

> For this action, you MUST provide the specific bank account ID so the system knows which existing account to be updated. This is different from creating a new settlement bank account (POST API), where an bank account ID isn't needed yet.<br>

```json
{"openapi":"3.0.0","info":{"title":"FC H2H API - Bank Register & Split Settlement (Actual Implementation)","version":"1.0"},"tags":[{"name":"Bank Register","description":"Create/update/check-status settlement bank account"}],"servers":[{"description":"SwaggerHub API Auto Mocking","url":"https://{sandbox/production.doku.com}.com/fc-h2h-api"}],"paths":{"/v2/settlement-bank-account":{"put":{"tags":["Bank Register"],"summary":"update settlement bank account","operationId":"updateSettlementBankAccount","description":"For this action, you MUST provide the specific bank account ID so the system knows which existing account to be updated. This is different from creating a new settlement bank account (POST API), where an bank account ID isn't needed yet.\n","parameters":[{"$ref":"#/components/parameters/ClientId"},{"$ref":"#/components/parameters/RequestId"},{"$ref":"#/components/parameters/RequestTimestamp"},{"$ref":"#/components/parameters/Signature"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestUpdateBankAccount"}}}},"responses":{"200":{"description":"settlement bank account updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankAccountResponse"}}}},"400":{"description":"Header/signature or bank account number characters invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized. The Bulk Bank Registration feature status is inactive.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseUnauthorized"}}}},"404":{"description":"Account, bank transfer code, or settlement bank account data is not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal service error (unhandled exception)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"ClientId":{"in":"header","name":"Client-Id","schema":{"type":"string"},"required":true,"description":"Client ID retrieved from DOKU Dashboard."},"RequestId":{"in":"header","name":"Request-Id","schema":{"type":"string"},"required":true,"description":" Unique random string. max 128 characters."},"RequestTimestamp":{"in":"header","name":"Request-Timestamp","schema":{"type":"string"},"required":true,"description":"Timestamp request UTC ISO8601"},"Signature":{"in":"header","name":"Signature","schema":{"type":"string"},"required":true,"description":"HMAC signature."}},"schemas":{"RequestUpdateBankAccount":{"type":"object","required":["bank_account"],"properties":{"bank_account":{"$ref":"#/components/schemas/BankAccountUpdateRequest"}}},"BankAccountUpdateRequest":{"description":"When editing an existing bank account, you MUST provide the bank account ID so the system knows which account to update. The account status cannot be manually changed here. it's read-only and is only displayed in the final result.\n","allOf":[{"$ref":"#/components/schemas/BankAccountBase"},{"type":"object","required":["bank_account_settlement_id"],"properties":{"bank_account_settlement_id":{"type":"string"}}}]},"BankAccountBase":{"type":"object","required":["code","number","name","currency","country"],"properties":{"code":{"type":"string","description":"The bank code is used to automatically find the bank name and make sure the account number has the correct number of digits."},"number":{"type":"string","pattern":"^[0-9]*$","description":"Settlement Bank Account number. Numbers only, no letters or special characters."},"name":{"type":"string","minLength":2,"description":"Account Holder Name"},"currency":{"type":"string","description":"Currency code in ISO 4217 standards"},"country":{"type":"string","description":"Country Code in ISO 3166-1 alpha-2 standards"}}},"BankAccountResponse":{"allOf":[{"$ref":"#/components/schemas/BankAccountBase"},{"type":"object","properties":{"status":{"type":"string","enum":["VERIFIED","UNVERIFIED"]},"bank_account_settlement_id":{"type":"string"}}}]}}}}
```

#### **3. Get Settlement Bank Account**

To get settlement bank account, you will need to hit this API through your Backend :

## check status settlement bank account

> The system identifies each bank account using its bank transfer code and account number together, rather than using a unique bank account ID.<br>

```json
{"openapi":"3.0.0","info":{"title":"FC H2H API - Bank Register & Split Settlement (Actual Implementation)","version":"1.0"},"tags":[{"name":"Bank Register","description":"Create/update/check-status settlement bank account"}],"servers":[{"description":"SwaggerHub API Auto Mocking","url":"https://{sandbox/production.doku.com}.com/fc-h2h-api"}],"paths":{"/v2/settlement-bank-account/{bankCode}/{accountNumber}":{"get":{"tags":["Bank Register"],"summary":"check status settlement bank account","operationId":"checkStatusSettlementBankAccount","description":"The system identifies each bank account using its bank transfer code and account number together, rather than using a unique bank account ID.\n","parameters":[{"$ref":"#/components/parameters/ClientId"},{"$ref":"#/components/parameters/RequestId"},{"$ref":"#/components/parameters/RequestTimestamp"},{"$ref":"#/components/parameters/Signature"},{"in":"path","name":"bankCode","schema":{"type":"string"},"required":true,"description":"Bank Transfer Code or Swift Code"},{"in":"path","name":"accountNumber","schema":{"type":"string"},"required":true,"description":"Settlement Bank Account Number"}],"responses":{"200":{"description":"check status settlement bank account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SbaCheckStatusResponse"}}}},"401":{"description":"Unauthorized. The Bulk Bank Registration feature status is inactive","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseUnauthorized"}}}},"404":{"description":"Account, bank transfer code, or settlement bank account data is not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal service error (unhandled exception)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"ClientId":{"in":"header","name":"Client-Id","schema":{"type":"string"},"required":true,"description":"Client ID retrieved from DOKU Dashboard."},"RequestId":{"in":"header","name":"Request-Id","schema":{"type":"string"},"required":true,"description":" Unique random string. max 128 characters."},"RequestTimestamp":{"in":"header","name":"Request-Timestamp","schema":{"type":"string"},"required":true,"description":"Timestamp request UTC ISO8601"},"Signature":{"in":"header","name":"Signature","schema":{"type":"string"},"required":true,"description":"HMAC signature."}},"schemas":{"SbaCheckStatusResponse":{"type":"object","properties":{"bank_account":{"$ref":"#/components/schemas/BankAccountResponse"}}},"BankAccountResponse":{"allOf":[{"$ref":"#/components/schemas/BankAccountBase"},{"type":"object","properties":{"status":{"type":"string","enum":["VERIFIED","UNVERIFIED"]},"bank_account_settlement_id":{"type":"string"}}}]},"BankAccountBase":{"type":"object","required":["code","number","name","currency","country"],"properties":{"code":{"type":"string","description":"The bank code is used to automatically find the bank name and make sure the account number has the correct number of digits."},"number":{"type":"string","pattern":"^[0-9]*$","description":"Settlement Bank Account number. Numbers only, no letters or special characters."},"name":{"type":"string","minLength":2,"description":"Account Holder Name"},"currency":{"type":"string","description":"Currency code in ISO 4217 standards"},"country":{"type":"string","description":"Country Code in ISO 3166-1 alpha-2 standards"}}}}}}
```
