Skip to main content

Create a Wallet (New)

Overview

Create a currency-specific digital wallet for a company. When provisioned, the returned wallet ID serves as the central account reference for receiving inbound transfers, holding foreign currencies, executing FX conversions, and initiating outbound payouts.

If a wallet is created for a given currency for the first time, it automatically becomes the default wallet for that currency unless configured otherwise.

Resource Access

  • HTTP Method: POST
  • Endpoint: /banking/ibans/v2/{companyId}/wallets
  • Authentication: Bearer token required

Request Headers

HeaderValueRequiredDescription
AuthorizationBearer {access_token}YesJWT Bearer access token
Content-Typeapplication/jsonYesRequest payload format
Acceptapplication/jsonYesResponse payload format
x-api-keystringNoOptional API key

Path Parameters

ParameterTypeRequiredDescription
companyIdstringYesUnique identifier assigned to the company within the system (e.g. 4011).

Request Body

Request Fields (NewWalletRq)

FieldTypeRequiredDescription
currencystringYes3-letter ISO 4217 currency code (e.g. USD, GBP, EUR, NGN, CAD).
typestringYesWallet type: standard (everyday transactions) or fx_balance (FX conversion operations).
customReferenceLabelstringNoUser-friendly custom label for the wallet (max 75 characters, e.g. US_SEGREGATED or Default GBP Wallet).

Request Example

{
"currency": "USD",
"type": "standard",
"customReferenceLabel": "Operating USD Wallet"
}

Response

Success Response (200 OK)

{
"id": 25427,
"totalBalance": 0,
"availableBalance": 0,
"currency": "USD",
"type": "standard",
"companyId": 4011,
"customReferenceLabel": "Operating USD Wallet",
"isDefault": true,
"isDisabled": false,
"fundingType": "account"
}

Response Fields (Wallet)

FieldTypeDescription
idnumberUnique identifier assigned to the newly created wallet. Store this ID for subsequent API flows.
totalBalancenumberTotal cumulative balance (sum of available balance and locked balance).
availableBalancenumberLiquid funds available for immediate utilization, FX trades, or payouts.
currencystring3-letter ISO currency code.
typestringWallet type (standard or fx_balance).
companyIdnumberCompany ID that owns the wallet.
customReferenceLabelstringUser-friendly name or custom reference label.
isDefaultbooleanIndicates whether this wallet is the default wallet for this currency.
isDisabledbooleanIndicates whether the wallet is disabled for transactions.
fundingTypestringMethod by which the wallet is funded (account, smartWallet, pooled, or null).

Error Responses

  • 400 Bad Request: Invalid currency code, unsupported wallet type, or invalid company ID.
  • 401 Unauthorized: Missing or expired Bearer token.
  • 403 Forbidden: Insufficient permissions to create wallets for this company.
  • 404 Not Found: Specified companyId does not exist.
  • 500 Internal Server Error: Internal platform error.

Code Examples

Base URL

Production: https://api.ahrvo.network
Staging: https://gateway.ahrvo.network

cURL

curl -X POST \
'https://gateway.ahrvo.network/banking/ibans/v2/4011/wallets' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"currency": "USD",
"type": "standard",
"customReferenceLabel": "Operating USD Wallet"
}'

Python

import requests

company_id = "4011"
url = f"https://gateway.ahrvo.network/banking/ibans/v2/{company_id}/wallets"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
payload = {
"currency": "USD",
"type": "standard",
"customReferenceLabel": "Operating USD Wallet"
}

response = requests.post(url, json=payload, headers=headers)
print(response.status_code, response.json())

JavaScript (Node.js)

const axios = require('axios');

const companyId = '4011';
const url = `https://gateway.ahrvo.network/${companyId}/wallets`;
const headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
};

const payload = {
currency: 'USD',
type: 'standard',
customReferenceLabel: 'Operating USD Wallet'
};

axios.post(url, payload, { headers })
.then(res => console.log(res.data))
.catch(err => console.error(err.response ? err.response.data : err.message));

Interactive API Explorer