JeriCommerce tracks every meaningful customer interaction on your loyalty program. When you connect the Custom API integration, all events are sent as HTTP POST webhooks to your configured endpoint — giving you full flexibility to build custom automations, sync data, or trigger workflows in any system.

Set up

Add your webhook endpoint in Settings → Integrations → API, toggle the Events feature on, and save. From that moment, each eligible customer event is sent as a POST request to your URL.

Authentication

Every request includes an x-jericommerce-hmac-sha256 header containing a signature encrypted with HMAC-SHA256 using the secret displayed on the integration page. Validate this signature on your server to confirm the request comes from JeriCommerce and prevent spoofing.

The event type is sent in the x-jericommerce-event-type header — use it to route the payload to the right handler.

Delivery failures and retries

Network errors, 408, 429, and 5xx responses are retried with exponential backoff, up to 10 attempts. Permanent client errors such as 401, 403, 404, and 410 fail immediately and are not retried. Make your endpoint idempotent because transient failures can still deliver the same event more than once.

JeriCommerce counts consecutive permanent failures for each API integration. After 10 permanent failures, it turns off the Events feature for that integration to stop sending requests to a broken endpoint. Fix the endpoint, then re-enable Events in the API integration settings. A successful delivery resets the consecutive-failure count.

Base payload

All webhooks share this base structure:

{
  "email": "customer@example.com",
  "id": "event-uuid",
  "customerId": "customer-uuid",
  "campaignId": "campaign-uuid",
  "url": "https://...",
  "browser": "Chrome 120",
  "createdAt": "2026-03-08T12:00:00Z",
  "properties": { ... }
}

Fields marked as optional below may not be present in every event: - campaignId — only when the event is linked to a specific campaign - url and browser — only for web-originated events

All events

Below is the complete list of 18 events sent to your webhook. The Event name column matches the value in the x-jericommerce-event-type header. The Key properties column shows the fields available in the properties object for each event.

Event name When it fires Key properties
Customer
Customer created A new customer is registered (not during initial sync) email, origin, referral, utmCampaign, utmMedium, utmSource, firstName, lastName, phoneNumber
Customer birthday Scheduled daily job checks customer birthdates (runs around 9:00 AM UTC) age (calculated from birthdate)
Customer scanned Customer scans an NFC code at a physical location via Shopify POS Location and device context
Customer tapped Customer taps a VTAP/NFC device Device context
Wallet pass
Wallet pass requested Customer requests a wallet pass download link email, referral, downloadLink, utmCampaign, utmSource, utmMedium
Wallet pass installed Customer adds the pass to Apple Wallet or Google Wallet referral, utmCampaign, utmSource, utmMedium
Wallet pass uninstalled Customer removes the pass from their wallet referral, utmCampaign, utmSource, utmMedium
Loyalty
Balance changed Loyalty points are added or removed (purchases, refunds, manual adjustments) amount, reference, previous balance info, pointsToNextReward, nextRewardName
Tier changed Customer's loyalty tier changes (recalculated daily at 5:00 AM or on balance change) previous (tier name), current (tier name)
Coupons
Coupon assigned A coupon code is assigned to a customer code, header, body, slug, assignedFrom, installUrl
Coupon pass installed Customer adds a coupon pass to Apple/Google Wallet referral, utmCampaign, utmSource, utmMedium
Coupon pass uninstalled Customer removes a coupon pass from their wallet referral, utmCampaign, utmSource, utmMedium
Gift cards
Gift card sent Admin sends a gift card to a customer code, header, body, slug, assignedFrom, installUrl, mailSent
Rewards
Reward redeemable A reward becomes available for the customer to redeem rewardId, rewardLink, rewardTitle, rewardValue, rewardCost, customerRemainingBalance
Reward redeemed Customer redeems a reward rewardId, rewardLink, rewardTitle, code
Reward refunded Admin refunds a previously redeemed reward claimId
Engagement
Wallet click Customer clicks a link inside their wallet pass url, browser, utmCampaign, utmSource ("wallet"), utmMedium ("wallet_pass")
Wallet visit Customer visits/opens their wallet pass web app name, url, browser, referral, utmCampaign, utmSource, utmMedium

You're all set! Your endpoint will now receive real-time data for every customer interaction on JeriCommerce.