Overview
This documents thejob.contact.scored webhook callback that TitanX sends to your configured endpoint when a contact completes scoring.
Related Documentation:
- Webhooks Guide - Implementation guide with code examples
- Webhook Management API - Endpoints to create and manage webhooks
Webhook Specification
POST job.contact.scored
TitanX sends this POST request to your configured webhook URL when a contact completes scoring.Headers
string
required
HMAC-SHA256 signature (base64) of the request body for verification. Always verify this signature before processing the webhook.Example:
jdoe+XYZ123abc/def456GHI789==string
required
Always
application/jsonstring
TitanX webhook user agentExample:
TitanX-Webhooks/1.0Request Body
object
required
An object containing the scored Contact.
string
required
The type of webhook event. Always
"job.contact.scored" for this callback.number
required
Unix timestamp in milliseconds when the event occurred.Example:
1705318200000string
required
API version for this webhook payload. Currently
"v2".string
required
Unique identifier for this webhook event (UUID format). Use this for idempotency to detect and skip duplicate deliveries.Example:
"7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"Expected Response
Your webhook endpoint should return appropriate HTTP status codes:Retry Policy
Failed deliveries are retried with exponential backoff for up to 3 days.Security Requirements
Signature Verification
All webhook requests include anX-TitanX-Signature header with an HMAC-SHA256 signature.
Algorithm: Base64(HMAC-SHA256(webhook_secret, request_body))
Example Webhook Payload
The flat
phone/phone2–phone5 fields (and their Status/Type/Country/Region variants) are still present in the payload for backward compatibility but are deprecated. New integrations should read phone data from the phones[] array, which is canonical and also surfaces enrichment phones beyond the five-number cap.OpenAPI Definition
The complete OpenAPI 3.1 specification for this webhook callback is available in the openapi.json file under thewebhooks section:
The webhook payload uses the same Contact schema as other API endpoints. This ensures consistency across the API and means any updates to the Contact schema automatically apply to webhook payloads.