Webhooks

Receive real-time events via signed webhooks. Messages, presence, read receipts — all delivered to your endpoint.

Configure Webhook URL

cURL
curl -X PUT https://api.ixblix.app/api/companies/webhook \
  -H "X-API-Key: smci_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "webhookUrl": "https://mycrm.example.com/ixblix/webhooks" }'

Response includes webhookSecret for verifying signatures. Store it securely — it is returned only once.

Events

EventWhen it fires
COMPANY_ACTIVATEDCompany activated after payment.
MESSAGE_RECEIVEDA contact sent a message.
MESSAGE_DELIVEREDCustomer's device received a company-sent message.
MESSAGE_READCustomer read a company-sent message.
CUSTOMER_JOINEDCustomer opened the link and registered public key.
CONVERSATION_CLOSEDA conversation was closed.
TYPINGCustomer is typing.
STOPPED_TYPINGCustomer stopped typing.
RECORDINGCustomer is recording audio.
CHAT_CLOSEDCustomer closed the chat window.
BALANCE_LOWCompany credit balance is running low.

Event Payload Example

MESSAGE_RECEIVED
{
  "event": "MESSAGE_RECEIVED",
  "companyId": "660f9511-...",
  "conversationId": "880fc844-...",
  "messageId": "bb1if177-...",
  "sentAt": "2026-09-06T12:00:00.000Z"
}

Verifying Signatures

Webhook payloads are signed with HMAC-SHA256. The signature is in the X-Ixblix-Signature header.

TypeScript
import { verifyWebhook, WEBHOOK_SIGNATURE_HEADER } from "@ixblix/sdk-js";

const signature = req.header(WEBHOOK_SIGNATURE_HEADER);
const { event } = verifyWebhook(
  req.body,
  process.env.IXBLIX_WEBHOOK_SECRET,
  signature,
);

Delivery Guarantees

  • Delivery is at-least-once. Deduplicate by X-Ixblix-Event-Id.
  • Failed deliveries retry with exponential backoff (up to 8 attempts).
  • Respond 2xx quickly. SMCI times out after 10 seconds.

Headers

HeaderDescription
X-Ixblix-SignatureHMAC-SHA256 signature.
X-Ixblix-Event-IdUnique delivery ID (for dedup).
X-Ixblix-EventEvent type.
X-Ixblix-Company-IdCompany ID (for multi-tenant receivers).
X-Ixblix-Backend-IdBackend instance ID that generated the event.