Skip to main content

Account Management

This API set is designed for client initialization, webhook registration, master bank account registration, and bank account creation.

Account Overview

Quick Reference​

EndpointMethodDescription
/api/v1/master-bank-accountsGETList all master bank accounts
/api/v1/master-bank-accounts?id=&account_number=GETGet specific master bank account
/api/v1/bank-accountsPOSTCreate a new bank account
/api/v1/bank-accountsGETList bank accounts (filter: id, account_number)
/api/v1/bank-accounts/:idGETGet specific bank account

Setup Guide​

1. Create Client ID & Secret Key​

  1. Go to book.finan.one/setting, select Open API

Open API Settings

  1. Click "Create Client"

Create Client

  1. Enter client name and confirm

Client Form

  1. Save your client_id and secret_key

Success

Important

Save both credentials immediately. You cannot retrieve the secret_key after closing this popup.

2. Register Webhook​

  1. Go to book.finan.one/setting/open-api
  2. Select your client and enter Webhook URL
  3. Set Status to "Activate" and confirm

Webhook Settings

Webhook Form

3. Register Master Bank Account​

Currently supported banks:

BankStatusSetup
MB Bankβœ… AvailableSelf-service via portal
Shinhan Bankβœ… AvailableContact support
Galaxy Payβœ… AvailableContact support
BIDVπŸ”œ Coming soon-

For MB Bank: Go to book.finan.one/cash-and-bank/fund β†’ Add Account β†’ Bank β†’ MB Bank

Add Account MB Bank Bank Form


API Endpoints​

Get Master Bank Accounts​

Retrieve all master bank accounts, or filter by query parameters to get a specific one.

GET /api/v1/master-bank-accounts
GET /api/v1/master-bank-accounts?id=&account_number=

Query Parameters​

ParameterTypeDescription
iduuidFilter by master bank account ID
account_numberstringFilter by account number
Signature Must Include Query String

When using query parameters, the signature path must include the full query string:

signature_path = "/api/v1/master-bank-accounts?id=xxx&account_number=0933450210"
# List all
curl -X GET 'https://api.finan.one/open/api/v1/master-bank-accounts' \
-H 'Content-Type: application/json' \
-H 'x-client-id: YOUR_CLIENT_ID' \
-H 'x-signature: YOUR_SIGNATURE' \
-H 'x-timestamp: 1699999999'

# Filter by ID
curl -X GET 'https://api.finan.one/open/api/v1/master-bank-accounts?id=9c028f93-89f9-4cf5-a2fb-fb8fa8580fe5' \
-H 'Content-Type: application/json' \
-H 'x-client-id: YOUR_CLIENT_ID' \
-H 'x-signature: YOUR_SIGNATURE' \
-H 'x-timestamp: 1699999999'

# Filter by account number
curl -X GET 'https://api.finan.one/open/api/v1/master-bank-accounts?account_number=0933450210' \
-H 'Content-Type: application/json' \
-H 'x-client-id: YOUR_CLIENT_ID' \
-H 'x-signature: YOUR_SIGNATURE' \
-H 'x-timestamp: 1699999999'

Response​

{
"message": { "content": "Thα»±c thi API thΓ nh cΓ΄ng" },
"code": 102000,
"request_id": "abc123...",
"data": [
{
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"account_number": "1234XXXX5678",
"account_name": "COMPANY ABC",
"bank_code": "SHB",
"qr_code": "https://api.finan.one/qr/abc123",
"balance": 15000000,
"currency": "VND",
"status": "active",
"created_at": "2024-01-15T10:30:00Z"
}
]
}

Response Fields​

FieldTypeDescription
account_iduuidUnique identifier for the master bank account
account_numberstringMasked account number (e.g., 1234XXXX5678)
account_namestringAccount holder name as registered with bank
bank_codestringBank identifier (e.g., SHB, MB)
qr_codestringURL for QR code image
balancenumberCurrent balance in smallest currency unit
currencystringISO currency code (e.g., VND)
statusstringactive or inactive
created_atdatetimeISO 8601 timestamp

Create Bank Account​

Create a new bank account under a master account for payment operations.

POST /api/v1/bank-accounts
curl -X POST 'https://api.finan.one/open/api/v1/bank-accounts' \
-H 'Content-Type: application/json' \
-H 'x-client-id: YOUR_CLIENT_ID' \
-H 'x-signature: YOUR_SIGNATURE' \
-H 'x-timestamp: 1699999999' \
-d '{
"master_account_id": "550e8400-e29b-41d4-a716-446655440000",
"account_name": "KE TOAN"
}'

Request Body​

FieldTypeRequiredDescriptionExample
master_account_iduuidβœ…ID of the parent master account550e8400-...
account_namestringβœ…Display name for the accountKE TOAN

Response​

{
"message": { "content": "Thα»±c thi API thΓ nh cΓ΄ng" },
"code": 102001,
"request_id": "abc123...",
"data": {
"bank_code": "MB",
"account_id": "c3643c99-50ff-47ed-94d0-f6e7f9c6bae1",
"account_name": "API TEST BANK ACC",
"account_number": "VQRQAHZKN0048",
"currency_code": "704",
"master_account_name": "TRAN TU THIEN"
}
}
info

The qr_code URL can be displayed to receive payments. Webhook notifications will be sent when payments are received.


Get Bank Accounts​

Retrieve all bank accounts for the authenticated client.

GET /api/v1/bank-accounts
curl -X GET 'https://api.finan.one/open/api/v1/bank-accounts' \
-H 'Content-Type: application/json' \
-H 'x-client-id: YOUR_CLIENT_ID' \
-H 'x-signature: YOUR_SIGNATURE' \
-H 'x-timestamp: 1699999999'

Response​

{
"message": { "content": "Thα»±c thi API thΓ nh cΓ΄ng" },
"code": 102000,
"request_id": "abc123...",
"data": [
{
"account_id": "660e8400-e29b-41d4-a716-446655440001",
"account_number": "9876XXXX5432",
"account_name": "KE TOAN",
"bank_code": "SHB",
"qr_code": "https://api.finan.one/qr/xyz789",
"balance": 5000000,
"currency": "VND",
"status": "active",
"created_at": "2024-01-20T14:00:00Z"
}
]
}
tip

To get a specific bank account:

GET /api/v1/bank-accounts/:account_id

Next Steps​