v1

latestOpenAPI 3.0.22026-07-26123510445.2 KB
Virtual Accounts

Create Virtual Account

Virtual Accounts are foreign currency accounts that function as local bank accounts. They can be used to collect funds from around the world. You get account details that enable you to collect funds from various platforms. Global Accounts can also be used to top up your UQPAY balance.

Notes on Account Creation Behavior

Currently, the API response to a successful request will always return a status of SUCCESS, regardless of whether the Virtual Account (VA) has actually been created.

The actual status of the VA can be tracked through Webhooks:

  • virtual.account.create: Indicates that the request to create a VA has been initiated for the specified currency.
  • virtual.account.update with status = Active: Indicates that the VA has been successfully created and is now available for use.

No webhook will be sent in the event of a failure to create the Virtual Account.

post/v1/virtual/accounts

Headers

x-on-behalf-ofstring

Specifies the sub-account on whose behalf the request is made. This should be set to the account_id, which can be retrieved via the List Connected Accounts API. If omitted or empty, the request is executed using the master account. More information at Connected Accounts.

x-idempotency-keystring uuid

A unique identifier (UUID) used to maintain operation idempotency, ensuring that repeated executions of the same operation do not result in unintended effects or duplication. It helps preserve data consistency in the face of network errors, retries, or failures.

x-request-idstring

A custom identifier for the request, up to 64 characters. If provided, this value is returned in the associated webhook event as request_id.

Request body

currencystring required

Multiple currencies are joined using commas. Currency code ISO_4217.

Example request

{
  "currency": "USD,SGD",
  "payment_method": {
    "card": {
      "billing": {
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@example.com",
        "phone_number": "12025550123",
        "address": {
          "country_code": "SG",
          "city": "Singapore",
          "street": "444 Orchard Rd, Midpoint Orchard, Singapore ",
          "postcode": "924011"
        }
      }
    }
  }
}

Response

VA Account creation successfully.

message'SUCCESS' required
request_idstring

Echoes the x-request-id supplied by the client and can be used to correlate the asynchronous Virtual Account workflow.

Example response

{
  "message": "SUCCESS",
  "request_id": "89d3c92e-b92d-4d65-944f-f38c1a358bb6"
}