Getting Started
Go from sign-up to your first successful API call with the Virtual Account Engine.
Getting Started
Welcome to the Virtual Account Engine! This guide will walk you through the essential steps to set up your account, get your API keys, and make your first successful API request.
Our platform is built on a few core concepts:
- Customers: The end-users you onboard, complete with KYC.
- Applications: Your project or integration. Your API keys are tied to an application.
- Accounts: The virtual or transient accounts you create for your customers.
- Transactions: The transfers, balance inquiries, and statements you perform.
In just a few minutes, you'll be ready to make your first call.
Step 1: Register & Get Verified
Before you can use the API, you need to sign up for a Virtual Account Engine developer account on the Keystone dashboard.
- Sign Up: Go to the Keystone Dashboard (Note: This is the server URL; your actual dashboard URL may differ) and create your account.
- Get Verified: As part of the onboarding process, you will need to complete your business verification (KYB/KYC). This is required to gain access to live environments and create applications.
Step 2: Create an Application
Once your account is verified and active, you need to create an "Application." An application represents your project, and all API calls are scoped to it.
- Log in to your dashboard and navigate to the Applications section.
- Click "Create New Application" and give it a descriptive name (e.g., "My Fintech App").
- After creation, the platform will provide you with a unique Application ID (
X-App-Id). It will be a UUID, like123e4567-e89b-12d3-a456-426614174000.
You will need to pass this X-App-Id as an HTTP header in almost every API request.
Step 3: Create an API Key
Your API key is the secret token that authenticates your application's requests.
- From your application's settings page in the dashboard, find the "API Keys" section.
- Generate a new API Key (
X-API-Key). - Copy this key immediately and store it in a secure location (like a password manager or
.envfile). For security reasons, you will not be able to see this key again.
Important
Keep it secret! Your X-API-Key grants full access to your application. Never expose it in client-side code or commit it to version control.
Step 4: Make Your First API Call
You're all set! Let's test your new credentials by making a simple, safe request. We'll use the GET /accounts/name-enquiry endpoint to verify that your authentication is working.
This request requires two headers:
X-API-Key: Your secret API key (from Step 3).X-App-Id: Your application's ID (from Step 2).
The base URL for all v1 API calls is:
https://company.virtual-accounts-api.vantacrest.com/login
Here’s how to make the request using cURL, Node.js, and Python:
# Replace with your actual key and app ID
# We use -G to send query parameters with a GET request
curl -G "[https://virtual-accounts-api.vantacrest.com/company/v1/accounts/name-enquiry](https://virtual-accounts-api.vantacrest.com/api/v1/accounts/name-enquiry)" \
--data-urlencode "accountNumber=0123456789" \
-H "X-API-Key: YOUR_API_KEY_GOES_HERE" \
-H "X-App-Id: YOUR_APP_ID_GOES_HERE"// Requires 'node-fetch'
// npm install node-fetch
const fetch = require('node-fetch');
const url = '[https://virtual-accounts-api.vantacrest.com/company/v1/accounts/name-enquiry](https://virtual-accounts-api.vantacrest.com/api/v1/accounts/name-enquiry)';
const params = new URLSearchParams({
accountNumber: '0123456789'
});
const headers = {
'X-API-Key': 'YOUR_API_KEY_GOES_HERE',
'X-App-Id': 'YOUR_APP_ID_GOES_HERE',
'Content-Type': 'application/json'
};
fetch(`${url}?${params}`, { method: 'GET', headers: headers })
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('Error:', err));# Requires 'requests' library
# pip install requests
import requests
url = "[https://virtual-accounts-api.vantacrest.com/company/v1accounts/name-enquiry](https://virtual-accounts-api.vantacrest.com/api/v1/accounts/name-enquiry)"
params = {
"accountNumber": "0123456789" # A 10-digit test number
}
headers = {
"X-API-Key": "YOUR_API_KEY_GOES_HERE",
"X-App-Id": "YOUR_APP_ID_GOES_HERE"
}
try:
response = requests.get(url, headers=headers, params=params)
response.raise_for_status() # Raises an exception for bad status codes
print(response.json())
except requests.exceptions.HTTPError as err:
print(f"HTTP Error: {err}")
except Exception as err:
print(f"An error occurred: {err}")Success Response
If your request is successful, your authentication is working! You'll receive a 200 OK response. Since 0123456789 is a test number, the data field will likely be null, but the success: true status confirms your setup is correct.
{
"success": true,
"message": "Account name enquiry result",
"data": null,
"timestamp": "2025-11-17T09:32:00.123Z"
}Got a 401 Error?
If you receive a 401 Unauthorized response, double-check that your X-API-Key and X-App-Id are correct and have no extra spaces or characters.
Next Steps
Congratulations! You're successfully connected to the API.
Here are some logical next steps to start building your integration:
- Manage customers – Customers Management: Create customers, manage KYC, and handle tier upgrades.
- Manage accounts – Accounts Management: Open virtual accounts, run name enquiries, and check balances.
- Move money – Transactions Management: Process transfers, view transaction history, and use Open Banking v2 flows.
- Use transient accounts – Transient Accounts: Create transient accounts and manage overfill/settlement workflows.
- Set up webhooks – Webhooks: Register and test webhooks for real-time event notifications.
OPEN BANKING DOCS