Skip to main content
Create verification orders from your caseworker system and send clients a link to complete verification on their own device. Truv delivers the link via email or SMS, tracks completion, and returns verified data through webhooks. For clients who apply by phone or in person, see Offline & Contact Center.
Integration pattern: Hosted Orders | Products: VOIE, VOE, VOA | Demo: Case Worker Portal

Get started

1

Run the demo

Clone and run the Case Worker Portal demo to see the full caseworker-to-client flow working locally.
Open http://localhost:5173, select Public Sector > Case Worker Portal, add a test client with an email address, and send a verification request. The demo tracks order status and displays reports when the client completes Bridge.See full setup instructions for ngrok and environment configuration.
2

Understand the API flow

The demo follows this sequence:
  1. Create an order — Your server sends client PII (name, email, phone) and selected products to POST /v1/orders/. The response includes order_id, share_url, and user_id.
  2. Deliver the link — Truv sends the share_url to the client via email and/or SMS automatically. For agency-managed notifications, suppress Truv emails and send the share_url through your own messaging system.
  3. Client completes Bridge — The client opens the link, searches for their employer, and connects their payroll account on their own device.
  4. Receive webhooks — Truv sends an order-status-updated webhook when verification completes. Verify the signature using the X-Webhook-Sign header with HMAC-SHA256.
  5. Retrieve reports — Fetch the VOIE report with POST /v1/users/{user_id}/reports/ or the assets report with POST /v1/users/{user_id}/assets/reports/.
3

Review the code

Each step maps to a specific file in the demo. Use these as reference when building your integration.

Public Sector-specific configuration

Case ID tracking

Use external_user_id to link orders to your agency’s case identifier. Group all household member orders under the same case ID for unified tracking.
Pass template_id to apply your agency’s customized template (branding, messaging, landing page). Pass locale to set the client’s language — see threshold languages for all supported values.

Notification delivery

Choose how the client receives the verification link:
For agency-managed notifications, use the short_share_url from the order response for SMS and the full share_url for email.

Household members

Create a separate order for each household member. Use the same external_user_id to group all orders under one case. Truv sends each member their own verification link.

Follow-up tasks

When a client doesn’t complete verification after receiving a link, configure follow-up notifications to send automatic reminders. For caseworker-initiated workflows, the caseworker can also manually resend the link from the Dashboard or trigger a new notification through the API.

Next steps

Customer Portal

Embed verification in the client-facing portal

Offline & Contact Center

Verify clients who apply by phone or in person

Renewals

Re-verify clients at recertification

Document Processing

Extract income data from uploaded documents

Hosted Orders Guide

Full implementation guide for hosted order creation and notification delivery

Sandbox Testing

Test with government-specific scenarios