Webhooks are HTTP POST requests sent automatically by Truv when events occur during the verification flow. They track Task status changes, Order updates, Link connections, and data object creation, keeping your system in sync as data progresses through processing stages.Documentation Index
Fetch the complete documentation index at: https://truv.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Configure webhook endpoints separately for Sandbox and Production.
Set up webhooks
Configure webhook endpoints in the Truv Dashboard:- Navigate to Development → Webhooks
- Enter your endpoint URL
- Save the configuration
Test webhooks
- Use Truv Bridge in the Dashboard Emulator to trigger webhook events in sandbox
- Use tools like ngrok to expose a local development server:
Webhook payload structure
All webhook requests include these standard fields:Headers
| Header | Value |
|---|---|
User-Agent | Truv-Webhook-Service/2.0 |
X-WEBHOOK-SIGN | HMAC-SHA256 signature for verification |
HTTP header names are case-insensitive per RFC 7230.
Body Fields
Every webhook payload includes these common fields:| Field | Description |
|---|---|
webhook_id | Unique identifier for this webhook request |
event_type | The event classification (see Events Reference) |
event_created_at | Timestamp when the event occurred |
updated_at | Timestamp for sequencing events |
user_id | Associated Truv user identifier |
template_id | Associated template, if applicable (nullable) |
Example Payload
Event types
Truv sends webhooks for these categories of events. See the dedicated event reference pages for full payloads and field descriptions.Order Events
order-status-updated, order-refresh-failedTask Events
task-status-updated and all data object events (employment-created, statements-created, etc.)Account Link Events
link-connected, link-disconnected, link-deletedSecurity
Every webhook includes anX-WEBHOOK-SIGN header with an HMAC-SHA256 signature. Verify it against the raw request body using your Access Secret before processing the event.
See Webhook Security for verification code examples in Python, Node.js, Go, Ruby, and C#, along with IP allowlisting and delivery behavior details.
Timeouts and retries
| Behavior | Detail |
|---|---|
| Timeout | Your endpoint must respond with a 2xx status within 10 seconds |
| Redirects | 3xx responses are followed |
| Retries | 4xx and 5xx responses trigger up to 3 retry attempts at 30-second intervals |
| Blocking | After 3 consecutive failures, webhook delivery to your endpoint is blocked |
Event ordering
Webhooks are delivered in event order. For example,full_parse fires before done. However, network conditions can cause delays in delivery.
Handle webhooks
Best Practices
Respond within 10 seconds
Respond within 10 seconds
Return a
200 response quickly. Process the webhook data asynchronously if needed:Handle duplicates with idempotency
Handle duplicates with idempotency
Webhooks may be delivered more than once. Use the
webhook_id field for idempotency:Always verify signatures
Always verify signatures
Never process a webhook without verifying the
X-WEBHOOK-SIGN header. See Security above.Track the task-status-updated event
Track the task-status-updated event
The
task-status-updated event is the primary signal for monitoring connection progress. Key statuses to handle:done: All data has been downloaded and processed. Fetch verification reports.login_error: Authentication failed. The user may need to retry.mfa_error: MFA verification failed.config_error: Provider configuration issue.
Troubleshooting
| Issue | Solution |
|---|---|
| Not receiving webhooks | Verify your URL is configured under Development → Webhooks for the correct environment |
| Signature verification failing | Ensure you’re using your Access Secret (not Client ID) and hashing the raw body |
| Timeouts | Respond with 200 immediately, process asynchronously |
| Blocked endpoint | Check for 3+ consecutive failures. Fix the issue and reconfigure the endpoint |
Endpoints
Use the endpoints below to manage webhooks programmatically.Next steps
Connection Lifecycle
Understand task status flow and error states