Skip to Content
DocsWebhooks

Webhooks

Webhooks notify your application in real time when events occur in Incenta. Configure webhook endpoints per app in the dashboard.

Endpoint configuration

Each webhook requires:

FieldDescription
urlHTTPS endpoint that receives POST requests
eventsArray of event types to subscribe to
secretAuto-generated secret for signature verification

Incenta sends POST requests with Content-Type: application/json.

Payload

Every webhook payload has this structure:

{ "event": "REFERRAL_CREATED", "data": { ... }, "timestamp": "2026-06-18T12:00:00.000Z" }

Signature verification

Each delivery includes an X-Webhook-Signature header. Verify it with your webhook secret:

import crypto from 'node:crypto' function verifyWebhook(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(JSON.stringify(payload)) .digest('hex') return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected)) }

Event types

Referral events

EventTriggered when
REFERRAL_CREATEDA new referral code is generated
REFERRAL_CLICKEDA referral link is clicked
REFERRAL_CONVERTEDA referral converts (completes a desired action)

Reward events

EventTriggered when
REWARD_CREATEDA reward is generated for a conversion
REWARD_CLAIMEDA reward is claimed by the user
REWARD_REDEEMEDA reward is fulfilled/redeemed

Usage events

EventTriggered when
USAGE_LIMIT_EXCEEDEDAn app exceeds its monthly API call limit

Incentive engine events

EventTriggered when
INCENTIVE_EVENT_RECORDEDA user completes an incentive action
INCENTIVE_LEVEL_UPA user reaches a new level
INCENTIVE_BADGE_EARNEDA user earns a badge
INCENTIVE_ITEM_REDEEMEDA user redeems a catalog item
INCENTIVE_ITEM_FULFILLEDA catalog item redemption is fulfilled
INCENTIVE_MILESTONE_REACHEDA user reaches a milestone

Marketplace events

EventTriggered when
MARKETPLACE_PROFILE_CREATEDA business creates a marketplace profile
MARKETPLACE_PROFILE_VERIFIEDA business profile is verified
MARKETPLACE_LISTING_CREATEDA new marketplace listing is published
MARKETPLACE_REDEMPTION_CREATEDA user redeems a marketplace listing
MARKETPLACE_REDEMPTION_FULFILLEDA marketplace redemption is fulfilled
MARKETPLACE_REDEMPTION_CANCELLEDA marketplace redemption is cancelled
MARKETPLACE_PROMOTION_CREATEDA new promotion campaign is created

Delivery and retries

Incenta logs every delivery attempt to a WebhookDelivery record with the payload, response status, and retry count.

Failed deliveries are retried with exponential backoff:

AttemptWait time
160 seconds
25 minutes
315 minutes
460 minutes
5120 minutes

After 5 failed attempts, the delivery is permanently failed.

Dashboard

From the dashboard you can:

  • View per-webhook delivery history
  • Manually send a test webhook payload
  • Enable/disable individual webhooks
  • View the last 5 delivery attempts per webhook
Last updated on