POST request to your HTTPS endpoint with the complaint details, so you can react immediately - pause a campaign, scrub a number, or open an internal ticket - instead of waiting to discover it in the console.
This is a webhook you receive, not a REST endpoint you call. It is activated manually by the Vobiz team - there is no self-serve API to register it yet. See UCC Management for the regulatory background on complaints and NDNC.
Activate the webhook
To turn on notifications, email your webhook URL and shared secret to ndnc@vobiz.ai, keeping piyush@vobiz.ai and goutham@vobiz.ai in CC.Prepare what you'll send
| # | What | Example |
|---|---|---|
| 1 | Webhook URL - your HTTPS endpoint that will receive complaints | https://hooks.yourcompany.com/vobiz-complaints |
| 2 | Shared secret - a string you generate, used to sign requests | your_secret_key_here |
Email the Vobiz team
Send both values to ndnc@vobiz.ai, with piyush@vobiz.ai and goutham@vobiz.ai in CC.
Email ndnc@vobiz.ai (CC piyush, goutham)
Opens a pre-addressed email - just fill in your webhook URL and shared secret.
How it works
When a complaint is processed against your account, Vobiz sends aPOST request to your webhook URL with the complaint details in JSON. All requests originate from a single, dedicated IP address.
Vobiz outbound IP:
15.207.141.89 - whitelist this on your firewall if your infrastructure requires it.| Property | Value |
|---|---|
| Method | POST |
| Content-Type | application/json |
| Signature header | X-VoBiz-Signature |
| Timeout | 5 seconds |
| Origin IP | 15.207.141.89 |
Payload structure
Every webhookPOST contains a JSON body in this format:
Example payload
Field reference
| Field | Type | Description |
|---|---|---|
accountName | string | Your registered account name with Vobiz. |
totalComplaints | integer | Total number of complaints in this notification. |
complaints | array | List of individual complaint records. |
complaints[].urn | string | Unique system reference number assigned by the regulator. |
complaints[].did | string | The DID (phone number) the complaint is against, without country code. |
complaints[].complainantNumber | string | The complainant’s phone number. |
complaints[].complaintDate | string | Date the complaint was filed (YYYY-MM-DD). |
complaints[].description | string | Short description / category of the complaint. |
complaints[].accountId | string | Your Vobiz account ID. |
complaints[].accountName | string | Your Vobiz account name. |
complaints[].accountEmail | string | Your registered email on the Vobiz account. |
Verifying the signature
Every request includes anX-VoBiz-Signature header - an HMAC-SHA256 signature computed over the request body using your shared secret. Always verify it before processing any payload.
How the signature is computed
Responding to a webhook
Your endpoint must return an HTTP2xx status (e.g. 200 OK) within 5 seconds to acknowledge receipt. If your processing takes longer, acknowledge immediately and handle the data asynchronously in the background.
Choosing a strong shared secret
Your shared secret is the key used to sign every notification. Keep it confidential - treat it like a password.- Use a randomly generated string of at least 32 characters.
- Generate one with
openssl rand -hex 32. - Do not reuse passwords or other credentials as the secret.
- Never expose it in client-side code or public repositories.
Setup checklist
Send your details to Vobiz
Email your webhook URL and shared secret to ndnc@vobiz.ai, CC piyush@vobiz.ai and goutham@vobiz.ai.