Manage Customers
A customer is the owner of the destination account you receive from / pay to. Each customer can
have multiple customer accounts (e.g. accounts at several different banks).
v1 vs v2
- /v1/customers — search by email or phone_number
- /v2/customers — use a customer key you define (recommended for new systems)
Create a customer (v2)
HTTP
POST /v2/customers
Content-Type: application/json
{
"customer_key": "user_12345",
"name": "John Doe",
"note": "VIP customer"
}Link an account to a customer
HTTP
POST /v1/customers/{id}/accounts
Content-Type: application/json
{
"account_platform": "SCB",
"account_identifier": "1234567890",
"account_holder_name": "John Doe",
"currency_code": "THB"
}Update data
- Update customer info: PATCH /v1/customers/{id}
- Update customer account: PATCH /v1/customers/{id}/accounts/{account_id}
- When a member changes bank account or bank: create a NEW customer account (POST
/v1/customers/{id}/accounts) instead of editing the old one — keep the old account as history
(accounts cannot be deleted; a customer can hold up to 100)
Important: one customer = one real person
Do not create a single "pool" customer and attach hundreds or thousands of unrelated accounts
under it for convenience. Compliance and our anti-fraud checks require a 1:1 mapping between a
customer record and a real person.
- Max 100 accounts per customer. Any attempt to add more returns 422 Unprocessable.
- account_holder_name on each customer account MUST match the customer name (same real
person). At creation time only the account-number format is validated — useGET /v1/bank/verify(scopebank:verify) or the dashboard Verify account name button to pre-fill the holder name before you save. A mismatch at payout/payin time can
still fail when the bank/provider runs the transaction. - Customer status has three values: normal / blacklist / suspended. Via PATCH /v1/customers/{id}
you can set only normal or blacklist — suspended is set by the G2Wallet team. A blacklisted or
suspended customer cannot create payins/payouts on ANY of its accounts (403 with code
FORBIDDEN or PERMISSION_DENIED and an error stating the reason), while customer/account data can still
be edited.