Step 2: Creating a Customer Wallet and Virtual Account

This endpoint allows you to create a wallet for a specific customer, generating a unique virtual account tied to the specific wallet. This virtual account serves as a tool for managing funds, and streamlining payment flows between your business, your customer, and their end-customers.


🚧

BETA Endpoints

Please note that these endpoints are currently in beta, and they may undergo changes as we continue to improve and refine the functionality.


Request:

EnvironmentEndpoint
ProductionPOST https://api.bvnk.com/ledger/v1/wallets
SandboxPOST https://api.sandbox.bvnk.com/ledger/v1/wallets
curl --request POST \
     --url 'https://api.sanbox.bvnk.com/ledger/v1/wallets' \
     --header 'X-Idempotency-Key: 1726bc58-0ca9-4731-a8a9-22a865d61b3a' \
     --header 'Authorization: Hawk id="B9jnE1U8eLblzHtNeJZRxfcq03CQKcmcP9FOrACMzXb1HfrxrePWsTfuP70JNns9", ts="1633010032", nonce="guGXrD", mac="uKeg+w1qXqzaF/8mOQGv8Y9IlRxyxTT+iINLe03EQ60="' \
     --header 'Content-Type: application/json' \
     --data '
{
  "currencyCode": "EUR",
  "name": "Wallet name",
  "customerReference": "{underlying customer reference}",
  "instruction" : {
    "type": "FIAT", // FIAT or CRYPTO
    "virtualAccountRequired": true
  }
}'

The details supplied to the wallet creation request.

ParameterTypeDescription
customerReferenceStringUnique reference for a specific customer.
currencyCodeStringThe given currency code for the customer’s wallet which is being created.
nameStringThe name of the wallet must be unique meaning that no other customer can have the same identical wallet name.
virtualAccountRequiredStringIf this is marked as true then a Virtual Account will be created and linked to the wallet.

Response

{
  "id": "{id}",
  "accountReference": "{account reference}",
  "customerReference": "{underlying customer reference}",
  "name": "Wallet name",
  "status": "INACTIVE",
  "balance": {
    "value": 00.00,
    "currency": "EUR"
  },
  "ledgers": []
}

Response header: Location: https://api.sandbox.bvnk.com/ledger/v1/wallets/{id}

The id of the created wallet will also be returned in a link via the response header. By default the wallet will have an INACTIVE status and should not be made available to the customer until it has been activated (ACTIVE status). The endpoint provided in the response header should be called periodically, to determine if the wallet has been activated as well as if a virtual account has been created and made available. See here.