curl --request POST \
--url https://prod.truv.com/v1/orders/batch/ \
--header 'Content-Type: application/json' \
--header 'X-Access-Client-Id: <api-key>' \
--header 'X-Access-Secret: <api-key>' \
--data '
{
"orders": [
{
"products": [
"income"
],
"first_name": "John",
"last_name": "Doe",
"ssn": "222233333",
"email": "jsmith@example.com",
"phone": "4155554193",
"order_number": "1534332",
"external_user_id": "user_12345",
"employers": [
{
"start_date": "2019-08-24",
"end_date": "2019-11-27",
"company_name": "Facebook Demo",
"company_domain": "facebook.com",
"company_logo": "https://cdn.truv.com/company_logos/facebook.svg",
"suborder_number": "133982343355",
"company_mapping_id": "self_employed",
"data_sources": [
"payroll"
]
}
],
"financial_institutions": [
{
"id": "<string>",
"name": "Chase",
"suborder_number": "133982343355"
}
],
"insurance": {
"provider_id": "geico"
},
"loan": {
"loan_number": "MUUT220700012",
"application_number": "APP-2207-0001",
"originator_name": "John Doe",
"originator_email": "john@example.com",
"loan_processor_name": "John Doe",
"loan_processor_email": "john@doe.com",
"external_id": "c505e0f1b4134fdc853fc87e7d2cc4a5"
},
"reports": {
"voa": {
"days_requested": 380,
"as_of_date": "2024-12-31",
"large_deposit_threshold": {
"fixed_amount": 50000,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "FHA"
},
"is_voe": true,
"request_extended_history": true
}
},
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"custom_field": "<string>",
"cc_emails": [
"jsmith@example.com"
],
"notes": "To be processed by John Doe",
"source": "floify",
"notification_settings": {
"suppress_user_notifications": false,
"first_notification_delay_hours": 0
},
"locale": "es"
}
],
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"source": "internal"
}
'import requests
url = "https://prod.truv.com/v1/orders/batch/"
payload = {
"orders": [
{
"products": ["income"],
"first_name": "John",
"last_name": "Doe",
"ssn": "222233333",
"email": "jsmith@example.com",
"phone": "4155554193",
"order_number": "1534332",
"external_user_id": "user_12345",
"employers": [
{
"start_date": "2019-08-24",
"end_date": "2019-11-27",
"company_name": "Facebook Demo",
"company_domain": "facebook.com",
"company_logo": "https://cdn.truv.com/company_logos/facebook.svg",
"suborder_number": "133982343355",
"company_mapping_id": "self_employed",
"data_sources": ["payroll"]
}
],
"financial_institutions": [
{
"id": "<string>",
"name": "Chase",
"suborder_number": "133982343355"
}
],
"insurance": { "provider_id": "geico" },
"loan": {
"loan_number": "MUUT220700012",
"application_number": "APP-2207-0001",
"originator_name": "John Doe",
"originator_email": "john@example.com",
"loan_processor_name": "John Doe",
"loan_processor_email": "john@doe.com",
"external_id": "c505e0f1b4134fdc853fc87e7d2cc4a5"
},
"reports": { "voa": {
"days_requested": 380,
"as_of_date": "2024-12-31",
"large_deposit_threshold": {
"fixed_amount": 50000,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "FHA"
},
"is_voe": True,
"request_extended_history": True
} },
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"custom_field": "<string>",
"cc_emails": ["jsmith@example.com"],
"notes": "To be processed by John Doe",
"source": "floify",
"notification_settings": {
"suppress_user_notifications": False,
"first_notification_delay_hours": 0
},
"locale": "es"
}
],
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"source": "internal"
}
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({
orders: [
{
products: ['income'],
first_name: 'John',
last_name: 'Doe',
ssn: '222233333',
email: 'jsmith@example.com',
phone: '4155554193',
order_number: '1534332',
external_user_id: 'user_12345',
employers: [
{
start_date: '2019-08-24',
end_date: '2019-11-27',
company_name: 'Facebook Demo',
company_domain: 'facebook.com',
company_logo: 'https://cdn.truv.com/company_logos/facebook.svg',
suborder_number: '133982343355',
company_mapping_id: 'self_employed',
data_sources: ['payroll']
}
],
financial_institutions: [{id: '<string>', name: 'Chase', suborder_number: '133982343355'}],
insurance: {provider_id: 'geico'},
loan: {
loan_number: 'MUUT220700012',
application_number: 'APP-2207-0001',
originator_name: 'John Doe',
originator_email: 'john@example.com',
loan_processor_name: 'John Doe',
loan_processor_email: 'john@doe.com',
external_id: 'c505e0f1b4134fdc853fc87e7d2cc4a5'
},
reports: {
voa: {
days_requested: 380,
as_of_date: '2024-12-31',
large_deposit_threshold: {
fixed_amount: 50000,
sales_price: 500005,
qualifying_monthly_income: 50005,
loan_type: 'FHA'
},
is_voe: true,
request_extended_history: true
}
},
template_id: '9b96606355b94e8abff8ed8d75aa2027',
custom_field: '<string>',
cc_emails: ['jsmith@example.com'],
notes: 'To be processed by John Doe',
source: 'floify',
notification_settings: {suppress_user_notifications: false, first_notification_delay_hours: 0},
locale: 'es'
}
],
template_id: '9b96606355b94e8abff8ed8d75aa2027',
source: 'internal'
})
};
fetch('https://prod.truv.com/v1/orders/batch/', 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/orders/batch/",
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([
'orders' => [
[
'products' => [
'income'
],
'first_name' => 'John',
'last_name' => 'Doe',
'ssn' => '222233333',
'email' => 'jsmith@example.com',
'phone' => '4155554193',
'order_number' => '1534332',
'external_user_id' => 'user_12345',
'employers' => [
[
'start_date' => '2019-08-24',
'end_date' => '2019-11-27',
'company_name' => 'Facebook Demo',
'company_domain' => 'facebook.com',
'company_logo' => 'https://cdn.truv.com/company_logos/facebook.svg',
'suborder_number' => '133982343355',
'company_mapping_id' => 'self_employed',
'data_sources' => [
'payroll'
]
]
],
'financial_institutions' => [
[
'id' => '<string>',
'name' => 'Chase',
'suborder_number' => '133982343355'
]
],
'insurance' => [
'provider_id' => 'geico'
],
'loan' => [
'loan_number' => 'MUUT220700012',
'application_number' => 'APP-2207-0001',
'originator_name' => 'John Doe',
'originator_email' => 'john@example.com',
'loan_processor_name' => 'John Doe',
'loan_processor_email' => 'john@doe.com',
'external_id' => 'c505e0f1b4134fdc853fc87e7d2cc4a5'
],
'reports' => [
'voa' => [
'days_requested' => 380,
'as_of_date' => '2024-12-31',
'large_deposit_threshold' => [
'fixed_amount' => 50000,
'sales_price' => 500005,
'qualifying_monthly_income' => 50005,
'loan_type' => 'FHA'
],
'is_voe' => true,
'request_extended_history' => true
]
],
'template_id' => '9b96606355b94e8abff8ed8d75aa2027',
'custom_field' => '<string>',
'cc_emails' => [
'jsmith@example.com'
],
'notes' => 'To be processed by John Doe',
'source' => 'floify',
'notification_settings' => [
'suppress_user_notifications' => false,
'first_notification_delay_hours' => 0
],
'locale' => 'es'
]
],
'template_id' => '9b96606355b94e8abff8ed8d75aa2027',
'source' => 'internal'
]),
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/orders/batch/"
payload := strings.NewReader("{\n \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\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/orders/batch/")
.header("X-Access-Client-Id", "<api-key>")
.header("X-Access-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.truv.com/v1/orders/batch/")
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 \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\n}"
response = http.request(request)
puts response.read_body{
"id": "9f2c1b7e4a3d4e8fa1b2c3d4e5f60718",
"status": "completed",
"order_count": 3,
"created_count": 2,
"failed_count": 1,
"results": [
{
"index": 0,
"status": "created",
"order_id": "39aa1486ccca4bc19cda071ffc1ba392",
"order_number": "CASE-001",
"bridge_token": "e4100fccdae94691b4414c7306220c06",
"share_url": "https://cdn.truv.com/employment.html?bridge_token=e4100fccdae94691b4414c7306220c06",
"short_share_url": "https://truv.com/s/BIlEyh1A",
"errors": {
"last_name": [
"This field is required."
]
}
}
],
"errors": [
{
"detail": [
"The batch could not be processed."
]
}
],
"created_at": "2026-08-10T09:14:22.881Z",
"updated_at": "2026-08-10T09:15:04.203Z"
}{
"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."
}
}{
"error": {
"code": "throttled",
"message": "Request was throttled."
}
}Create orders as a batch
The endpoint accepts up to 10,000 orders in a single request and creates them in the background. It responds immediately with 202 and a job id — poll the job status to get the result of each order, or subscribe to the order-batch-completed webhook to be notified when the job finishes.
Each order is processed on its own: valid orders are created and invalid ones are reported against their position in the request, so one bad order never blocks the rest.
order_number must be unique within the environment. An order whose order_number already exists is skipped and reported as existing, with the id of the order that already holds that number — nothing is created and the existing order is left untouched. That makes retrying a batch safe.
Rate limits charge this endpoint per order, not per request: a batch of 500 orders costs 500 against the limit rather than 1. The batch endpoint has its own budget, separate from create an order — orders submitted in a batch leave the single-order budget untouched.
The limit is 3,000 orders per hour. A batch is charged in full when it is accepted, so a request holding more than 3,000 orders returns 429 even on an unused budget. Split larger uploads across requests, or ask for a higher limit.
curl --request POST \
--url https://prod.truv.com/v1/orders/batch/ \
--header 'Content-Type: application/json' \
--header 'X-Access-Client-Id: <api-key>' \
--header 'X-Access-Secret: <api-key>' \
--data '
{
"orders": [
{
"products": [
"income"
],
"first_name": "John",
"last_name": "Doe",
"ssn": "222233333",
"email": "jsmith@example.com",
"phone": "4155554193",
"order_number": "1534332",
"external_user_id": "user_12345",
"employers": [
{
"start_date": "2019-08-24",
"end_date": "2019-11-27",
"company_name": "Facebook Demo",
"company_domain": "facebook.com",
"company_logo": "https://cdn.truv.com/company_logos/facebook.svg",
"suborder_number": "133982343355",
"company_mapping_id": "self_employed",
"data_sources": [
"payroll"
]
}
],
"financial_institutions": [
{
"id": "<string>",
"name": "Chase",
"suborder_number": "133982343355"
}
],
"insurance": {
"provider_id": "geico"
},
"loan": {
"loan_number": "MUUT220700012",
"application_number": "APP-2207-0001",
"originator_name": "John Doe",
"originator_email": "john@example.com",
"loan_processor_name": "John Doe",
"loan_processor_email": "john@doe.com",
"external_id": "c505e0f1b4134fdc853fc87e7d2cc4a5"
},
"reports": {
"voa": {
"days_requested": 380,
"as_of_date": "2024-12-31",
"large_deposit_threshold": {
"fixed_amount": 50000,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "FHA"
},
"is_voe": true,
"request_extended_history": true
}
},
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"custom_field": "<string>",
"cc_emails": [
"jsmith@example.com"
],
"notes": "To be processed by John Doe",
"source": "floify",
"notification_settings": {
"suppress_user_notifications": false,
"first_notification_delay_hours": 0
},
"locale": "es"
}
],
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"source": "internal"
}
'import requests
url = "https://prod.truv.com/v1/orders/batch/"
payload = {
"orders": [
{
"products": ["income"],
"first_name": "John",
"last_name": "Doe",
"ssn": "222233333",
"email": "jsmith@example.com",
"phone": "4155554193",
"order_number": "1534332",
"external_user_id": "user_12345",
"employers": [
{
"start_date": "2019-08-24",
"end_date": "2019-11-27",
"company_name": "Facebook Demo",
"company_domain": "facebook.com",
"company_logo": "https://cdn.truv.com/company_logos/facebook.svg",
"suborder_number": "133982343355",
"company_mapping_id": "self_employed",
"data_sources": ["payroll"]
}
],
"financial_institutions": [
{
"id": "<string>",
"name": "Chase",
"suborder_number": "133982343355"
}
],
"insurance": { "provider_id": "geico" },
"loan": {
"loan_number": "MUUT220700012",
"application_number": "APP-2207-0001",
"originator_name": "John Doe",
"originator_email": "john@example.com",
"loan_processor_name": "John Doe",
"loan_processor_email": "john@doe.com",
"external_id": "c505e0f1b4134fdc853fc87e7d2cc4a5"
},
"reports": { "voa": {
"days_requested": 380,
"as_of_date": "2024-12-31",
"large_deposit_threshold": {
"fixed_amount": 50000,
"sales_price": 500005,
"qualifying_monthly_income": 50005,
"loan_type": "FHA"
},
"is_voe": True,
"request_extended_history": True
} },
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"custom_field": "<string>",
"cc_emails": ["jsmith@example.com"],
"notes": "To be processed by John Doe",
"source": "floify",
"notification_settings": {
"suppress_user_notifications": False,
"first_notification_delay_hours": 0
},
"locale": "es"
}
],
"template_id": "9b96606355b94e8abff8ed8d75aa2027",
"source": "internal"
}
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({
orders: [
{
products: ['income'],
first_name: 'John',
last_name: 'Doe',
ssn: '222233333',
email: 'jsmith@example.com',
phone: '4155554193',
order_number: '1534332',
external_user_id: 'user_12345',
employers: [
{
start_date: '2019-08-24',
end_date: '2019-11-27',
company_name: 'Facebook Demo',
company_domain: 'facebook.com',
company_logo: 'https://cdn.truv.com/company_logos/facebook.svg',
suborder_number: '133982343355',
company_mapping_id: 'self_employed',
data_sources: ['payroll']
}
],
financial_institutions: [{id: '<string>', name: 'Chase', suborder_number: '133982343355'}],
insurance: {provider_id: 'geico'},
loan: {
loan_number: 'MUUT220700012',
application_number: 'APP-2207-0001',
originator_name: 'John Doe',
originator_email: 'john@example.com',
loan_processor_name: 'John Doe',
loan_processor_email: 'john@doe.com',
external_id: 'c505e0f1b4134fdc853fc87e7d2cc4a5'
},
reports: {
voa: {
days_requested: 380,
as_of_date: '2024-12-31',
large_deposit_threshold: {
fixed_amount: 50000,
sales_price: 500005,
qualifying_monthly_income: 50005,
loan_type: 'FHA'
},
is_voe: true,
request_extended_history: true
}
},
template_id: '9b96606355b94e8abff8ed8d75aa2027',
custom_field: '<string>',
cc_emails: ['jsmith@example.com'],
notes: 'To be processed by John Doe',
source: 'floify',
notification_settings: {suppress_user_notifications: false, first_notification_delay_hours: 0},
locale: 'es'
}
],
template_id: '9b96606355b94e8abff8ed8d75aa2027',
source: 'internal'
})
};
fetch('https://prod.truv.com/v1/orders/batch/', 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/orders/batch/",
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([
'orders' => [
[
'products' => [
'income'
],
'first_name' => 'John',
'last_name' => 'Doe',
'ssn' => '222233333',
'email' => 'jsmith@example.com',
'phone' => '4155554193',
'order_number' => '1534332',
'external_user_id' => 'user_12345',
'employers' => [
[
'start_date' => '2019-08-24',
'end_date' => '2019-11-27',
'company_name' => 'Facebook Demo',
'company_domain' => 'facebook.com',
'company_logo' => 'https://cdn.truv.com/company_logos/facebook.svg',
'suborder_number' => '133982343355',
'company_mapping_id' => 'self_employed',
'data_sources' => [
'payroll'
]
]
],
'financial_institutions' => [
[
'id' => '<string>',
'name' => 'Chase',
'suborder_number' => '133982343355'
]
],
'insurance' => [
'provider_id' => 'geico'
],
'loan' => [
'loan_number' => 'MUUT220700012',
'application_number' => 'APP-2207-0001',
'originator_name' => 'John Doe',
'originator_email' => 'john@example.com',
'loan_processor_name' => 'John Doe',
'loan_processor_email' => 'john@doe.com',
'external_id' => 'c505e0f1b4134fdc853fc87e7d2cc4a5'
],
'reports' => [
'voa' => [
'days_requested' => 380,
'as_of_date' => '2024-12-31',
'large_deposit_threshold' => [
'fixed_amount' => 50000,
'sales_price' => 500005,
'qualifying_monthly_income' => 50005,
'loan_type' => 'FHA'
],
'is_voe' => true,
'request_extended_history' => true
]
],
'template_id' => '9b96606355b94e8abff8ed8d75aa2027',
'custom_field' => '<string>',
'cc_emails' => [
'jsmith@example.com'
],
'notes' => 'To be processed by John Doe',
'source' => 'floify',
'notification_settings' => [
'suppress_user_notifications' => false,
'first_notification_delay_hours' => 0
],
'locale' => 'es'
]
],
'template_id' => '9b96606355b94e8abff8ed8d75aa2027',
'source' => 'internal'
]),
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/orders/batch/"
payload := strings.NewReader("{\n \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\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/orders/batch/")
.header("X-Access-Client-Id", "<api-key>")
.header("X-Access-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.truv.com/v1/orders/batch/")
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 \"orders\": [\n {\n \"products\": [\n \"income\"\n ],\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"222233333\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"4155554193\",\n \"order_number\": \"1534332\",\n \"external_user_id\": \"user_12345\",\n \"employers\": [\n {\n \"start_date\": \"2019-08-24\",\n \"end_date\": \"2019-11-27\",\n \"company_name\": \"Facebook Demo\",\n \"company_domain\": \"facebook.com\",\n \"company_logo\": \"https://cdn.truv.com/company_logos/facebook.svg\",\n \"suborder_number\": \"133982343355\",\n \"company_mapping_id\": \"self_employed\",\n \"data_sources\": [\n \"payroll\"\n ]\n }\n ],\n \"financial_institutions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"Chase\",\n \"suborder_number\": \"133982343355\"\n }\n ],\n \"insurance\": {\n \"provider_id\": \"geico\"\n },\n \"loan\": {\n \"loan_number\": \"MUUT220700012\",\n \"application_number\": \"APP-2207-0001\",\n \"originator_name\": \"John Doe\",\n \"originator_email\": \"john@example.com\",\n \"loan_processor_name\": \"John Doe\",\n \"loan_processor_email\": \"john@doe.com\",\n \"external_id\": \"c505e0f1b4134fdc853fc87e7d2cc4a5\"\n },\n \"reports\": {\n \"voa\": {\n \"days_requested\": 380,\n \"as_of_date\": \"2024-12-31\",\n \"large_deposit_threshold\": {\n \"fixed_amount\": 50000,\n \"sales_price\": 500005,\n \"qualifying_monthly_income\": 50005,\n \"loan_type\": \"FHA\"\n },\n \"is_voe\": true,\n \"request_extended_history\": true\n }\n },\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"custom_field\": \"<string>\",\n \"cc_emails\": [\n \"jsmith@example.com\"\n ],\n \"notes\": \"To be processed by John Doe\",\n \"source\": \"floify\",\n \"notification_settings\": {\n \"suppress_user_notifications\": false,\n \"first_notification_delay_hours\": 0\n },\n \"locale\": \"es\"\n }\n ],\n \"template_id\": \"9b96606355b94e8abff8ed8d75aa2027\",\n \"source\": \"internal\"\n}"
response = http.request(request)
puts response.read_body{
"id": "9f2c1b7e4a3d4e8fa1b2c3d4e5f60718",
"status": "completed",
"order_count": 3,
"created_count": 2,
"failed_count": 1,
"results": [
{
"index": 0,
"status": "created",
"order_id": "39aa1486ccca4bc19cda071ffc1ba392",
"order_number": "CASE-001",
"bridge_token": "e4100fccdae94691b4414c7306220c06",
"share_url": "https://cdn.truv.com/employment.html?bridge_token=e4100fccdae94691b4414c7306220c06",
"short_share_url": "https://truv.com/s/BIlEyh1A",
"errors": {
"last_name": [
"This field is required."
]
}
}
],
"errors": [
{
"detail": [
"The batch could not be processed."
]
}
],
"created_at": "2026-08-10T09:14:22.881Z",
"updated_at": "2026-08-10T09:15:04.203Z"
}{
"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."
}
}{
"error": {
"code": "throttled",
"message": "Request was throttled."
}
}Authorizations
Client ID
Client Access Key
Body
Orders to create, with optional defaults applied to every order
Orders to create. Each item takes the same fields as a single order, and is validated individually when the batch runs.
1 - 10000 elementsShow child attributes
Show child attributes
Template applied to every order that does not set its own template_id.
32"9b96606355b94e8abff8ed8d75aa2027"
Source applied to every order that does not set its own source.
floify, besmartee, lenderlogix, encompass_consumer_connect, byte, core_logic, xactus, constellation, banno, mx, q2, clutch, accio, encompass, tpo_connect, darkmatter, tazworks, internal, simplenexus, external_webpage, individual, alkami, blue_sage, lodasoft, blend, tidalwave, self_signup "internal"
Response
Batch job ID. Use it to poll the job status.
"9f2c1b7e4a3d4e8fa1b2c3d4e5f60718"
pending while orders are still being created, then completed once every order has an outcome, or failed if the whole job could not run.
pending, completed, failed "completed"
Number of orders submitted in the request.
3
Number of orders that are usable, counting both created and existing.
2
Number of orders that could not be created.
1
Outcome of each submitted order, matched to its position in the request.
Show child attributes
Show child attributes
Why the job as a whole could not run. Set only when status is failed, and null otherwise — errors for individual orders are in results[].errors instead.
Show child attributes
Show child attributes
[
{
"detail": ["The batch could not be processed."]
}
]
Time the batch was accepted.
"2026-08-10T09:14:22.881Z"
Time the batch was last updated.
"2026-08-10T09:15:04.203Z"
Was this page helpful?