/get_virtual_accounts
This will return a list of virtual accounts for the specified user.
Results are paginated. The page and per_page keys can instead be specified in query parameters (e.g. by appending ?page=2&per_page=2 or ?per_page=100 to the end of the URL). If these keys are already specified in the request body, the request body keys take precedence. This allows a requester to fetch several pages using the same signatures, if desired.
Requests
Both authsignature
and usersignature
headers are required for this request.
POST /0.2/get_virtual_accounts HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "handle.silamoney.eth",
"user_handle":"user.silamoney.eth",
"version": "0.2",
"crypto": "ETH",
"reference": "<your unique id>"
}
}
***
HTTP/1.1 200 OK
{
"success": true,
"status": "SUCCESS",
"response_time_ms": "171",
"virtual_accounts": [
{
"virtual_account_id": "UUID",
"virtual_account_name": "Sherrys Money Tree",
"account_number": "1234567812345678",
"routing_number": "123456789",
"account_type": "VIRTUAL_ACCOUNT",
"active": true,
"closed": false,
"created_epoch": 1613569714,
"closed_epoch": null,
"ach_credit_enabled": true,
"ach_debit_enabled": false
}
],
"pagination": {
"returned_count": 1,
"total_count": 1,
"current_page": 1,
"total_pages": 1
}
}
let filters = {
'page':1,
'perPage':10,
'sortAscending':true
};
// filters object and its key of pagination is option
const res = await Sila.getVirtualAccounts(userHandle, userPrivateKey, filters);
//OR
const res = await Sila.getVirtualAccounts(userHandle, userPrivateKey);
Success Response Object
{
"statusCode": 200,
"headers": {
"server": "nginx/1.14.0 (Ubuntu)",
"date": "Fri, 25 Mar 2022 11:45:16 GMT",
"content-type": "application/json",
"content-length": "548",
"connection": "close",
"access-control-allow-origin": "*",
"access-control-allow-headers": "*",
"allow": "GET, POST, PUT, DELETE, HEAD, OPTIONS",
"vary": "Cookie"
},
"data": {
"success": true,
"status": "SUCCESS",
"virtual_accounts": [
{
"virtual_account_id": "72130e62-1bd8-431d-b88d-2440a27c828a",
"virtual_account_name": "default_v_account_1",
"account_number": "9710010589065012",
"routing_number": "084106768",
"account_type": "VIRTUAL_ACCOUNT",
"ach_credit_enabled": false,
"ach_debit_enabled": true,
"active": true,
"closed": false,
"created_epoch": 1648208707,
"closed_epoch": null
}
],
"pagination": {
"returned_count": 1,
"total_count": 1,
"current_page": 1,
"total_pages": 1
},
"reference": "78f2ab49-872e-4565-9580-d051fae5babd",
"response_time_ms": "153"
}
}
payload={
"user_handle": "user.silamoney.eth" #Required
}
User.getVirtualAccounts(silaApp,payload,user_private_key) # users_private_key (256 bits) associated with ethereum address
### Success Response Object
{
"success":true,
"status":"SUCCESS",
"virtual_accounts":[
{
"virtual_account_id":"782bbd8c-ae27-4fb6-89e8-2675a1791382",
"virtual_account_name":"default",
"account_number":"9710016172909900",
"routing_number":"084106768",
"account_type":"VIRTUAL_ACCOUNT",
"active":true,
"closed":false,
"created_epoch":1643027826,
"closed_epoch":"None",
"ach_debit_enabled": true,
"ach_credit_enabled": false,
},
{
"virtual_account_id":"4eaca914-a86c-48cc-b19d-6e380c126af8",
"virtual_account_name":"updates_test_v_acc",
"account_number":"9710012690626872",
"routing_number":"084106768",
"account_type":"VIRTUAL_ACCOUNT",
"active":true,
"closed":false,
"created_epoch":1643027824,
"closed_epoch":"None",
"ach_debit_enabled": true,
"ach_credit_enabled": false,
},
{
"virtual_account_id":"ecd4984f-6e3d-444b-9532-3fb3828acb8c",
"virtual_account_name":"test_v_acc",
"account_number":"9710019235738819",
"routing_number":"084106768",
"account_type":"VIRTUAL_ACCOUNT",
"active":true,
"closed":false,
"created_epoch":1643027824,
"closed_epoch":"None",
"ach_debit_enabled": true,
"ach_credit_enabled": false,
}
],
"pagination":{
"returned_count":3,
"total_count":3,
"current_page":1,
"total_pages":1
},
"reference": "<your unique id>"
"status_code":200,
}
### Failure Response Object
{
status: 'FAILURE'
}
ApiResponse response = api.getVirtualAccounts("userHandle", "userPrivateKey");
// Success Response
System.out.println(response.getStatusCode()); // 200
GetVirtualAccountsResponse parsedResponse = (GetVirtualAccountsResponse) response.getData();
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getReference()); // Reference number
System.out.println(parsedResponse.getMessage());
parsedResponse.getVirtualAccounts(); // List of virtual account
System.out.println(parsedResponse.getVirtualAccounts().get(0).getVirtualAccountId()); // 1df8f430-3dec-47a2-bfa7-5e02b19a7bc8
System.out.println(parsedResponse.getVirtualAccounts().get(0).getVirtualAccountName()); // Virtual account name
System.out.println(parsedResponse.getVirtualAccounts().get(0).getAccountNumber()); // Account number
System.out.println(parsedResponse.getVirtualAccounts().get(0).getRoutingNumber()); // 123456789
System.out.println(parsedResponse.getVirtualAccounts().get(0).getAccountType()); // VIRTUAL_ACCOUNT
System.out.println(parsedResponse.getVirtualAccounts().get(0).getClosedEpoch()); // "null" or <epoch_timestamp>
System.out.println(parsedResponse.getVirtualAccounts().get(0).getCreated_epoch()); // <epoch_timestamp>
System.out.println(parsedResponse.getVirtualAccounts().get(0).isClosed()); // true/false
System.out.println(parsedResponse.getVirtualAccounts().get(0).isActive()); // true/falseApi
System.out.println(parsedResponse.getVirtualAccount().isAchCreditEnabled()); // true/false
System.out.println(parsedResponse.getVirtualAccount().isAchDebitEnabled()); // true/false
$userHandle = 'user.silamoney.eth';
$userPrivateKey = 'some private key'; // Hex format
$response = $client->getVirtualAccounts($userHandle, $userPrivateKey);
// Success 200
echo $response->getStatusCode(); // 200
$accounts = $response->getData(); // Array of Silamoney\Client\Domain\Account
if (count($accounts)) {
echo $accounts[0]->virtual_account_id; // Virtual account id
echo $accounts[0]->virtual_account_name; // Virtual account name
echo $accounts[0]->account_number; // Virtual account number
echo $accounts[0]->active; // Virutal account active bool
echo $accounts[0]->ach_credit_enabled; // Virutal account ach_credit_enabled
echo $accounts[0]->ach_debit_enabled; // Virutal account ach_debit_enabled
echo $accounts[0]->closed_epoch; // Virtual account closed epoch date
}
ApiResponse<object> response = api.GetVirtualAccounts(userHandle, userPrivateKey);
// Success Object Response
Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Message); // Message
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Success); // true
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Status); // SUCCESS
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Reference); // ccb35eb8-xxxx-xxxx-xxxx-xxxxx
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Pagination); // Pagination
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Pagination.CurrentPage); // return current page number
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Pagination.ReturnedCount); // returned count
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Pagination.TotalCount); // total count
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).Pagination.TotalPages); // total pages
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts);
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].AccountNumber); // 1234567812345678
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].AccountType); // VIRTUAL_ACCOUNT
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].Active); // true/false
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].Closed); // true/false
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].ClosedEpoch); // epoch timestamp
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].CreatedEpoch); // epoch timestamp
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].RoutingNumber); // 044000000
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].VirtualAccountId); // {{payment instrument UUID here}}
Console.WriteLine(((GetVirtualAccountsResponse)response.Data).VirtualAccounts[0].VirtualAccountName); // name of virtual account
Key | Type | Description |
---|---|---|
header | JSON object | Required. Requires these keys in JSON format: created, app_handle, user_handle. See the /check_handle endpoint for the complete list of fields in this object. |
Responses
Status Code | Description |
---|---|
200 | Successfully fetched virtual accounts. |
400 | Bad request format - check validation_details for more information. |
401 | authsignature or usersignature header was absent or incorrect. |
Response Contents
Key | Datatype | Description |
---|---|---|
virtual_account_id | UUID | UUID is unique and distinct to the virtual account |
virtual_account_name | string or null | Name of the virtual account |
account_number | string | Full virtual account number |
routing_number | string or null | Virtual account ACH routing number. |
account_type | string | Bank account subtype "VIRTUAL_ACCOUNT" |
active | boolean | Whether the virtual account is "active", True or False. |
closed | boolean | Whether the account is "closed", True or False. |
created | datetime | Unix datetime for the date the virtual account was created. |
closed_epoch | datetime or null | Unix datetime for the date the virtual account was closed. |
ach_credit_enabled | boolean | Whether or not the virtual account can receive external credits |
ach_debit_enabled | Whether or not the virtual account can receive external debits |
Updated about 3 years ago