Skip to main content

Webhook Event Guide

This guide explains how our appโ€™s webhook system keeps you updated on key customer, membership, and subscription events.

Updated this week

What is the Webhook Event?

A webhook event is part of our webhook system that keeps you updated on important customer, membership, and subscription events.
When one of these events occurs, our app sends a notification to the URLs you configure, containing event details in JSON format.
This allows your system to react automatically without manually checking for updates.


๐Ÿ”‘ Subscribfy Token

Each store has a unique Subscribfy Token used to verify incoming webhook requests. This token is generated once and cannot be viewed again.

  • โš ๏ธ If you lose it, please regenerate a new token via the Webhooks section in the app settings.

  • ๐Ÿ“Œ Keep your token secure. Itโ€™s used to sign requests for added security.


โš™๏ธ Where to Configure Webhooks

  1. Go to the Settings section of the app.

  2. Click on the Webhooks panel.

  3. Select the category of events you want to receive (e.g., Wallet Pass Events, VIP Events).

  4. Enter one or more URLs (comma-separated) that should receive notifications.

  5. Use the Test Call button to simulate an event.

  6. Click Save to enable the event for the entered URLs.


๐Ÿ“˜ Available Webhook Events

๐Ÿชช Wallet Pass Events

  • Created - Sent when a new wallet is created for a customer.

  • Updated - Sent when wallet content is updated (e.g., new rewards or points).

  • Installed - Sent when the wallet is installed on a customer's mobile device.

  • Removed - Sent when the wallet is removed/uninstalled.

๐ŸŒŸ Membership Events

  • Created - Sent when a new membership contract is created.

  • Updated - Sent when the membership contract is updated.

    • Payment Frequency Changed

    • Next Order Date Changed

  • Paused - Sent when a membership is paused.

  • Reactivated - Sent when a membership is resumed after being paused or cancelled.

  • Cancelled - Sent when a membership is cancelled.

  • Billing Success - Sent when a payment is successfully processed.

  • Billing Failure - Sent when a payment fails.

  • Store Credits Changed - Sent when customerโ€™s store credits are changed.

๐Ÿ“ฆ Product Subscription Events

  • Created - Sent when a new product subscription starts.

  • Updated - Sent when a subscription is changed.

    • Payment Frequency Changed

    • Next Order Date Changed

    • Shipping price/name updated

    • Product updated: price/qty/replaced (swapped)

    • Product added

    • Product removed

  • Paused - Sent when a subscription is paused.

  • Reactivated - Sent when a paused or cancelled subscription is reactivated.

  • Cancelled - Sent when a subscription is cancelled.

  • Billing Success - Sent when a subscription payment succeeds.

  • Billing Failure - Sent when a subscription payment fails.

๐ŸŽ Loyalty Events

  • Rule Created - Sent when a new loyalty rule is created in admin

  • Rule Updated - Sent when a loyalty rule is updated with new settings

  • Tier Created - Sent when a new tier is created

  • Tier Updated - Sent when a tier is updated

  • Coupon Created - Sent when a new coupon is created

  • Coupon Updated - Sent when a coupon is updated

  • Coupon Redeemed โ€“ Sent when a customer redeems a loyalty coupon.

  • Rule Completed โ€“ Sent when a customer completes a loyalty rule and receives a reward.

  • Points Changed โ€“ Sent when a customer earns, spends, or has points adjusted.

  • Tier Changed โ€“ Sent when a customer reaches a new loyalty tier.

  • Tier Lost โ€“ Sent when a customer moves down from a loyalty tier.


๐Ÿ“ฆ Example Payloads

Wallet Created

{
"topic": "wallet_pass/created",
"data": {
"pass_instance": {
"status": "Removed",
"serial_number": "955773794",
"created_at": "1975-07-26T00:00:00.000000Z",
"deleted_at": null
},
"customer": {
"id": "gid://shopify/Customer/424525265",
"email": "vance.rowe@romaguera.com",
"name": "Missouri Blanda DVM",
"loyalty_points": 90.19,
"birth_date": null,
"store_credits": 57.33,
"tier": null
}
}
}

VIP Billing Success

{
"topic": "membership/store_credits_changed",
"data": {
"customer": {
"id": "gid://shopify/Customer/699617320",
"email": "kavon.durgan@hand.com",
"name": "Esperanza Carter",
"loyalty_points": 85.43,
"birth_date": null,
"store_credits": 48.48,
"tier": null
},
"credits_history": {
"message": "Corrupti.",
"value": 10.99,
"type": "Redeem"
}
}
}


๐ŸŒ Endpoint Details

  • Method:POST

  • Content Type:application/json

  • Delivery Format: All events are sent to the URLs provided by you as JSON payloads in the request body.


๐Ÿ” Security

Each webhook request is signed to ensure it's coming from our system.

Signature Header

  • Header:Signature

  • Algorithm: HMAC SHA-256

  • Secret: Your Subscribfy Token

How to Verify

On your server, you can verify the webhook like this:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $payload, $yourSecretToken);
if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit('Invalid signature');
}

Additionally, each request has in headers:

  • x-subscribfy-triggered-at โ†’ the timestamp at which the event occurred

  • x-subscribfy-shop-domain โ†’ your Shopify store domain


๐Ÿงช Testing Events

Each event type in the dashboard includes a Test Call button.
Use this to simulate a real webhook with โ€œdummyโ€ payload and test your integration.


๐Ÿ“ Best Practices & Final Notes

By setting up webhook events in the app, you can ensure your systems receive instant notifications for important customer, membership, subscription, and loyalty activities.
Always keep your Subscribfy Token secure, configure only the events you need, and use the Test Call feature to validate your setup before going live.


โ“ FAQs

Q: Can I see my Subscribfy Token after itโ€™s created?
โ€‹A: No. For security reasons, the token can only be viewed when first generated. If itโ€™s lost, you must regenerate it in the Webhooks section of app settings.

Q: How can I test my webhook integration?
โ€‹A: Use the Test Call button in the dashboard for any event type to send a simulated event payload to your configured URL.

Q: How do I know the webhook came from Subscribfy?
โ€‹A: Each request is signed with HMAC SHA-256 using your Subscribfy Token. You can verify it with the example code provided in the Security section.

Q: What happens if my server is down when an event is sent?
โ€‹A: Your server will not receive the event until itโ€™s back online. Make sure your endpoint is always accessible to avoid missing data.

Q: Can I send webhooks to multiple URLs?
โ€‹A: Yes. Enter multiple URLs separated by commas in the Webhooks configuration.

Did this answer your question?