Virtual Bank Account
The Virtual Bank Account API enables businesses to request a Virtual bank account(VBA) to send and receive payments. Businesses can wire funds into a VBA, and send payments to their vendors and suppliers. Currently, only USD virtual bank accounts are supported. Support for other currencies will be added in the future.
Prerequisites
Before creating a virtual bank account, ensure the following conditions are met:
- Business Ownership Information must be attested
- Required documents must be submitted and approved:
- Government-issued Photo ID
- Business Registration Certificate
- Proof of Address Veem will perform additional validations before enabling a Virtual Bank Accounts
Authorization
OAuth2 token is required in the Authorization header.
Headers
There are 2 headers necessary for the use of this endpoint:
- X-request-id: This is a number unique to the current API request, and follows the UUID format. Reusing this header without changing the value will result in a 409 (Conflict) status. An example X-request-id is as follows:
48855846-628d-4177-b071-80332a116f0a
- Authorization: This header holds the bearer token required to use Veem's public API, and belongs to the owner account. Failure to use a valid bearer token will result in a 404 (Not Found) status. An example of a valid token is as follows:
Bearer c047594b-082c-4da1-be89-08fe3770f4b3See Get Access Token section to generate your bearerToken
Sandbox Endpoints
Veem's Sandbox environment provides a number of endpoints that can be used to configure testing scenarios.
Use the base URL to access the endpoints in sandbox environment.
POST https://sandbox-api.veem.com/veem/Open Virtual Bank Account (Business)
Opens a new virtual bank account for a business in a specified currency. Currently, only USD virtual bank accounts are supported.
POST /v1.2/virtual-bank-account{
"currency" : "USD",
"virtualBankAccountName" : "Business name",
"virtualBankAccountBusinessInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualRevenue": 9999999.99,
"businessRegistrationNumber": "123",
"businessIncorporationDate": "2010-01-01",
"sourceOfFunds": "It Services"
}
}{
"virtualBankAccountName": "Business's VBA",
"virtualBankAccountBusinessInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualRevenue": 9999999.99,
"businessRegistrationNumber": "123",
"businessIncorporationDate": 1262304000000,
"businessRegistrationCountry": "US",
"businessRegistrationAddressLine1": "Evergreen Terrace",
"businessRegistrationAddressLine2": "Av. 123",
"businessRegistrationStateProv": "CA",
"businessRegistrationPostalCode": "94116",
"businessRegistrationCity": "San francisco",
"sourceOfFunds": "It Services",
"businessWebsite": "htttps://mybusiness.com"
},
"virtualBankAccount": {
"accountId": 943955,
"fundingMethodId": 55077,
"id": "b2e63be2-1415-405c-8413-f5d992d57b47",
"status": "enabled",
"currency": "USD",
"timeCreated": 1747154822639
}
}Request Parameters
Parameter | Mandatory | Format/Values | Size/Type |
|---|---|---|---|
currency | Yes | Must be "USD" (only currency currently supported). Use ISO 4217 currency codes | 3 characters |
virtualBankAccountName | Yes | Name of the virtual bank account. Letters only (no numbers or symbols). | 255 characters |
virtualBankAccountBusinessInfo | Yes | Business information of the entity opening the virtual bank account | |
.geographySendingCountries | Yes | Country codes the account holder intends to send to. ISO 3166-1 alpha-2 standard, comma-separated, e.g. "US,CA" | 255 characters |
.geographyReceivingCountries | Yes | Country codes the account holder intends to receive from. ISO 3166-1 alpha-2 standard, comma-separated, e.g. "US,CA" | 255 characters |
.purposeOfAccount | Yes | One of the values from the list of supported purpose of account, see Purpose of Account Values (Business), e.g. | 255 characters |
.monthlyExpectedActivity | No | Account's expected activity (amount) | BigDecimal |
.annualRevenue | No | Annual revenue of the business | BigDecimal |
.businessRegistrationNumber | Yes | Registration number of the business | 255 characters |
.businessIncorporationDate | Yes | Incorporation date of the business | YYYY-MM-DD |
.sourceOfFunds | Yes | One of the values from the list of supported source of funds, see Source of Funds Values (Business) , e.g. | 255 characters |
.businessWebsite | No | Valid URL of the business website | 255 characters |
Purpose of Account Values (Business)
Pass one of the values listed below into the virtualBankAccountBusinessInfo.purposeOfAccount
| Value | Description |
|---|---|
| vendor_supplier_payments | Vendor / Supplier Payments |
| payroll_salary_disbursements | Payroll / Salary Disbursements |
| employee_reimbursements | Employee Reimbursements |
| tax_regulatory_payments | Tax or Regulatory Payments |
| collections_from_customers | Collections from Customers (e.g., invoice payments) |
| refunds_chargebacks | Refunds / Chargebacks |
| escrow_marketplace_settlements | Escrow / Marketplace Settlements |
| internal_fund_transfers | Internal Fund Transfers |
| holding_pooling_customer_funds | Holding / Pooling of Customer Funds |
| liquidity_management | Liquidity Management |
| import_export_settlements | Import / Export Settlements |
| international_customer_collections | International Customer Collections |
| overseas_supplier_payments | Overseas Supplier Payments |
| other | Other |
Source of Funds Values (Business)
Pass one of the values listed below into the virtualBankAccountBusinessInfo.sourceOfFunds
| Value | Description |
|---|---|
| revenue_from_business_operations | Revenue from Business Operations – Income from selling products or services. |
| merchant_sales_transactions | Merchant Sales & Transactions – Proceeds from e-commerce, retail, or service-based transactions. |
| investment_capital | Investment Capital – Funds received from venture capital, private equity, or angel investors. |
| loans_credit_lines | Loans & Credit Lines – Capital obtained from financial institutions or lenders. |
| grants_government_subsidies | Grants & Government Subsidies – Funding from government programs or industry grants. |
| sale_of_business_assets | Sale of Business Assets – Proceeds from selling property, equipment, or intellectual property. |
| shareholder_contributions | Shareholder Contributions – Capital infused by business owners or existing shareholders. |
| franchise_licensing_fees | Franchise or Licensing Fees – Revenue from franchise agreements or intellectual property licensing. |
| subscription_membership_fees | Subscription & Membership Fees – Revenue from recurring billing models. |
Open Virtual Bank Account (Individual)
Opens a new virtual bank account for individuals in a specified currency. Currently, only USD virtual bank accounts are supported.
POST /v1.2/virtual-bank-account{
"currency" : "USD",
"virtualBankAccountName" : "Account name",
"virtualBankAccountIndividualInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Individual's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualIncome": 9999999.99,
"occupation": "Accountant",
"sourceOfFunds": "It Services",
"websiteSocialMediaLink": "https://mybusiness.com"
}
}{
"virtualBankAccountName": "Individual's VBA",
"virtualBankAccountIndividualInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Individual's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualIncome": 9999999.99,
"occupation": "Accountant",
"sourceOfFunds": "It Services",
"websiteSocialMediaLink": "htttps://mybusiness.com"
},
"virtualBankAccount": {
"accountId": 943955,
"fundingMethodId": 55077,
"id": "b2e63be2-1415-405c-8413-f5d992d57b47",
"status": "enabled",
"currency": "USD",
"timeCreated": 1747154822639
}
}Request Parameters
Parameter | Mandatory? | Format/Values | Size/Type |
|---|---|---|---|
currency | Yes | Must be "USD" (only currency currently supported). Use ISO 4217 currency codes | 3 characters |
virtualBankAccountName | Yes | Name of the virtual bank account. Letters only (no numbers or symbols). | 255 characters |
virtualBankAccountIndividualInfo | Yes | Information of the individual opening the virtual bank account | |
.geographySendingCountries | Yes | Country codes the account holder intends to send to. ISO 3166-1 alpha-2 standard, comma-separated, e.g. "US,CA" | 255 characters |
.geographyReceivingCountries | Yes | Country codes the account holder intends to receive from. ISO 3166-1 alpha-2 standard, comma-separated, e.g. "US,CA" | 255 characters |
.purposeOfAccount | Yes | One of the values from the list of supported purpose of account, see Purpose of Account Values (Individual) , e.g. | 255 characters |
.monthlyExpectedActivity | Yes | Account's expected activity (amount) | BigDecimal |
.annualIncome | Yes | Annual income of the account holder | BigDecimal |
.occupation | Yes | Occupation of the account holder | 255 characters |
.sourceOfFunds | Yes | One of the values from the list of supported source of funds, see Source of Funds Values (Individual) , e.g. | 255 characters |
.websiteSocialMediaLink | No | Link to account holder's social media links(if available) | 255 characters |
Purpose of Account Values (Individual)
Pass one of the values listed below into the virtualBankAccountBusinessInfo.purposeOfAccount
| Value | Description |
|---|---|
| vendor_supplier_payments | Vendor / Supplier Payments |
| payroll_salary_disbursements | Payroll / Salary Disbursements |
| employee_reimbursements | Employee Reimbursements |
| tax_regulatory_payments | Tax or Regulatory Payments |
| collections_from_customers | Collections from Customers (e.g., invoice payments) |
| refunds_chargebacks | Refunds / Chargebacks |
| escrow_marketplace_settlements | Escrow / Marketplace Settlements |
| internal_fund_transfers | Internal Fund Transfers |
| holding_pooling_customer_funds | Holding / Pooling of Customer Funds |
| liquidity_management | Liquidity Management |
| import_export_settlements | Import / Export Settlements |
| international_customer_collections | International Customer Collections |
| overseas_supplier_payments | Overseas Supplier Payments |
| other | Other |
Source of Funds Values (Individual)
Pass one of the values listed below into the virtualBankAccountBusinessInfo.sourceOfFunds
| Value | Label |
|---|---|
| salary_wages | Salary & Wages – Regular employment income. |
| freelance_consulting_income | Freelance & Consulting Income – Payments from contract work. |
| peer_to_peer_transfers | Peer-to-Peer Transfers – Money received from family, friends, or others. |
| investments_crypto_earnings | Investments & Crypto Earnings – Proceeds from stocks, crypto trading, or dividends. |
| real_estate_sales_rentals | Real Estate Sales or Rentals – Income from property sales or rental payments. |
| inheritance | Inheritance – Funds received from an estate. |
| gifts_donations | Gifts & Donations – Personal gifts or one-time transfers. |
| royalties_licensing | Royalties & Licensing – Revenue from intellectual property rights (e.g., music, patents, books). |
| pension_retirement_funds | Pension or Retirement Funds – Withdrawals from pension accounts. |
Activate a New Currency for Your Virtual Bank Account
Once you’ve opened a USD Virtual Bank Account, you can activate an additional currency using the same API endpoint.
POST /v1.2/virtual-bank-accountDescription
To activate a Virtual Bank Account in another currency, send a request to the same endpoint used to open your USD Virtual Bank Account. Include the new currency code in the request body (currency field). You do not need to resend virtualBankAccountBusinessInfo or virtualBankAccountIndividualInfo, as these were already collected from your initial application.
Requirements
- You must already have an active USD Virtual Bank Account.
- The only additional supported currency is Canadian Dollars (CAD).
{
"currency" : "CAD"
}{
"virtualBankAccountName": "Account Name",
"virtualBankAccountBusinessInfo": {
"id": 145,
"currency": "USD, CAD",
"virtualBankAccountIds": [
55182,
55183
],
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "business transactions",
"monthlyExpectedActivity": 1000.00,
"annualRevenue": 1000000.00,
"businessRegistrationNumber": "46-5104750",
"businessIncorporationDate": "2009-12-31",
"businessRegistrationCountry": "US",
"businessRegistrationAddressLine1": "Adress line 1",
"businessRegistrationAddressLine2": "Addres line 1",
"businessRegistrationStateProv": "CA",
"businessRegistrationPostalCode": "94116",
"businessRegistrationCity": "San Francisco",
"sourceOfFunds": "business savings"
},
"virtualBankAccount": {
"accountId": 945080,
"fundingMethodId": 55183,
"id": "2cedde96-39af-4309-825a-f17db16d42c7",
"accountName": "Account Name",
"status": "SUCCESS",
"currency": "CAD",
"timeCreated": 1761682261781
}
}Common Errors When Opening/Activating an Account
Business Ownership Information Incomplete
{
"code": 10000010,
"message": "It was an error on the open vba process, Virtual bank account cannot be opened because: BOI attestation is missing.",
"logTag": "0df34606-05d1-437a-a3a9-f3352130806f",
"timestamp": "2025-05-14T01:50:01.220",
"fileName": "AccountServiceImpl.java",
"lineNumber": 230
}Internal Veem validations
{
"code": 10000004,
"message": "This account is not Verified, cannot open a virtual bank account",
"logTag": "eeed5569-4452-47d2-b410-2a9585c8dc3f",
"timestamp": "2025-05-14T18:14:44.662",
"fileName": "AccountServiceImpl.java",
"lineNumber": 216
}{
"code": 10000010,
"message": "Adverse media check is not completed.",
"logTag": "0df34606-05d1-437a-a3a9-f3352130806f",
"timestamp": "2025-05-14T01:50:01.220",
"fileName": "AccountServiceImpl.java",
"lineNumber": 230
}{
"code": 10000010,
"message": "Cannot open virtual bank account due to the next reasons: Adverse media check is not completed, Photo ID is not uploaded, Liveliness check is not completed, doesnt have a DB strong match, Business registration document type is not completed, Proof of address document is not completed, Drivers license document is not present.",
"logTag": "0df34606-05d1-437a-a3a9-f3352130806f",
"timestamp": "2025-05-14T01:50:01.220",
"fileName": "AccountServiceImpl.java",
"lineNumber": 230
}{
"code": 10000019,
"message": "Currency GBP is not supported",
"logTag": "f3348a36-4b2b-4057-a2d6-204e47508371",
"timestamp": "2025-10-29T17:51:36.764",
"fileName": "AccountServiceImpl.java",
"lineNumber": 205
}{
"code": 10000015,
"message": "Currency already exists for this account",
"logTag": "251530b3-e903-47c7-8911-adee059db2f9",
"timestamp": "2025-10-29T18:11:52.670",
"fileName": "AccountServiceImpl.java",
"lineNumber": 147
}Update Virtual Bank Account Information
After a Virtual bank account has been created a PATCH request can be sent to make updates to VBA information.
PATCH /v1.2/virtual-bank-accountt
{
"virtualBankAccountBusinessInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualRevenue": 9999999.99,
"businessRegistrationNumber": "123",
"businessIncorporationDate": "2010-01-01",
"businessRegistrationCountry": "US",
"businessRegistrationAddressLine1": "Evergreen Terrace",
"businessRegistrationAddressLine2": "Av. 123",
"businessRegistrationStateProv": "CA",
"businessRegistrationPostalCode": "94116",
"businessRegistrationCity": "San francisco",
"sourceOfFunds": "It Services",
"businessWebsite": "htttps://mybusiness.com"
}
}{
"virtualBankAccountBusinessInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualRevenue": 9999999.99,
"businessRegistrationNumber": "123",
"businessIncorporationDate": "2010-01-01",
"businessRegistrationCountry": "US",
"businessRegistrationAddressLine1": "Evergreen Terrace",
"businessRegistrationAddressLine2": "Av. 123",
"businessRegistrationStateProv": "CA",
"businessRegistrationPostalCode": "94116",
"businessRegistrationCity": "San francisco",
"sourceOfFunds": "It Services",
"businessWebsite": "htttps://mybusiness.com"
}
}{
"virtualBankAccountIndividualInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualIncome": 9999999.99,
"occupation": "Accountant",
"sourceOfFunds": "It Services",
"websiteSocialMediaLink": "htttps://mybusiness.com"
}
}{
"virtualBankAccountIndividualInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Business's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualIncome": 9999999.99,
"occupation": "Accountant",
"sourceOfFunds": "It Services",
"websiteSocialMediaLink": "htttps://mybusiness.com"
}
}Get Virtual Bank Account Summary
Use the following request to get summary information of the virtual account. The summary information provide basic information about the account including time created, status of the account and currency of the account.
Funding method id returned as part of the response can be used to send payments.
-- Example request: GET /v1.2/virtual-bank-account{
"virtualBankAccountName": "Account Name",
"virtualBankAccountBusinessInfo": {
"id": 145,
"currency": "USD",
"virtualBankAccountIds": [
55182,
55183
],
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "business transactions",
"monthlyExpectedActivity": 1000.00,
"annualRevenue": 1000000.00,
"businessRegistrationNumber": "46-5104750",
"businessIncorporationDate": "2009-12-31",
"businessRegistrationCountry": "US",
"businessRegistrationAddressLine1": "Adress line 1",
"businessRegistrationAddressLine2": "Addres line 1",
"businessRegistrationStateProv": "CA",
"businessRegistrationPostalCode": "94116",
"businessRegistrationCity": "San Francisco",
"sourceOfFunds": "business savings"
},
"virtualBankAccounts": [
{
"accountId": 945080,
"fundingMethodId": 55182,
"id": "632c4775-5730-488e-8543-48ab1c56ee67",
"status": "SUCCESS",
"currency": "USD",
"timeCreated": 1761682203650
},
{
"accountId": 945080,
"fundingMethodId": 55183,
"id": "2cedde96-39af-4309-825a-f17db16d42c7",
"status": "SUCCESS",
"currency": "CAD",
"timeCreated": 1761682261781
}
]
}Get Virtual Bank Account Balance
Balance endpoint provides the current balance in the account. It is advisable to check balance in the account before sending payments to ensure that payment does not fail due to insufficient funds.
-- Example request: GET /v1.2/virtual-bank-account/balance/72f03bec-e95e-408d-9167-78d9899b1049
GET /v1.2/virtual-bank-account/balance/{id}
{
"accountId": 943802,
"fundingMethodId": 55073,
"id": "72f03bec-e95e-408d-9167-78d9899b1049",
"balanceAmount": {
"number": 950.00,
"currency": "USD"
},
"timeUpdated": 1745448383244
}
Get Virtual Bank Account Details
Details endpoint provides all details associated with a particular virtual bank account by id.
USD Virtual Bank Account Details
-- Example request: GET /v1.2/virtual-bank-account/details/72f03bec-e95e-408d-9167-78d9899b1049
GET /v1.2/virtual-bank-account/details/{id}{
"id": "72f03bec-e95e-408d-9167-78d9899b1049",
"fundingMethodId": 55182,
"isoCurrencyCode": "USD",
"isoCountryCode": "US",
"info": {
"bankInfo": {
"funding_accounts": [
{
"account_number": "0337658150",
"routing_code_type": "ach_routing_number",
"account_holder_name": "Account Name",
"bank_address": "5 Penn Plaza, 14th Floor, New York, NY 10001, US",
"created_at": 1761682198000,
"bank_country": "US",
"routing_code": "026073150",
"payment_type": "regular",
"updated_at": 1761682198000,
"bank_name": "Community Federal Savings Bank",
"currency": "USD",
"account_number_type": "account_number",
"id": "7450fce7-b599-4c9c-8bfb-af38d6caa2ea"
},
{
"account_number": "0337658150",
"routing_code_type": "wire_routing_number",
"account_holder_name": "Account Name",
"bank_address": "5 Penn Plaza, 14th Floor, New York, NY 10001, US",
"created_at": 1761682198000,
"bank_country": "US",
"routing_code": "026073008",
"payment_type": "regular",
"updated_at": 1761682198000,
"bank_name": "Community Federal Savings Bank",
"currency": "USD",
"account_number_type": "account_number",
"id": "9dfc707e-c086-4e94-b373-96b3f1f74a50"
},
{
"account_number": "GB07TCCL12345698449853",
"routing_code_type": "bic_swift",
"account_holder_name": "Account Name",
"bank_address": "12 Steward Street, The Steward Building, London, E1 6FQ, GB",
"created_at": 1761682198000,
"bank_country": "GB",
"routing_code": "TCCLGB3L",
"payment_type": "priority",
"updated_at": 1761682198000,
"bank_name": "The Currency Cloud Limited",
"currency": "USD",
"account_number_type": "iban",
"id": "91de1124-b8a3-40f9-a984-8aff75887fe1"
}
]
}
}
}CAD Virtual Bank Account Details
-- Example request: GET /v1.2/virtual-bank-account/details/2cedde96-39af-4309-825a-f17db16d42c7
GET /v1.2/virtual-bank-account/details/{id}{
"id": "2cedde96-39af-4309-825a-f17db16d42c7",
"fundingMethodId": 55183,
"isoCurrencyCode": "CAD",
"isoCountryCode": "CA",
"info": {
"bankInfo": {
"funding_accounts": [
{
"account_number": "803612430",
"routing_code_type": "routing_code",
"account_holder_name": "Account Name",
"bank_address": "736 Meridian Road N.E, Calgary, Alberta, CA",
"created_at": 1761682198000,
"bank_country": "CA",
"routing_code": "034512345",
"payment_type": "regular",
"updated_at": 1761682198000,
"bank_name": "Digital Commerce Bank",
"currency": "CAD",
"account_number_type": "account_number",
"id": "94551b6c-73a5-4a97-adc5-38d8f73ef6ba"
},
{
"account_number": "GB07TCCL12345698449853",
"routing_code_type": "bic_swift",
"account_holder_name": "Account Name",
"bank_address": "12 Steward Street, The Steward Building, London, E1 6FQ, GB",
"created_at": 1761682198000,
"bank_country": "GB",
"routing_code": "TCCLGB3L",
"payment_type": "priority",
"updated_at": 1761682198000,
"bank_name": "The Currency Cloud Limited",
"currency": "CAD",
"account_number_type": "iban",
"id": "91de1124-b8a3-40f9-a984-8aff75887fe1"
}
]
}
}
}Get Virtual Bank Account Transactions
Transactions endpoint provides a list of transactions during the queried time period.
There can be a delay( a few mins) between your transaction completion and your transaction reflecting in the response of the API.
Query Parameters
-- pageNumber Page index to retrieve (0-based). Default is 0.
-- pageSize Number of records per page. Default is 25. Maximum is 25.
-- startDate Filter transactions from this date (inclusive). Format: YYYY-MM-DD.
-- endDate Filter transactions up to this date (inclusive). Format: YYYY-MM-DD.
-- Example request: GET /v1.2/virtual-bank-account/transactions?pageNumber=0&pageSize=25&startDate=2025-05-01&endDate=2025-05-22
GET /v1.2/virtual-bank-account/transactions/{fundingMethodId}{
"content": [
{
"id": 318,
"accountId": 943802,
"paymentId": 463116,
"transactionId": 7438211,
"fundingMethodId": 55073,
"balanceId": "72f03bec-e95e-408d-9167-78d9899b1049",
"currency": "USD",
"amount": 50.50,
"balanceAmount": 899.50,
"type": "debit",
"status": "completed",
"action": "transfer",
"settlesAt": 1747104286000,
"createdAt": 1747104286000,
"updatedAt": 1747104287000,
"completedAt": 1747104287000
}
],
"number": 0,
"size": 25,
"totalPages": 1,
"numberOfElements": 1,
"totalElements": 1,
"previousPage": false,
"nextPage": false,
"first": true,
"last": true
}Sending Payments
Claimless-payments can be used to send payments from the virtual bank account.
When sending payment, FundingMethod is required. The fundingMethod was returned as part of response what virtual bank account was creates VBA account.
fundingMethod can also be retrieved by getting the balance or the details endpoints.
POST /v1.2/claimless-payments{
"purposeOfPayment": "Goods",
"payee":{
"email": "[email protected]",
"firstName": "USA First Name",
"lastName": "USA Last Name",
"countryCode": "US",
"phone": "4152306359",
"phoneCountryCode": "+1",
"type": "Business",
"industry": "Software, IT and Telecommunications",
"subIndustry": "Software",
"businessName": "USA 123",
"business": {
"address": {
"countryCode": "US",
"street": "300 Folsom",
"city": "San Francisco",
"postalCode": "94105",
"province": "CA"
},
"entity": "Corporation",
"taxIdNumber": "33-1867308"
}
},
"amount": {
"number": 50.50,
"currency": "USD"
},
"fundingMethod": {
"id": 55073,
"type": "VirtualBank"
},
"sweepToWalletId" : 123,
"notes" : "Payment notes"
}{
"requestId": "3c74a767-3416-4d0a-88fe-5869dcfb1239",
"notes": "Payment notes",
"payee": {
"email": "[email protected]",
"countryCode": "US",
"phone": "tel:+1-415-230-6359"
},
"payeeAmount": {
"number": 50.50,
"currency": "USD"
},
"status": "Sent",
"goodFundsPayment": false,
"realTimePayment": false,
"sweepToWalletId": 2037,
"extraInfo": {
"customInfo": null,
"isPayeeCoveringCardFee": null
},
"id": 463116,
"exchangeRate": {
"fromAmount": 50.50,
"fromCurrency": "USD",
"toAmount": 50.50,
"toCurrency": "USD"
},
"feeInformation": {
"payerInfo": {
"originalAmount": 50.50,
"feeAmount": 0.00,
"totalAmount": 50.50,
"currency": "USD"
},
"payeeInfo": {
"originalAmount": 50.50,
"feeAmount": 0.00,
"totalAmount": 50.50,
"currency": "USD"
}
},
"timeCreated": "2025-05-12T19:43:53.915-07:00",
"timeUpdated": "2025-05-12T19:43:55.418-07:00",
"claimLink": "https://api.dev.veem.com/api/c/VLiN8xbV",
"debitCreditTxn": {
"debitTxn": null,
"creditTxn": null,
"refundTxn": null
},
"fastTransfer": false,
"cancelable": false,
"payerFundingMethodType": "VirtualBank",
"receiverFundingMethodType": "Wallet",
"originalRequestId": "3c74a767-3416-4d0a-88fe-5869dcfb1239"
}Here is an example of sending a payment from VBA, for more detail of this endpoint please see
VBA Webhooks
For creating a webhook to be notified when a VBA event occurs you should use the following endpoint
Headers
There are 2 headers necessary for the use of this endpoint:
- X-request-id: This is a number unique to the current API request, and follows the UUID format. Reusing this header without changing the value will result in a 409 (Conflict) status. An example X-request-id is as follows:
48855846-628d-4177-b071-80332a116f0a
- Authorization: This header holds the bearer token required to use Veem's public API, and belongs to the owner account. Failure to use a valid bearer token will result in a 404 (Not Found) status. An example of a valid token is as follows:
Bearer c047594b-082c-4da1-be89-08fe3770f4b3See Get Access Token section to generate your bearerToken
In addition to the webhooks described on the Webhok Notification page, you can subscribe to two VBA-related events using the following webhooks:
- VBA_ACCOUNT_STATUS_UPDATED
- VBA_TRANSACTION
VBA Account Status Webhook
- VBA_ACCOUNT_STATUS_UPDATED
To subscribe to this webhook notification, use the following request:
{
"callbackURL": "https://webhook-test.com/958892dcc2b3076fffd136adb127ac55",
"event": "VBA_ACCOUNT_STATUS_UPDATED"
}{
"id": 92,
"event": "VBA_ACCOUNT_STATUS_UPDATED",
"callbackUrl": "https://webhook-test.com/958892dcc2b3076fffd136adb127ac55",
"status": "Active"
}You will get a notification in the following format:
{
"type": "VBA_ACCOUNT_STATUS_UPDATED",
"data": "{\"accountId\":944914,\"fundingMethodId\":55146,\"accountReference\":\"9fb7d64s-a67a-4d28-9655-ace57ba95f5a\",\"currency\":\"USD\",\"status\":\"SUCCESS\"}"
}Event information is contained in the data field, in a stringified JSON format.
Field | Description |
|---|---|
accountId | Account id |
fundingMethodId | Funding method Id |
accountReference | Unique identifier of the VBA account |
currency | VBA's currency |
status | One of the Virtual Bank Account statuses:
|
VBA Transaction Status Webhook
- VBA_TRANSACTION
To subscribe to this webhook notification, use the following request:
{
"callbackURL":"https://webhook-test.com/958892dcc2b3076fffd136adb127ac55",
"event":"VBA_TRANSACTION"
}{
"id": 31,
"event": "VBA_TRANSACTION",
"callbackUrl": "https://typedwebhook.tools/webhook/b8d85c63-b0fe-4c31-8c27-ccfeff52da59",
"status": "Active"
}You will get a notification in the following format:
{
"type": "VBA_TRANSACTION",
"data": "{\"accountId\":\"944208\",\"fundingMethodId\":\"55089\",\"paymentId\":\"468062\",\"counterParty\":{\"name\":\"USA 21111c8e-a3d2-4fdf-ae4e-8d05b5e858a9\",\"accountNumber\":\"1234567\",\"bankCode\":\"122105155\",\"bankName\":\"Access Credit Union\",\"method\":\"bank\"},\"balance\":{\"currency\":\"USD\",\"amount\":461.50},\"transaction\":{\"currency\":\"USD\",\"amount\":50.00,\"status\":\"Complete\",\"direction\":\"debit\",\"transactionDate\":1755743729000,\"reference\":\"\",\"additionalReference\":\"Goods:Products\"}}"
}Event information is contained in the data field, in a stringified JSON format.
| Field | Description |
|---|---|
| fundingMethodId | Funding method Id |
| paymentId | PaymentId for Veem Initiated Payments |
| accountId | Account id |
| balance | VBA Balance information |
| balance.currency | VBA currency code |
| balance.amount | VBA balance |
| counterParty | Counter party information |
| counterParty.name | Counter party's name |
| counterParty.accountNumber | Counter party's bank account number if available |
| counterParty.routingCode | Counter party's bank routing code if available |
| counterParty.bic | Counter party's bank bic if available |
| counterParty.bankCode | Counter party's bank code if available |
| counterParty.bankName | Counter party's bank name if available |
| counterParty.address | Counter party's address if available |
| counterParty.method | Counter party's payment method (bank, wallet, etc) |
| counterParty.iban | Counter party's iban if available |
| transaction | Transaction information |
| transaction.currency | Transaction currency |
| transaction.transaction | Transaction amount |
| transaction.status | Transaction status, possible values: Complete, InProgress, Closed |
| transaction.direction | debit or credit |
| transaction.transactionDate | Transaction date |
| transaction.reference | Transaction reference/notes |
| transaction.additionalReference | Additional transaction reference/notes |
| transaction.rail | Transaction's rail |
Updated 7 days ago
