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.
Add your webhook endpoint in Settings → Integrations → API, toggle the Events feature on, and save. From that moment, every customer event fires a POST request to your URL.
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.
If your endpoint returns a non-2xx response, JeriCommerce retries the delivery up to 10 times with exponential backoff. Make sure your endpoint is idempotent so retries don't create duplicate actions.
All webhooks share this base structure:
{
"email": "customer@example.com",
"id": "event-uuid",
"customerId": "customer-uuid",
"campaignId": "campaign-uuid", // optional
"url": "https://...", // optional
"browser": "Chrome 120", // optional
"createdAt": "2026-03-08T12:00:00Z",
"properties": { ... } // event-specific data
}
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.
| # | Event name | When it fires |
|---|---|---|
| Customer | ||
| 1 | Customer created | A new customer is registered (not during initial sync) |
| 2 | Customer birthday | Scheduled daily job checks customer birthdates (runs around 9:00 AM UTC) |
| 3 | Customer scanned | Customer scans an NFC code at a physical location via Shopify POS |
| 4 | Customer tapped | Customer taps a VTAP/NFC device |
| Wallet pass | ||
| 5 | Wallet pass requested | Customer requests a wallet pass download link |
| 6 | Wallet pass installed | Customer adds the pass to Apple Wallet or Google Wallet |
| 7 | Wallet pass uninstalled | Customer removes the pass from their wallet |
| Loyalty | ||
| 8 | Balance changed | Loyalty points are added or removed (purchases, refunds, manual adjustments) |
| 9 | Tier changed | Customer's loyalty tier changes (recalculated daily at 5:00 AM or on balance change) |
| Coupons | ||
| 10 | Coupon assigned | A coupon code is assigned to a customer |
| 11 | Coupon pass installed | Customer adds a coupon pass to Apple/Google Wallet |
| 12 | Coupon pass uninstalled | Customer removes a coupon pass from their wallet |
| Gift cards | ||
| 13 | Gift card sent | Admin sends a gift card to a customer |
| Rewards | ||
| 14 | Reward redeemable | A reward becomes available for the customer to redeem |
| 15 | Reward redeemed | Customer redeems a reward |
| 16 | Reward refunded | Admin refunds a previously redeemed reward |
| Engagement | ||
| 17 | Wallet click | Customer clicks a link inside their wallet pass |
| 18 | Wallet visit | Customer visits/opens their wallet pass web app |
Each event includes specific data in the properties object. Here is what you can expect for each event type.
| Event | Key properties |
|---|---|
| Customer created | email, origin, referral, utmCampaign, utmMedium, utmSource, firstName, lastName, phoneNumber |
| Customer birthday | age (calculated from birthdate) |
| Customer scanned | Location and device context |
| Customer tapped | Device context |
| Wallet pass requested | email, referral, downloadLink, utmCampaign, utmSource, utmMedium |
| Wallet pass installed | referral, utmCampaign, utmSource, utmMedium |
| Wallet pass uninstalled | referral, utmCampaign, utmSource, utmMedium |
| Balance changed | amount, reference, previous balance info |
| Tier changed | previous (tier name), current (tier name) |
| Coupon assigned | code, header, body, slug, assignedFrom, installUrl |
| Coupon pass installed | referral, utmCampaign, utmSource, utmMedium |
| Coupon pass uninstalled | referral, utmCampaign, utmSource, utmMedium |
| Gift card sent | code, header, body, slug, assignedFrom, installUrl, mailSent |
| Reward redeemable | rewardId, rewardLink |
| Reward redeemed | rewardId, rewardLink, rewardTitle |
| Reward refunded | claimId |
| Wallet click | url, browser, utmCampaign, utmSource ("wallet"), utmMedium ("wallet_pass") |
| Wallet visit | 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.