Skip to main content
POST
/
v1
/
platform
/
virtual-bank-accounts
Apply for Virtual Bank Account
curl --request POST \
  --url https://api-sandbox.finogates.com/v1/platform/virtual-bank-accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "nickname": "<string>",
  "account_type": "BUSINESS",
  "idempotency_key": "<string>",
  "metadata": {}
}
'
{
  "status_code": 123,
  "data": "<unknown>",
  "query_generated_time": 123
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Public platform request shape for POST /platform/virtual-bank-accounts.

Field aliases accept both the spec-style camelCase (userID) and the canonical snake_case so integrators can use whichever they prefer; documentation should standardise on snake_case.

user_id
string<uuid>
required

End user the virtual bank account is opened for.

Example:

"0b87f3a8-5a1f-4f5d-9f34-0f1a4c2d7a63"

nickname
string
required

Human-friendly account label.

Required string length: 1 - 100
Example:

"Primary Business Account"

account_type
enum<string>
default:BUSINESS

Account product to open (BUSINESS / SAVINGS / CHECKING).

Available options:
BUSINESS,
SAVINGS,
CHECKING
idempotency_key
string | null

Optional caller-supplied idempotency key.

Maximum string length: 120
metadata
Metadata · object

Optional integrator-supplied metadata.

Response

Successful Response

Standard response wrapper for single-object responses and errors.

Generic over the payload type. A route that declares CommonResponse[SomeModel] gets the real data schema rendered in OpenAPI/Swagger; a bare CommonResponse leaves data untyped.

status_code
integer
required

HTTP status code for the response.

data
any
required

Payload or error details.

query_generated_time
integer
required

UTC timestamp (milliseconds since epoch) when response was generated.