Webhooks

Webhooks let your integration receive real-time notifications as events happen across callouts, responders, customers, and subscriptions — instead of polling. You register an endpoint URL and the events you care about, and AURA sends a POST with the event payload whenever one occurs.

How it works

  1. Stand up an HTTPS endpoint that accepts POST requests.
  2. Register the endpoint and the events you want — in the AURA portal under Integration → Webhooks, via the API, or by asking your AURA contact. Each customer source has one active webhook; registering again replaces it.
  3. Receive a payload for each subscribed event. Every payload is a JSON object with a message field naming the event, plus the relevant entity (callout, customer, or subscription).

Event types

Subscribe to any combination of the events below.

Callouts

EventFires whenTriggered by
NEW_CALLOUTA callout is createdYour integration
RESPONDER_MANUALLY_DISPATCHEDA controller manually dispatches a responderAURA
RESPONDER_ACKNOWLEDGED_CALLOUTA responder is auto-dispatched (with ETA)AURA
RESPONDER_ARRIVED_ON_SCENEA responder arrives on sceneAURA
RESPONDER_COMPLETEDA responder completes the responseAURA
CALLOUT_OWNEDA controller takes ownership of the calloutAURA
CALLOUT_EVENTS_CHANGEDThe callout’s event stream changes (e.g. a chat message)Either
CALLOUT_SOFT_CANCELLED_BY_CUSTOMERThe customer soft-cancelsYour integration
CALLOUT_NO_LONGER_REQUIRES_RESPONSEThe callout is cancelled / responder stood downYour integration
CALLOUT_CLOSEDThe callout is closedAURA

RESPONDER_ACKNOWLEDGED_CALLOUT_WITH_ETA is deprecated — existing registrations still work, but use RESPONDER_ACKNOWLEDGED_CALLOUT instead.

Subscriptions

EventFires when
SUBSCRIPTION_CREATEDA subscription is activated
SUBSCRIPTION_UPDATEDA subscription changes (e.g. dependants)
SUBSCRIPTION_CANCELLEDA subscription is cancelled
SUBSCRIPTION_CANCELLED_FAILEDA cancellation fails

Customers

EventFires when
CREATED_CUSTOMERA customer is created
CREATED_CUSTOMER_TERMSA customer accepts white-label terms and conditions
UPDATED_CUSTOMERA customer is updated
UPDATED_CUSTOMER_WITH_SUBSCRIPTIONA customer is updated together with a subscription

Registering with an event name outside this list is rejected with 400.

Payload shape

Each delivery is a JSON object keyed by message (the event name) plus the entity it concerns. For example, a callout event:

1{
2 "message": "NEW_CALLOUT",
3 "callout": {
4 "id": 81290,
5 "status": "created",
6 "responseTypeId": 1,
7 "customerId": 184569,
8 "customer": { "id": 184569, "name": "...", "mobile": "..." },
9 "location": { "latitude": "-26.10911", "longitude": "28.053037" }
10 }
11}

Responder-related callout events additionally carry an incidentInformation block with dispatch details (responder, supplier, response type, classification, and timestamps for dispatch / arrival / completion).

Registering an endpoint

You can manage your webhook two ways:

  • AURA portal — under Integration → Webhooks, set the endpoint URL, the events to subscribe to, and any custom headers.
  • API — see Register a webhook.

The endpoint URL must be HTTPS. Each customer source has a single active webhook, so registering again replaces the previous configuration.

1{
2 "url": "https://your-server.example.com/api/webhooks/events",
3 "events": ["NEW_CALLOUT", "CALLOUT_CLOSED"],
4 "method": "webhook",
5 "headers": { "authorization": "Bearer <your-token>" }
6}

Securing deliveries

  • Custom headers — any headers you register (e.g. an Authorization token) are included on every delivery, so your endpoint can authenticate the caller.

  • IP allowlisting — webhook requests are sent from fixed AURA IP addresses. Allowlist them if your endpoint restricts inbound traffic:

    EnvironmentSource IPs
    Staging34.247.224.1, 54.194.225.114, 54.78.115.129
    Production54.220.143.196, 34.251.163.85, 34.246.93.167

Handling deliveries

  • Respond quickly with a 2xx and process asynchronously.
  • Be idempotent — the same event may arrive more than once.
  • Key on message + the entity id to deduplicate and route.

Deliveries are attempted once. If your endpoint is down or returns an error, the event is not retried — don’t treat the webhook stream as a complete ledger. Reconcile by polling Get a callout for any incident where the expected events did not arrive.

Testing

Point a webhook at a mock endpoint (for example webhook.site) during development, then trigger events through the API — create a customer, create a callout, activate a subscription — and confirm the payloads arrive. Switch to your real endpoint once verified.

Note that the staging Responder Simulator advances callout state with direct data changes and does not emit webhook events. Use API-driven actions (create, cancel) to exercise your webhook receiver, and poll the callout to observe simulator-driven transitions.