Webhooks Reference

Event payload schemas and webhook configuration

Webhooks Reference

Webhooks send HTTP POST requests to your endpoint when events occur in Umbrella, so you do not need to poll the API for changes.

Setup

  1. Go to Dashboard > Settings > Integrations > Webhooks
  2. Click Add Webhook Endpoint
  3. Enter your HTTPS endpoint URL
  4. Select the events you want to receive
  5. Save and store the signing secret (shown only once)

Your endpoint must accept POST requests, return a 2xx status within 30 seconds, and accept application/json.

Event types

Policy events

EventDescription
policy.createdCustomer purchased a warranty
policy.activatedPolicy status changed to active
policy.expiredPolicy reached its end date
policy.cancelledPolicy cancelled (refund or merchant action)
policy.voidedPolicy voided (order cancellation or chargeback)

Claim events

EventDescription
claim.submittedCustomer submitted a claim
claim.approvedMerchant approved a claim
claim.deniedMerchant denied a claim
claim.resolvedClaim fully resolved
claim.evidence_uploadedEvidence attached to a claim

Registration events

EventDescription
registration.submittedProduct registration submitted
registration.approvedRegistration approved
registration.deniedRegistration denied

Warranty events

EventDescription
warranty.createdNew warranty plan created
warranty.updatedWarranty plan modified
warranty.activatedWarranty plan activated
warranty.deactivatedWarranty plan deactivated

Payload structure

Every webhook follows this envelope:

{
  "id": "evt_a1b2c3d4e5f6",
  "type": "claim.submitted",
  "timestamp": "2025-03-15T14:30:00.000Z",
  "apiVersion": "1.3.9",
  "orgId": "org_xyz789",
  "data": { ... }
}
  • id — unique event ID (use for deduplication)
  • type — event type
  • timestamp — when the event occurred
  • data — event-specific payload containing the relevant resource details (policy, claim, registration, etc.)

Signature verification

Every request includes an X-Umbrella-Signature header with an HMAC-SHA256 hash of the request body. Verify this before processing events.

const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload, 'utf8')
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Retry policy

Failed deliveries (non-2xx, timeout, connection error) are retried with exponential backoff:

AttemptDelay
2nd1 minute
3rd5 minutes
4th30 minutes
5th2 hours
6th6 hours
7th (final)12 hours

After 7 failed attempts, the delivery is marked as failed. A 410 Gone response permanently disables the endpoint.

Testing

  1. Go to Dashboard > Settings > Integrations > Webhooks
  2. Click your endpoint, then Send Test Event
  3. Select an event type and review the delivery result

The webhook detail page also shows a log of recent deliveries with status codes and timing.

Note Return 200 immediately and process events asynchronously to avoid timeouts. Use the event id to deduplicate, since retries may deliver the same event more than once.

Book a Demo

See how myUmbrella can transform your warranty program

Choose a Time

Select a convenient time for your personalized demo

ESC

Start typing to search across all content

No results found

Try a different search term