Vinix· docs
Getting started

Webhooks

Subscribe to call, SMS, fax, and object-mutation events. Configure URI, HTTP verb, body format, and retry count per subscription.

Webhooks let your service receive HTTP requests when events happen in Vinix — new calls, calls answered, calls finished, SMS, faxes, and object mutations (account / callflow / device / user / etc.).

The full reference is at Core API → Messaging → Webhooks.

Subscribe

Create a subscription by POSTing a webhook document:

curl -X PUT https://api.vinixglobal.com/v2/accounts/$ACCOUNT_ID/webhooks \
  -H "X-Auth-Token: $VINIX_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "data": {
          "name": "completed-calls",
          "uri": "https://example.com/vinix/hooks",
          "hook": "channel_destroy",
          "http_verb": "post",
          "format": "json",
          "retries": 2
        }
      }'
FieldRequiredNotes
nameyesFriendly name shown in the dashboard
uriyesYour endpoint
hookyesOne of the available hook IDs (see below)
http_verbno — default postget, post, or put
formatno — default form-dataform-data or json
retriesno — default 2Retry the request this many times on failure
enabledno — default trueToggle without deleting
include_subaccountsno — default falseForward sub-account events too
custom_datanoProperties merged into every payload

Available hooks

Query the system for what's available right now:

curl https://api.vinixglobal.com/v2/webhooks \
  -H "X-Auth-Token: $VINIX_AUTH_TOKEN"

The currently-advertised hook IDs:

Hook IDFires when
channel_createA call leg starts (CHANNEL_CREATE)
channel_answerA call leg answers
channel_destroyA call leg ends
channel_bridgeTwo legs bridge
smsSMS is created (coming soon — pairs with the SMS send/receive API)
notificationsA notifications event (voicemail, fax, ports, etc.) is published — modifiers select which type
faxFax status or object change
objectAn object document changes — modifiers pick action (doc_created / doc_edited / doc_deleted) and type (account, callflow, device, faxbox, media, user, vmbox, fax, mailbox_message, call_recording)

The list returned by GET /v2/webhooks is the source of truth — it may expand as the platform evolves.

Payload format

When format is form-data (default) the body is URL-encoded form data. When format is json the body is a JSON object. Exact fields depend on the hook.

Retries

If your endpoint returns a non-2xx response or times out, Vinix retries up to retries times (default 2). Backoff is set by the platform; it's not configurable per-subscription.

Disabling on repeated failure

After sustained failures the platform can disable a webhook and emit an attempts log at /accounts/{id}/webhooks/{webhook_id}/attempts. Re-enable via PATCH /accounts/{id}/webhooks/{webhook_id} with { enabled: true }.

Signature verification is not built into the webhook surface today. If you need HMAC, mTLS, or an IP allowlist for inbound webhook authenticity, that's not currently shipped — use custom_data plus a long secret in the URI as a stopgap, and reach out to [email protected] if signing is a hard requirement for your integration.

On this page