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:
- 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, anduser_id. - Deliver the link — Truv sends the
share_urlto the client via email and/or SMS automatically. For agency-managed notifications, suppress Truv emails and send theshare_urlthrough your own messaging system. - Client completes Bridge — The client opens the link, searches for their employer, and connects their payroll account on their own device.
- Receive webhooks — Truv sends an
order-status-updatedwebhook when verification completes. Verify the signature using theX-Webhook-Signheader with HMAC-SHA256. - Retrieve reports — Fetch the VOIE report with
POST /v1/users/{user_id}/reports/or the assets report withPOST /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
Useexternal_user_id to link orders to your agency’s case identifier. Group all household member orders under the same case ID for unified tracking.
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 sameexternal_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