curl --request POST \
--url https://prod.truv.com/v1/users/{user_id}/assets/reports/ \
--header 'Content-Type: application/json' \
--header 'X-Access-Client-Id: <api-key>' \
--header 'X-Access-Secret: <api-key>' \
--data '
{
"days_requested": 60,
"as_of_date": "2024-01-01",
"large_deposit_threshold": {
"fixed_amount": 500,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "OTHER"
},
"is_voe": false,
"account_ids": [
"<string>"
]
}
'import requests
url = "https://prod.truv.com/v1/users/{user_id}/assets/reports/"
payload = {
"days_requested": 60,
"as_of_date": "2024-01-01",
"large_deposit_threshold": {
"fixed_amount": 500,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "OTHER"
},
"is_voe": False,
"account_ids": ["<string>"]
}
headers = {
"X-Access-Client-Id": "<api-key>",
"X-Access-Secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Access-Client-Id': '<api-key>',
'X-Access-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
days_requested: 60,
as_of_date: '2024-01-01',
large_deposit_threshold: {
fixed_amount: 500,
sales_price: 500005,
qualifying_monthly_income: 50005,
loan_type: 'OTHER'
},
is_voe: false,
account_ids: ['<string>']
})
};
fetch('https://prod.truv.com/v1/users/{user_id}/assets/reports/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod.truv.com/v1/users/{user_id}/assets/reports/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'days_requested' => 60,
'as_of_date' => '2024-01-01',
'large_deposit_threshold' => [
'fixed_amount' => 500,
'sales_price' => 500005,
'qualifying_monthly_income' => 50005,
'loan_type' => 'OTHER'
],
'is_voe' => false,
'account_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Access-Client-Id: <api-key>",
"X-Access-Secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://prod.truv.com/v1/users/{user_id}/assets/reports/"
payload := strings.NewReader("{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Access-Client-Id", "<api-key>")
req.Header.Add("X-Access-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://prod.truv.com/v1/users/{user_id}/assets/reports/")
.header("X-Access-Client-Id", "<api-key>")
.header("X-Access-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.truv.com/v1/users/{user_id}/assets/reports/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Access-Client-Id"] = '<api-key>'
request["X-Access-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"report_id": "7d4fcb86b81a4880955beea558092391",
"created_at": "2022-05-04T11:30:00Z",
"completed_at": "2022-05-04T12:00:00Z",
"days_requested": 60,
"large_deposit_threshold": 500,
"is_voe": true,
"borrower": {
"id": "24d7e80942ce4ad58a93f70ce4115f5c",
"external_user_id": "12345",
"created_at": "2022-05-04T11:30:00Z",
"updated_at": "2022-05-04T12:00:00Z",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+14155554193",
"ssn": "222233333"
},
"links": [
{
"link_id": "150491a20bdb4292bb2a2ad8554fecba",
"accounts": [
{
"id": "4d601895417c46ec99633978db12a866",
"created_at": "2022-05-04T11:30:00Z",
"updated_at": "2022-05-04T12:00:00Z",
"days_available": 365,
"balances": {
"currency_code": "<string>",
"balance": "<string>",
"available_balance": "<string>",
"credit_limit": "<string>"
},
"transactions": [
{
"id": "7d4fcb86b81a4880955beea558092391",
"external_id": "<string>",
"categories": [
"<string>"
],
"status": "POSTED",
"type": "DEBIT",
"transacted_at": "2022-05-04T12:00:00Z",
"amount": "<string>",
"currency_code": "<string>",
"check_number": "<string>",
"description": "<string>",
"posted_at": "2022-05-05T15:30:00Z",
"merchant_name": "Starbucks",
"merchant_category_code": 5967,
"ending_daily_balance": 123,
"is_direct_deposit": true,
"is_subscription": true
}
],
"owners": [
{
"id": "2b623fa2fa9e49cea17d9692caa884c5",
"full_name": "John Doe",
"email": "john.doe@example.com",
"phone": "14155554193",
"address": {
"street": "1 Morgan Ave",
"city": "Los Angeles",
"state": "CA",
"zip": "90210",
"country": "US"
},
"relation_type": "PRIMARY"
}
],
"type": "<string>",
"subtype": "<string>",
"mask": "<string>",
"routing_number": "55999876",
"nickname": "<string>",
"balance_as_of": "2025-05-04T12:00:00Z",
"summary": {
"avg_30": "<string>",
"avg_60": "<string>",
"avg_90": "<string>",
"currency_code": "<string>",
"balance": "<string>"
},
"same_owner_as_requested": true,
"direct_deposit_from_employer": true,
"nsf": 123
}
],
"tracking_info": "<string>",
"provider": "<string>",
"provider_name": "<string>"
}
],
"summary": {
"avg_30": "<string>",
"avg_60": "<string>",
"avg_90": "<string>",
"currency_code": "<string>",
"balance": "<string>"
},
"as_of_date": "2022-05-01"
}{
"error": {
"code": "incorrect_parameters",
"message": "Incorrect request parameters",
"extra": {
"invalid-params": [
{
"field": "access_token",
"message": "This field is required."
}
]
}
}
}{
"error": {
"code": "authentication_failed",
"message": "No such token"
}
}{
"error": {
"code": "not_authenticated",
"message": "Authentication credentials were not provided."
}
}Create an assets report
The endpoint creates an assets report for the user.
curl --request POST \
--url https://prod.truv.com/v1/users/{user_id}/assets/reports/ \
--header 'Content-Type: application/json' \
--header 'X-Access-Client-Id: <api-key>' \
--header 'X-Access-Secret: <api-key>' \
--data '
{
"days_requested": 60,
"as_of_date": "2024-01-01",
"large_deposit_threshold": {
"fixed_amount": 500,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "OTHER"
},
"is_voe": false,
"account_ids": [
"<string>"
]
}
'import requests
url = "https://prod.truv.com/v1/users/{user_id}/assets/reports/"
payload = {
"days_requested": 60,
"as_of_date": "2024-01-01",
"large_deposit_threshold": {
"fixed_amount": 500,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "OTHER"
},
"is_voe": False,
"account_ids": ["<string>"]
}
headers = {
"X-Access-Client-Id": "<api-key>",
"X-Access-Secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Access-Client-Id': '<api-key>',
'X-Access-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
days_requested: 60,
as_of_date: '2024-01-01',
large_deposit_threshold: {
fixed_amount: 500,
sales_price: 500005,
qualifying_monthly_income: 50005,
loan_type: 'OTHER'
},
is_voe: false,
account_ids: ['<string>']
})
};
fetch('https://prod.truv.com/v1/users/{user_id}/assets/reports/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod.truv.com/v1/users/{user_id}/assets/reports/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'days_requested' => 60,
'as_of_date' => '2024-01-01',
'large_deposit_threshold' => [
'fixed_amount' => 500,
'sales_price' => 500005,
'qualifying_monthly_income' => 50005,
'loan_type' => 'OTHER'
],
'is_voe' => false,
'account_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Access-Client-Id: <api-key>",
"X-Access-Secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://prod.truv.com/v1/users/{user_id}/assets/reports/"
payload := strings.NewReader("{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Access-Client-Id", "<api-key>")
req.Header.Add("X-Access-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://prod.truv.com/v1/users/{user_id}/assets/reports/")
.header("X-Access-Client-Id", "<api-key>")
.header("X-Access-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.truv.com/v1/users/{user_id}/assets/reports/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Access-Client-Id"] = '<api-key>'
request["X-Access-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"days_requested\": 60,\n \"as_of_date\": \"2024-01-01\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 500,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"OTHER\"\n },\n \"is_voe\": false,\n \"account_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"report_id": "7d4fcb86b81a4880955beea558092391",
"created_at": "2022-05-04T11:30:00Z",
"completed_at": "2022-05-04T12:00:00Z",
"days_requested": 60,
"large_deposit_threshold": 500,
"is_voe": true,
"borrower": {
"id": "24d7e80942ce4ad58a93f70ce4115f5c",
"external_user_id": "12345",
"created_at": "2022-05-04T11:30:00Z",
"updated_at": "2022-05-04T12:00:00Z",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+14155554193",
"ssn": "222233333"
},
"links": [
{
"link_id": "150491a20bdb4292bb2a2ad8554fecba",
"accounts": [
{
"id": "4d601895417c46ec99633978db12a866",
"created_at": "2022-05-04T11:30:00Z",
"updated_at": "2022-05-04T12:00:00Z",
"days_available": 365,
"balances": {
"currency_code": "<string>",
"balance": "<string>",
"available_balance": "<string>",
"credit_limit": "<string>"
},
"transactions": [
{
"id": "7d4fcb86b81a4880955beea558092391",
"external_id": "<string>",
"categories": [
"<string>"
],
"status": "POSTED",
"type": "DEBIT",
"transacted_at": "2022-05-04T12:00:00Z",
"amount": "<string>",
"currency_code": "<string>",
"check_number": "<string>",
"description": "<string>",
"posted_at": "2022-05-05T15:30:00Z",
"merchant_name": "Starbucks",
"merchant_category_code": 5967,
"ending_daily_balance": 123,
"is_direct_deposit": true,
"is_subscription": true
}
],
"owners": [
{
"id": "2b623fa2fa9e49cea17d9692caa884c5",
"full_name": "John Doe",
"email": "john.doe@example.com",
"phone": "14155554193",
"address": {
"street": "1 Morgan Ave",
"city": "Los Angeles",
"state": "CA",
"zip": "90210",
"country": "US"
},
"relation_type": "PRIMARY"
}
],
"type": "<string>",
"subtype": "<string>",
"mask": "<string>",
"routing_number": "55999876",
"nickname": "<string>",
"balance_as_of": "2025-05-04T12:00:00Z",
"summary": {
"avg_30": "<string>",
"avg_60": "<string>",
"avg_90": "<string>",
"currency_code": "<string>",
"balance": "<string>"
},
"same_owner_as_requested": true,
"direct_deposit_from_employer": true,
"nsf": 123
}
],
"tracking_info": "<string>",
"provider": "<string>",
"provider_name": "<string>"
}
],
"summary": {
"avg_30": "<string>",
"avg_60": "<string>",
"avg_90": "<string>",
"currency_code": "<string>",
"balance": "<string>"
},
"as_of_date": "2022-05-01"
}{
"error": {
"code": "incorrect_parameters",
"message": "Incorrect request parameters",
"extra": {
"invalid-params": [
{
"field": "access_token",
"message": "This field is required."
}
]
}
}
}{
"error": {
"code": "authentication_failed",
"message": "No such token"
}
}{
"error": {
"code": "not_authenticated",
"message": "Authentication credentials were not provided."
}
}Authorizations
Client ID
Client Access Key
Path Parameters
Body
Verification of Assets report parameters.
The specific duration in days for which the report is requested to be generated.
30 <= x <= 730The end date for the report period. Start date will be calculated as as_of_date - days_requested. Defaults to current date if not provided.
"2024-01-01"
Show child attributes
Show child attributes
A boolean parameter to request a deposit based Verification of Employment report.
List of bank account IDs to include in VOA report. All accounts will be included if not set.
1 - 100 elements32Response
Unique identifier of the report.
32"7d4fcb86b81a4880955beea558092391"
Timestamp when the report was created.
"2022-05-04T11:30:00Z"
Timestamp when the report was completed.
"2022-05-04T12:00:00Z"
Number of days for which transactions are requested.
60
Amount that must be met or exceeded for deposits to be marked as large.
500
Indicates whether the report is a Deposit-based Verification of Employment (DVOE).
Show child attributes
Show child attributes
List of assets links
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The end date for the report period. Start date will be calculated as as_of_date - days_requested. Defaults to current date if not provided.
"2022-05-01"
Was this page helpful?