Orders handle everything to get started: creating an Order is all you need to initiate a verification. The Order creates the User, generates the Bridge Token, and tracks the entire lifecycle from creation to completion.
What happens when you create an Order
- User is created automatically from the provided applicant details
- Bridge Token is generated for the Order
- Landing page is created with a unique
share_urlfor the user - Invite is sent (optional) via email, SMS, or both, or you can share the
share_urldirectly - User connects through Truv Bridge on the landing page
- Data is retrieved and the Order status updates as Tasks complete
Order lifecycle and webhooks
Orders are asynchronous. The typical flow is:- You create an Order via the API or Dashboard.
- The user authenticates with one or more employers through Truv Bridge.
- Truv retrieves the data and fires a
task-status-updatedwebhook for each employer/account as it completes. - When all connections in the order are finished, Truv fires a single
order-status-updatedwebhook for the full order. - You retrieve the verification data using the Link endpoints.
| Webhook | Scope | Use for |
|---|---|---|
task-status-updated | Per employer/account connection | Monitoring individual connection progress, processing data as it arrives |
order-status-updated | Entire order | Knowing when all connections are complete, final order status |
In a multi-employer order, you receive a separate
task-status-updated webhook for each employer the user connects. The order-status-updated webhook fires once after all connections resolve. Use task-status-updated to process data incrementally and order-status-updated to confirm the full order is done.The
no_data status means the user successfully connected to the provider, but the provider returned zero records. This is distinct from an error status, which indicates a connection failure. A no_data result typically means the provider has no history for the applicant, not that the connection failed.Create orders
Create Orders through the Truv Dashboard or programmatically via the Create an Order endpoint. Orders are customizable for these components:- Landing page
- Text message (optional)
- Email (optional)
Attributes
The attributes of Orders are below.Report limits: A single VOIE order supports a maximum of 5 employers, and a single VOA order supports a maximum of 5 financial institutions. If you need to verify more, create additional orders for the same user.
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID of order |
| products | array | List of products selected for Order |
| source | string | Type of platform: floify, besmartee, lenderlogix, encompass_consumer_connect, byte, core_logic, xactus, constellation, banno, mx, q2, clutch, accio, encompass, tpo_connect, darkmatter, tazworks, internal, simplenexus, alkami, blue_sage, lodasoft, blend, tidalwave, external_webpage |
| order_number | string | External ID from client |
| custom_field | string | Client-provided custom field for use in email, SMS, or landing page. NOTE: Enable this field in the dashboard customization section. |
| client_name | string | Verification agency name |
| first_name | string | First name |
| last_name | string | Last name |
| user_id | string | Unique ID of user |
| bridge_token | string | UUID value of bridge token for the Order |
| share_url | string | Landing page URL to share |
| short_share_url | string | Shortened verification URL to share |
| created_at | string | ISO 8601 value for when Order was created |
| updated_at | string | ISO 8601 value for when Order was last updated |
| completed_at | string | ISO 8601 value for when Order was successfully completed |
| canceled_at | string | ISO 8601 value for when Order was canceled |
| expired_at | string | ISO 8601 value for Order expiration |
| is_expired | bool | Status of Order expiration |
| user_consent_at | string | ISO 8601 value for when explicit user consent was given |
| initial_order | string | ID of origin Order, from Order data refresh action |
| refresh_order | string | ID of last refresh Order created by Order data refresh action |
| employers | array of objects | List of user employers, see Employers object |
| insurance | object | Insurance verification metadata, see Insurance object |
| financial_accounts | array of objects | Financial accounts metadata, see Financial accounts object |
| manager | array of objects | Associated Order manager info, see Manager object |
| loan | object | Loan information, see Loan object |
| cc_emails | array of strings | Email addresses for CC on order status updates (max 15) |
| notes | string | Free text field for notes (max 2000 characters) |
| template_id | string | ID of template |
| voie_report_id | string | Income and employment verification report ID (accepted by Fannie Mae DU and Freddie Mac LPA) |
| voa_report_id | string | Asset verification report ID |
| income_insights_report_id | string | Income Insights report ID |
| aim_check_report_id | string | AIM check report ID for income calculation based on uploaded documents |
To get a PDF version of the report please use the corresponding report_id along with the GET endpoint in the User Reports section.
voie_report_id auto-population: The
voie_report_id field is only populated automatically when an account-level setting is enabled. This setting generates a Fannie Mae DU / Freddie Mac LPA compatible report ID upon order completion. Contact Truv support to enable this feature for your account.Company address object
The values in this table are for the address object of the company.| Attribute | Type | Description |
|---|---|---|
| street | string | Street |
| city | string | City |
| state | string | State |
| zip | string | Zip |
| country | string | Country |
Employers object
View information for employer object field data below.| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID |
| product_type | string | Type of product, see values below: income, employment, deposit_switch, pll |
| status | string | Order status, see values below: pending, sent, completed, error, canceled, expired, no_data, skipped |
| suborder_number | string | External ID |
| created_at | string | Date and time when Order was created |
| bridge_token | string | UUID value of bridge_token |
| link_id | string | Link ID for connected account |
| access_token | string | Access token to perform data refresh |
| pdf_report | uri | Verification report in PDF format |
| data_source | string | Source of data, see values below: payroll - Payroll provider parsing, docs - User uploaded documents, insurance - Insurance data, financial_accounts - Bank data, tax - Tax documents, scoring_attributes - Transactions scoring attributes report |
| provider | array of objects | Payroll or insurance provider, see Provider object |
| is_suspicious | Boolean | Status of data from source marked as suspicious, such as if detecting fraud in uploaded documents or user SSN does not match data |
| start_date | string | Employment start date |
| end_date | string | Employment end date |
| company_name | string | Company name |
| company_address | array of objects | Company address, see Company address object |
| company_logo | uri | Company logo URL |
| company_domain | string | Company website domain |
| employments | array of objects | List of employments, see Employments object |
Provider object
This table contains data for the provider object.| Attribute | Type | Description |
|---|---|---|
| id | string | Provider unique ID |
| name | string | Provider name |
| logo_url | uri | Provider logo url |
Employments object
The Employments object contains the values and descriptions below.| Attribute | Type | Description |
|---|---|---|
| income | string | Income amount not including commission or bonuses, only for income product. Null for employment product |
| income_unit | string | Pay interval for income field, only for income product. YEARLY - Annual income, MONTHLY - Monthly income, WEEKLY - Weekly income, DAILY - Daily income, HOURLY - Hourly income. Null for employment product |
| pay_rate | string | Payment rate per pay cycle, only for income product. Null for employment product |
| pay_frequency | string | Pay frequency, only for income product. M - Monthly, SM - Semi-Monthly, W - Weekly, BW - Bi-Weekly, A - Annually, SA - Semiannually, C - Commission. Null for employment product |
| statements | array of objects | List of paystubs received from a payroll provider, only for income product, see Statements object. Null for employment product |
| annual_income_summary | array of objects | Annual income summary by years, only for income product, see Annual income summary object. Null for employment product |
| bank_accounts | array of objects | List of bank accounts linked to employment, only for income product, see Bank accounts object. Null for employment product |
| w2s | array of objects | List of W-2 forms linked to employment, only for income product, see W2s object. Null for employment product |
| id | string | Unique ID |
| is_active | Boolean | Status of active employment |
| job_title | string | Employee’s job title |
| job_type | string | Employee’s job type. F - Full Time, P - Part Time, S - Seasonal, D - Daily (per diem), C - Contract |
| start_date | date | Employee’s hire date |
| original_hire_date | date | Original hire date |
| end_date | date | Employee’s end date |
| external_last_update | date | Indicates date of last updated employment data from Payroll Provider |
| derived_fields | array of strings | Array of derived fields |
| missing_data_fields | array of strings | List of missing data fields from payroll response |
| manager_name | string | Supervisor’s name |
| profile | object | Person’s identity information |
| company | object | Company object |
| gse_accepted | Boolean | Status of provider eligibility from Fannie Mae Desktop Underwriter |
Statements object
View the table below for information from the Statements object.| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID |
| check_number | string | External ID of pay stub from payroll provider |
| pay_date | date | Pay date |
| net_pay | string | Net pay |
| net_pay_ytd | string | Net pay year to date |
| gross_pay | string | Gross pay |
| gross_pay_ytd | string | Gross pay year to date |
| bonus | string | Bonus |
| commission | string | Commission |
| hours | string | Work hours during pay period |
| basis_of_pay | string | Basis of pay. S - Salary, H - Hourly, D - Daily, W - Weekly |
| period_start | date | Period start |
| period_end | date | Period end |
| regular | string | Regular pay |
| regular_ytd | string | Regular salary year to date |
| other_pay_ytd | string | All other payment year to date |
| bonus_ytd | string | Bonus year to date |
| commission_ytd | string | Commission year to date |
| overtime | string | Overtime pay |
| overtime_ytd | string | Overtime pay year to date |
| other_pay | string | All other payment |
| earnings | array of objects | Earnings for this pay cycle by type |
| earnings_ytd | array of objects | Earnings year to date by type |
| deductions | array of objects | Deductions for pay cycle by type |
| deductions_ytd | array of objects | Deductions year to date by type |
| md5sum | string | MD5 hash value computed based on file content |
| file | uri | Link to pay stub file, format is specified in the content-type |
| derived_fields | array of strings | Array of derived fields |
| missing_data_fields | array of strings | List of missing data fields from payroll response |
Annual income summary object
Find information for the attributes and values of the annual income summary object.| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID |
| year | integer | Income report year |
| regular | string | Regular salary |
| bonus | string | Bonus |
| commission | string | Commission |
| overtime | string | Overtime pay |
| other_pay | string | All other payment forms |
| net_pay | string | Net pay |
| gross_pay | string | Gross pay |
Bank accounts object
The table below covers the attributes within the bank accounts object.| Attribute | Type | Description |
|---|---|---|
| account_number | string | Account number |
| routing_number | string | Routing number |
| account_name | string | User friendly account name |
| account_type | string | Account type. C - Checking account, S - Savings account |
| deposit_type | string | Deposit type. E - Entire paycheck, P - Percentage of the paycheck, A - Fixed amount from the paycheck |
| deposit_value | string | Deposit value |
| bank_name | string | Bank name |
W2s object
The values in this table are for the W-2s object field.| Attribute | Type | Description |
|---|---|---|
| file | uri | Link to W2 report file, format is specified in the content-type |
| md5sum | string | MD5 hash value computed based on file content |
| year | integer | Year |
| wages | string | Wages, tips, other compensation (Section 1) |
| federal_tax | string | Federal income tax withheld (Section 2) |
| social_security_wages | string | Social security wages (Section 3) |
| social_security_tax | string | Social security tax withheld (Section 4) |
| medicare_wages | string | Medicare wages (Section 5) |
| medicare_tax | string | Medicare tax withheld (Section 6) |
| gross_pay | string | Gross pay |
Company object
This table covers values within the company object.| Attribute | Type | Description |
|---|---|---|
| name | string | Company name |
| address | object | Address object |
| phone | string | Company phone number |
| ein | string | Employer Identification Number |
Address object
The values in this table are for the address object of the company.| Attribute | Type | Description |
|---|---|---|
| street | string | Street |
| city | string | City |
| state | string | State |
| zip | string | Zip |
| country | string | Country |
Insurance object
This table’s values contain information for the insurance object.| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID |
| product_type | string | Type of product |
| status | string | Order status |
| suborder_number | string | External ID |
| created_at | string | Date and time when Order was created |
| bridge_token | string | UUID value of bridge_token |
| link_id | string | Link ID for connected account |
| access_token | string | Access token to perform data refresh |
| pdf_report | uri | Verification report file as a PDF |
| data_source | string | Source of data, see values below: payroll - Payroll provider parsing, docs - User uploaded documents, insurance - Insurance data, financial_accounts - Bank data, tax - Tax documents, scoring_attributes - Transactions scoring attributes report |
| provider | array of objects | Payroll or insurance provider, see Provider object |
| is_suspicious | Boolean | Status of data from source marked as suspicious, such as if detecting fraud in uploaded documents or user SSN does not match data |
| provider_id | string | Pre-selected ID of insurance provider |
Financial accounts object
The financial accounts object attributes below have type information and descriptions.| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID |
| product_type | string | Type of product |
| status | string | Order status |
| suborder_number | string | External ID |
| created_at | string | Date and time when Order was created |
| bridge_token | string | UUID value of bridge_token |
| link_id | string | Link ID for connected account |
| access_token | string | Access token to perform data refresh |
| pdf_report | uri | Verification report file as a PDF |
| data_source | string | Source of data, see values below: payroll - Payroll provider parsing, docs - User uploaded documents, insurance - Insurance data, financial_accounts - Bank data, tax - Tax documents, scoring_attributes - Transactions scoring attributes report |
| provider | array of objects | Payroll or insurance provider, see Provider object |
| is_suspicious | Boolean | Status of data from source marked as suspicious, such as if detecting fraud in uploaded documents or user SSN does not match data |
| accounts | array of objects | List of connected accounts, see Accounts object |
Accounts object
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier of account |
| type | string | Parent type of account, e.g. CHECKING or SAVINGS |
| subtype | string | Account subtype, e.g. MONEY_MARKET, HOME_EQUITY |
| mask | string | Masked account number |
Manager object
The manager object attributes below have information on type and description.| Attribute | Type | Description |
|---|---|---|
| string | Email of Order manager | |
| name | string | Name of Order manager |
Loan object
View the table below for type and description of the attributes in the loan object.| Attribute | Type | Description |
|---|---|---|
| loan_number | string | Loan identifier |
| external_id | string | External loan ID (e.g. from POS) |
| originator_name | string | Name of loan originator |
| originator_email | string | Email of loan originator |
| loan_processor_name | string | Name of the loan processor |
| loan_processor_email | string | Email of the loan processor |
Endpoints
The list below are the available endpoints for Orders.- Create an order
- Retrieve an order
- Create a data refresh order
- Update an order
- Cancel an order
- Get list of orders by SSN
- Add new employer to existing order
- Retrieve an order invoice
- Retrieve events for an order
- Retrieve self-certification results