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 and CAD 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
Three headers are required to use this endpoint.
Required Headers
Name
Type
Required
Description
Authorization
stringYes
Bearer token (OAuth 2.0) 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 code in the response. An example of a valid header value is as follows:
Bearer c047594b-082c-4da1-be89-08fe3770f4b3See Get Access Token section to generate your Bearer token
X-Request-Id
stringYes
This is a unique string that identifies the current API request, and should follow the UUID format. Reusing this header without changing the value will result in a 409 (Conflict) status code in the response. An example X-request-id is as follows:
48855846-628d-4177-b071-80332a116f0a
Content-Type
stringYes
The content type of the request. Must be
application/json
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.
POST /v1.2/virtual-bank-account{
"currencies" : [
"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"
}
}{
"virtualBankAccountBusinessInfo": {
"id":66,
"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"
}
}Request Parameters
Parameter | Mandatory | Format/Values | Size/Type |
|---|---|---|---|
currencies | Yes | Must be "USD", "CAD", or both in an array format. | 3 characters each |
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 (Sole Proprietor)
Opens a new virtual bank account for sole proprietor type of Veem account in a specified currency.
POST /v1.2/virtual-bank-account{
"currencies" : [
"USD"
],
"virtualBankAccountName" : "Account name",
"virtualBankAccountIndividualInfo": {
"geographySendingCountries": "US",
"geographyReceivingCountries": "US",
"purposeOfAccount": "Sole proprietor's VBA USA for providers",
"monthlyExpectedActivity": 9999999.99,
"annualIncome": 9999999.99,
"occupation": "Accountant",
"sourceOfFunds": "It Services",
"websiteSocialMediaLink": "https://mybusiness.com"
}
}{
"virtualBankAccountIndividualInfo": {
"id":66,
"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"
}
}Request Parameters
Parameter | Mandatory? | Format/Values | Size/Type |
|---|---|---|---|
currencies | Yes | Must be "USD", "CAD", or both in an array format. | 3 characters each |
virtualBankAccountName | Yes | Name of the virtual bank account. Letters only (no numbers or symbols). | 255 characters |
virtualBankAccountIndividualInfo | Yes | Information of the Sole Proprietor 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 (Sole Proprietor) , 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 (Sole Proprietor) , e.g. | 255 characters |
.websiteSocialMediaLink | No | Link to account holder's social media links(if available) | 255 characters |
Purpose of Account Values (Sole Proprietor)
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 (Sole Proprietor)
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). EUR and GBP support is coming soon.
{
"currencies" : ["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-account{
"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.
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
}
]
}Partner Notes:
- A partner account can be configured to make this API request on behalf of their customers. This requires internal configuration for the partner account by Veem. Once the internal configuration is enabled, the API request can be made using partner account bearer token.
onBehalfAccountIdis an optional query string parameter, this needs to be included in the request URL in case of partner making an API request on behalf of their customer. This is the customer Veem accountId, e.g?onBehalfAccountId=457725
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
}
Partner Notes:
- A partner account can be configured to make this API request on behalf of their customers. This requires internal configuration for the partner account by Veem. Once the internal configuration is enabled, the API request can be made using partner account bearer token.
onBehalfAccountIdis an optional query string parameter, this needs to be included in the request URL in case of partner making an API request on behalf of their customer. This is the customer Veem accountId, e.g?onBehalfAccountId=457725
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.
// Example request: GET /v1.2/virtual-bank-account/transactions/1?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
}Query String Parameters
| Parameter | Mandatory? | Format/Values | Size |
|---|---|---|---|
| pageNumber | No | Page index to retrieve (0-based). Default is 0. | Integer |
| pageSize | No | Number of records per page. Default is 25. Maximum is 25. | Integer |
| startDate | No | Filter transactions from this date (inclusive). Format: YYYY-MM-DD. | 10 chars |
| endDate | No | Filter transactions up to this date (inclusive). Format: YYYY-MM-DD. | 10 chars |
| onBehalfAccountId | No | Customer Veem account ID. This needs to be included in the request URL in case of partner making an API request on behalf of their customer. | Integer |
Partner Notes:
- A partner account can be configured to make this API request on behalf of their customers. This requires internal configuration for the partner account by Veem. Once the internal configuration is enabled, the API request can be made using partner account bearer token.
onBehalfAccountIdis an optional query string parameter, this needs to be included in the request URL in case of partner making an API request on behalf of their customer. This is the customer Veem accountId, e.g?onBehalfAccountId=457725
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 when virtual bank account was created. Refer to VBA account section.
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 refer to Send Money - Claimless.
VBA Webhooks
For creating a webhook to be notified when a VBA event occurs you should use the following endpoint.
Headers
Three headers are required to use this endpoint.
Required Headers
Name
Type
Required
Description
Authorization
stringYes
Bearer token (OAuth 2.0) 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 code in the response. An example of a valid header value is as follows:
Bearer c047594b-082c-4da1-be89-08fe3770f4b3See Get Access Token section to generate your Bearer token
X-Request-Id
stringYes
This is a unique string that identifies the current API request, and should follow the UUID format. Reusing this header without changing the value will result in a 409 (Conflict) status code in the response. An example X-request-id is as follows:
48855846-628d-4177-b071-80332a116f0a
Content-Type
stringYes
The content type of the request. Must be
application/json
In addition to the webhooks described on the Webhok Notification page, you can subscribe to three VBA-related events:
| Event | Description |
|---|---|
| VBA_ACCOUNT_STATUS_UPDATED | Will notify you when your Virtual Bank Account application changes status. |
| VBA_TRANSACTION | Will notify you when there is a transaction in or out of your Virtual Bank Account. |
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 at (2025-12-02T01:11:23.327Z)
Updated about 17 hours ago
