Articles on: FAQs and More

Webhook Details Sent to Delivery URL

This article assumes you have already set up webhooks in Nector. If not, read this first: Webhooks on Nector


Nector sends webhooks to a URL you choose whenever something happens in your loyalty program, for example a customer earns points, gets a coupon or moves to a new VIP tier. Each webhook is an HTTP POST request with a JSON body that carries the details: how many points, which coupon, the customer's new balance, and so on.


This article lists every webhook Nector sends, when it is sent, what each property means, and how to verify and handle the requests.


How webhooks work


1. The request. Nector sends a POST request to your webhook URL. The body is a JSON object with the webhook data. The topic, for example walletreward_create, is in the x-nector-topic header. If you set a webhook prefix in Nector, it is added in front with a dot: a prefix of nector gives nector.walletreward_create.


2. Every webhook has two groups of properties:

  • Common properties describe your business and the customer (see Common properties).
  • Event specific properties describe the record that triggered the webhook, such as the coupon, order or points reward. They depend on the topic.


3. Nested values stay nested. Extra details are sent inside a meta object, for example meta.lead_name is the customer's name. In this article, nested properties are written with a dot, like meta.coin_reward.


4. Empty values are sent as an empty string "". A top-level value that is missing, null or false arrives as "". A 0 stays 0. Values inside meta are sent as they are, so they can be null, true or false.


5. Amounts can arrive as text. Some amounts are sent as strings, for example "849.54". Convert them to numbers before you do any maths.


6. Links are click-tracked. Links such as the store URL, referral link, coupon link and order link go through Nector's tracking link (https://collectfront.nector.io/track-communication/...). Clicks are counted in your Nector analytics, and the customer is sent on to the real page.


7. Custom properties. Any custom properties you add to the webhook settings in Nector are also included in every webhook.


Request headers


Every webhook request has these headers.


Header

Description

Sample value

x-nector-topic

The webhook topic, with your prefix if you set one.

walletreward_create

x-nector-webhook-hmac

Signature of the request body, so you can check it came from Nector (see Verifying a webhook).

5f1c0a…e93b

x-nector-webhook-hmac-algo

Algorithm used for the signature.

sha256

x-nector-webhook-secret

SHA-256 hash of your webhook secret, as hex.

9b74c9…f1a2

x-nector-webhook-secret-algo

Algorithm used for the secret hash.

sha256

x-nector-delivery-id

Unique ID of this delivery attempt. A retry gets a new ID.

3f2a9c…7d10

x-nector-timestamp

Unix timestamp, in seconds.

1791532860

x-source

Always unix.

unix

content-type / accept

Always application/json.

application/json

x-nector-webhook-<name>

Any custom headers you added in Nector. A header named api-key arrives as x-nector-webhook-api-key.

your-value


All webhooks at a glance


Webhooks are split into two groups. Start with the essential ones. Use the others when you need them.


Essential webhooks


These cover the moments most stores act on: points rewarded or redeemed, a new coupon, points about to expire, a referral reward, a review request, a VIP tier change, credits about to expire, an abandoned checkout reminder, and a membership change.


Topic

When it is sent

Properties

walletreward_create

Loyalty points are rewarded to the customer. Can also be triggered when points are redeemed, imported, reverted, adjusted or expired.

Points rewarded

coupon_create

A coupon is issued to the customer, for example after redeeming points or as a referral reward.

Coupon

coinexpirynotify_create

Reminder: some of the customer's points are about to expire.

Points expiry

referrernotify_create

Sent to the referrer when the referral is completed and they receive their reward.

Referral

reviewrequest_create

Review request, sent after an order so the customer can leave a review.

Review request

viptier_create

The customer moves up or down a VIP tier.

VIP tier

creditexpirynotify_create

Reminder: some of the customer's credits are about to expire.

Credit expiry

abandonedcheckoutrequest_create

Reminder: the customer has an abandoned checkout. It may include a recovery coupon.

Abandoned checkout

vipmembership_create

The customer's paid or VIP membership changes.

Membership


Other webhooks


Topic

When it is sent

Properties

unusedwalletcoinrequest_create

Reminder: the customer has unused points.

Points rewarded

unusedcouponrequest_create

Reminder: the customer has a coupon they haven't used.

Coupon

review_create

A customer submits a product review.

Review

review_update

A review is updated, for example approved or featured.

Review

coupon_update

A coupon is updated, for example when it is used.

Coupon

lead_create

A new customer is added to your loyalty program.

Customer

lead_update

Anything about the customer changes: their details, points or credit balance, VIP tier, membership and so on.

Customer

creditwalletreward_create

Credits are rewarded to the customer. Can also be triggered when credits are redeemed, imported, reverted, adjusted or expired.

Credits rewarded

order_create

An order is placed by a customer.

Order

order_update

An order changes, for example it is paid, delivered, cancelled or refunded.

Order

qna_create

A customer asks a product question.

Q&A

qna_update

A product question is updated, for example answered.

Q&A

viptier_update

A VIP tier change record is updated.

VIP tier

vipmembership_update

A membership change record is updated.

Membership

abandonedcheckout_create

A customer leaves a checkout without paying.

Abandoned checkout

abandonedcheckout_update

An abandoned checkout is updated.

Abandoned checkout

referral_create

A referral is created: a friend arrived through a customer's referral link or code.

Referral

referral_update

A referral is updated, for example completed.

Referral

refereenotify_create

Sent to the referred friend when they receive their referral reward.

Referral

incompletereferralrequest_create

Reminder to the referred friend, who has not yet completed the referral (has not placed a qualifying order).

Referral

wallettransaction_update

A points reward or redemption is updated.

Points rewarded

creditwallettransaction_update

A credit reward or redemption is updated.

Credits rewarded


Who is the "customer" in a webhook? The common user_* properties always describe the customer the webhook is about. In referral webhooks that is the person named in the list above: the referrer or the referred friend.


Common properties sent on every webhook


Business


Property

Description

Sample value

business_name

Your business name, as set in Nector.

Acme Store

business_coin_name

What you call your loyalty points.

Acme Coins

business_currency_symbol

Symbol for your store currency.

₹

business_currency_code

Your store currency.

INR

business_uri

Link to your website.

https://collectfront.nector.io/track-communication/...

nector_business_uri

Link to your website that also opens the Nector rewards widget when the page loads.

https://collectfront.nector.io/track-communication/...


Customer


Sent when the webhook is about a customer.


Property

Description

Sample value

user_name

Customer name.

Priya Sharma

user_email

Customer email.

priya@example.com

user_mobile_with_country_code

Mobile number with a leading +.

+919876543210

user_mobile

Mobile number with the country code and no +.

919876543210

user_country

Customer's country code.

ind

user_dob

Birthday, as day and month (DD-MM).

25-08

user_full_dob

Full date of birth (YYYY-MM-DD).

1994-08-25

user_doa

Anniversary, as day and month (DD-MM).

14-02

user_full_doa

Full anniversary date (YYYY-MM-DD).

2019-02-14

user_gender

male, female or other.

female

user_tags

Customer tags synced from your store: lowercase and comma-separated.

vip,newsletter

user_customer_id

The customer's ID on your store platform, with the platform as a prefix.

shopify-7029064106277

user_internal_tags

Tags Nector manages for this customer, for example a custom earning rate or a block on referrals.

logic::nector-referral-block


Loyalty


Property

Description

Sample value

user_available_balance

The customer's current points balance.

1250

user_balance (deprecated)

The customer's current points balance. Use user_available_balance instead.

1250

user_available_credit_balance

The customer's current credit balance. 0 if credits are not in use.

300

user_tier

The customer's current VIP tier. Empty if they have no tier.

gold

user_membership

The customer's current membership. Empty if they have none.

prime

user_total_saving

Total amount the customer has saved through your loyalty program.

850

user_total_referral

Number of friends this customer has referred successfully.

3


Referral


Property

Description

Sample value

user_referral_code

The customer's own referral code, to share with friends.

2nfcdqo46x

user_new_referral_link

The customer's referral link (recommended).

https://collectfront.nector.io/track-communication/...

user_referral_link

The older format of the referral link. Use user_new_referral_link for new templates.

https://collectfront.nector.io/track-communication/...

user_referral_coupon_code

Despite the name, this is the referral link, the same value as user_new_referral_link. Kept for older templates.

https://collectfront.nector.io/track-communication/...



Event specific properties


The properties below come in addition to the common properties above. Each record also has its Nector IDs, so you can link webhooks together: for example, the lead_id on an order is the _id of the customer.


Customer webhooks


Topics: lead_create, lead_update


lead_update is sent on every change to the customer or their balances, so it can arrive often. If you only care about some properties, compare them with the values you stored last time.


These properties hold the same values as the matching common properties. For example, email is the same as user_email, available is the same as user_available_balance and tier is the same as user_tier. There are two exceptions:

  • name: if the customer has no name, user_name is Customer while name is empty.
  • mobile: it is the number as stored on the customer's profile, so it may not include the country code, while user_mobile always includes it.


Property

Description

Sample value

name

Customer name.

Priya Sharma

email

Customer email.

priya@example.com

mobile

Customer mobile, as stored.

9876543210

country

Customer's country code.

ind

available

Current points balance.

1250

available_credit

Current credit balance.

300

tier

Current VIP tier.

gold

membership

Current membership.

prime

referral_code

The customer's own referral code.

2nfcdqo46x

is_enrolled

true if the customer is enrolled in your loyalty program.

true

accept_email

true if the customer agreed to receive marketing emails.

true

accept_mobile

true if the customer agreed to receive marketing SMS or WhatsApp messages.

true

dob / full_dob

Birthday (DD-MM) and full date of birth (YYYY-MM-DD).

25-08 / 1994-08-25

doa / full_doa

Anniversary (DD-MM) and full anniversary date (YYYY-MM-DD).

14-02 / 2019-02-14

gender

male, female or other.

female

tags

Customer tags synced from your store.

vip,newsletter

customer_id

The customer's ID on your store platform.

shopify-7029064106277

email_status

Whether the email address has been checked: pending, valid, invalid or verified.

pending

internal_tags

Tags Nector manages for this customer.

keep::nector-referred-customer

role

primary for a normal customer, or secondary for a duplicate profile linked to another one.

primary

_id

The customer's ID in Nector. Other webhooks call it lead_id.

19c794f5-5ba6-4bf9-b30b-8666ae71d324

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

wallet_id

ID of the customer's points wallet.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

creditwallet_id

ID of the customer's credit wallet. Empty if credits are not in use.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

eid

SHA-256 hash of the customer's email, as hex. Lets you match customers without sharing the email.

206f22037f5bbea617f616fdfe3f6438...

mid

SHA-256 hash of the customer's mobile number (as stored), as hex.

206f22037f5bbea617f616fdfe3f6438...

created_at

When the customer was added to Nector.

2026-05-26T07:44:03.862Z

updated_at

When the customer was last updated.

2026-09-12T10:21:45.120Z


Points rewarded webhooks


Topics: walletreward_create, wallettransaction_update, unusedwalletcoinrequest_create


These webhooks are sent whenever a customer's points change: mainly when points are rewarded, but also when they are redeemed, imported, reverted, adjusted or expired. Use operation and type to tell them apart. For example, to act only when customers earn points, check for operation = cr and type = reward.


Property

Description

Sample value

amount

Number of points added or taken away.

100

operation

cr = points added to the customer, dr = points taken from the customer.

cr

type

Why the points changed:
• reward: earned
• redeem: spent on a reward or discount
• revert: taken back, for example after an order was cancelled or refunded
• adjust: manually added or removed by your team
• expiry: expired
• import: imported from another system

reward

title

Short description, as shown to the customer.

Reward for order #1028

description

Longer description, if any.

Thanks for shopping with us!

closing_balance

The customer's points balance right after this change.

1250

transacted_at

Date the points count from. Points expiry is calculated from this date.

2026-09-12T10:21:45.120Z

_id

ID of this points transaction.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

trigger_id

ID of the earning rule. Its name is in meta.trigger_name.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

activity_id

ID of the Nector activity that created this record, if any.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

parent_type / parent_id

What the points are linked to. parent_type is orders, referrals, reviews, viptiers, vipmemberships, offers, coupons or publiccoupons, and parent_id is that record's ID. For example, points earned on an order have parent_type orders and the order's _id.

orders / 8decb740-15ce-46e9-88c7-60455b8c9340

hash

Unique fingerprint Nector uses to block duplicate transactions.

98f49c894265d162dd8d2e1dbee0fffe9fc4445d

meta.trigger_name

Name of the earning rule that rewarded these points.

Order Reward

meta.trigger_slug

Fixed identifier of that earning rule.

trigger_ordercreate_reward

meta.lead_name

Customer name. If the name is missing, a partly hidden email or mobile.

Priya Sharma

meta.unusedwalletcoinrequest_count

How many unused-points reminders have been sent for these points.

1

meta.unusedwalletcoinrequest_sentat

When the last unused-points reminder was sent.

2026-09-20T04:30:00.000Z

created_at / updated_at

When the points were rewarded (or redeemed, etc.) or last updated.

2026-09-12T10:21:45.120Z


Credits rewarded webhooks


Topics: creditwalletreward_create, creditwallettransaction_update


Credits work like points but hold a money value. These webhooks are sent whenever a customer's credits change: mainly when credits are rewarded, but also when they are redeemed, imported, reverted, adjusted or expired. Use operation and type to tell them apart. For example, to act only when customers earn credits, check for operation = cr and type = reward. The customer's current credit balance is also in the common property user_available_credit_balance.


Property

Description

Sample value

amount

Credit amount added or taken away.

100

operation

cr = credits added to the customer, dr = credits taken from the customer.

cr

type

Why the credits changed:
• reward: earned
• redeem: spent on a reward or discount
• revert: taken back, for example after an order was cancelled or refunded
• adjust: manually added or removed by your team
• expiry: expired
• import: imported from another system

reward

title

Short description, as shown to the customer.

Reward for order #1028

description

Longer description, if any.

Thanks for shopping with us!

closing_balance

The customer's credit balance right after this change.

300

transacted_at

Date the credits count from. Credit expiry is calculated from this date.

2026-09-12T10:21:45.120Z

_id

ID of this credit transaction.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

trigger_id

ID of the earning rule. Its name is in meta.trigger_name.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

activity_id

ID of the Nector activity that created this record, if any.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

parent_type / parent_id

What the credits are linked to. parent_type is orders, offers, coupons or giftcards, and parent_id is that record's ID. For example, credits earned on an order have parent_type orders and the order's _id.

orders / 8decb740-15ce-46e9-88c7-60455b8c9340

hash

Unique fingerprint Nector uses to block duplicate transactions.

98f49c894265d162dd8d2e1dbee0fffe9fc4445d

meta.trigger_name

Name of the earning rule that rewarded these credits.

Order Reward

meta.trigger_slug

Fixed identifier of that earning rule.

trigger_ordercreate_reward

meta.lead_name

Customer name. If the name is missing, a partly hidden email or mobile.

Priya Sharma

created_at / updated_at

When the credits were rewarded (or redeemed, etc.) or last updated.

2026-09-12T10:21:45.120Z


Coupon webhooks


Topics: coupon_create, coupon_update, unusedcouponrequest_create


Property

Description

Sample value

value

The coupon code the customer enters at checkout.

TWOOFFVERYGOOD

name

Coupon name.

₹200 Off coupon

description

Coupon conditions.

Minimum cart amount of ₹499

fiat_class

percent = percentage discount, amount = flat amount off.

amount

fiat_value

Size of the discount: a percentage or an amount, depending on fiat_class.

200

fiat_target

cart = discount on the order, shipping = discount on shipping.

cart

minimumcart_amount

Minimum cart value needed to use the coupon. Empty if there is no minimum.

499

formatted_expire

Expiry date and time in a readable format (UTC).

October 24th 2026, 1:27:50 pm

expire

When the coupon expires.

2026-10-24T13:27:50.397Z

redirect_link

Link that opens your store with this coupon already applied.

https://collectfront.nector.io/track-communication/...

status

issued = ready to use, redeemed = already used, unavailable = can no longer be used, marked_for_deletion = being removed.

issued

used

Number of times the coupon has been used.

0

type

How the coupon was created:
• manual_redeem: the customer redeemed points for it in the rewards widget
• method_redeem: created through the API or an integration
• checkoutcheckbox_redeem: points applied with the checkout checkbox
• checkoutpage_redeem: points applied on the checkout page
• shopifypos_redeem: points applied at Shopify POS
• broadcast_referral_redeem: referral coupon

manual_redeem

reference_coupon_source

Platform where the coupon was created.

shopify

_id

ID of this coupon in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

offer_id

ID of the reward in your Nector rewards catalogue that the coupon was redeemed for, if any.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

trigger_id

ID of the earning rule. Its name is in meta.trigger_name.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

activity_id

ID of the Nector activity that created this record, if any.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

parent_type / parent_id

What the coupon is linked to: orders, referrals, reviews, viptiers, vipmemberships or offers, and that record's ID.

referrals / b08d3718-e8e8-48d5-a19a-e0af8ddeb6f4

reference_coupon_id

The coupon's ID on your store platform.

1453766443301::17459183722277

meta.coin_spent

Points the customer spent to get this coupon. 0 if it was free.

500

meta.credit_spent

Credits the customer spent to get this coupon.

0

meta.valid_for_same_lead

true if only this customer can use the coupon.

true

meta.combine_with_order_discount

true if the coupon can be combined with other order discounts.

true

meta.combine_with_product_discount

true if the coupon can be combined with product discounts.

true

meta.combine_with_shipping_discount

true if the coupon can be combined with shipping discounts.

true

meta.trigger_name / meta.trigger_slug

The rule that issued the coupon, for example a referral reward.

Referrer Reward / trigger_referrer_reward

meta.lead_name

Customer name.

Priya Sharma

meta.unusedcouponrequest_count

How many unused-coupon reminders have been sent.

1

meta.unusedcouponrequest_sentat

When the last unused-coupon reminder was sent.

2026-09-20T04:30:00.000Z

created_at / updated_at

When the coupon was created or last updated.

2026-09-24T13:27:50.397Z


Order webhooks


Topics: order_create, order_update


Property

Description

Sample value

reference_order_name

Order number as shown in your store.

#1028

fiat_amount

Order total.

849.54

fiat_discount

Total discount on the order.

10

fiat_tax

Tax on the order.

129.59

currency_code

Order currency.

inr

status

Order status: pending, processing, completed, cancelled, refunded or unknown.

pending

financial_status

Payment status: pending, paid, partially_paid, refunded or partially_refunded.

paid

delivery_status

Delivery status: pending, delivered, partially_delivered or undelivered.

pending

payment_medium

prepaid = paid online, manual = cash on delivery or another manual payment.

prepaid

order_redirect_link

Link to the customer's order status page.

https://collectfront.nector.io/track-communication/...

order_driven_by

If Nector helped bring in this order, how it did so. For example nector_code = a Nector coupon was used, nector_ref_code = a referral coupon, nector_email / nector_whatsapp = a Nector message. Empty if Nector played no part.

nector_code

recent_fiat_amount

Latest order total after any partial refunds.

849.54

recent_fiat_discount

Latest discount amount after any changes.

10

payment_source

Payment gateway used.

razorpay

tags

Order tags synced from your store.

gift,express

utm_source / utm_medium / utm_campaign

UTM parameters from the visit that led to the order.

instagram / social / diwali_sale

reference_order_id

Order ID on your store platform.

5372084388133

reference_order_source

Platform the order came from: shopify, woocommerce, magento, custom_website or a POS (for example wondersoft_pos).

shopify

reference_order_channel

online for website orders, or the POS name for in-store orders (for example shopify_pos).

online

product_lines

List of products in the order. Each item has name, quantity, price, amount, discount, reference_product_id, reference_variant_id and reference_product_source. The exact fields can vary by store platform.

[{"name": "The Multi-location Snowboard", "quantity": 1, "price": 849.54, ...}]

_id

ID of this order in Nector.

8decb740-15ce-46e9-88c7-60455b8c9340

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

reference_cart_token

Cart token from your store, if any.

abae330db82ddbd690280a6bedaa0e71

meta.coin_reward

Points the customer earns for this order.

85

meta.coin_reward_disbursed

Points already given for this order. Can be lower than meta.coin_reward if the reward is paid after delivery.

0

meta.coin_spent

Points the customer redeemed on this order.

100

meta.credit_spent

Credits the customer redeemed on this order.

0

meta.total_saving

Amount the customer saved on this order through your loyalty program.

10

meta.redirect_link

Same as order_redirect_link.

https://collectfront.nector.io/track-communication/...

meta.lead_name

Customer name.

Priya Sharma

meta.currency_code

Order currency, as sent by your store.

INR

meta.completed_at / meta.delivered_at

When the order was completed or delivered.

2026-09-15T08:00:00.000Z

meta.reference_created_at

When the order was created on your store platform.

2026-09-12T10:21:40.000Z

meta.reviewrequest_count

How many review requests have been sent for this order.

1

meta.buyer_shipping_city

Shipping city. Other shipping details are also sent as meta.buyer_shipping_*.

Bengaluru

created_at / updated_at

When the order was added to Nector or last updated.

2026-09-12T10:21:45.120Z


Order webhooks also contain discount_lines, note_lines, reward_lines, revert_lines and meta.order_reward_condition. These are for internal use and you can ignore them.


Review request webhook


Topic: reviewrequest_create


Sent after an order so the customer can review the products they bought. This webhook has the same properties as order webhooks, plus the review link:


Property

Description

Sample value

order_review_link

Link to the page where the customer can review the products in this order.

https://websdkreviewcollectpage.nector.io/?murl=...&review_id=...


Review webhooks


Topics: review_create, review_update


Property

Description

Sample value

rating

Star rating from 1 to 5.

5

description

Review text.

Loved the quality, will buy again!

name

Reviewer name, as shown on the review.

Priya S.

reference_product_name

Product name.

The Multi-location Snowboard

reference_product_redirect_link

Link to the product page.

https://yourstore.com/products/the-multi-location-snowboard

is_approved

true if the review is approved and published.

true

is_verified

true if the reviewer is a verified buyer.

true

is_featured

true if you have featured the review.

"" (no)

image_count

Number of photos attached.

2

video_count

Number of videos attached.

0

reply_to

Your reply to the review, if any.

Thank you, Priya!

reference_review_channel

Where the review came from: website, store, import, automation, or another review app such as judgeme, yotpo, loox, okendo, stamped or zoko.

website

reference_product_id

Product ID on your store platform.

8198530236709

reference_product_slug

Product handle or URL slug.

the-multi-location-snowboard

reference_product_source

Platform the product is from.

shopify

posted_at

When the review was posted.

2026-05-26T07:46:19.936Z

_id

ID of this review in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

order_id

Nector ID of the order the review is for, if any.

8decb740-15ce-46e9-88c7-60455b8c9340

meta.coin_reward

Points given as a reward for this review, if any.

50

meta.coupon_reward

Name of the coupon given as a reward for this review, if any.

10% Off coupon

created_at / updated_at

When the review was added to Nector or last updated.

2026-05-26T07:46:19.936Z


Product question webhooks


Topics: qna_create, qna_update


Property

Description

Sample value

question

The question.

Is this waterproof?

answer

Your answer. Empty until answered.

Yes, fully waterproof.

name

Name of the person who asked.

Priya S.

reference_product_name

Product name.

The Multi-location Snowboard

reference_product_redirect_link

Link to the product page.

https://yourstore.com/products/the-multi-location-snowboard

is_approved

true if the question is approved and published.

true

reference_product_id

Product ID on your store platform.

8198530236709

reference_product_slug

Product handle or URL slug.

the-multi-location-snowboard

reference_product_source

Platform the product is from.

shopify

posted_at

When the question was posted.

2026-05-26T07:46:19.936Z

_id

ID of this question in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

created_at / updated_at

When the question was added or last updated.

2026-05-26T07:46:19.936Z


VIP tier webhooks


Topics: viptier_create, viptier_update


Property

Description

Sample value

formatted_tier

The new tier name, formatted for display.

Silver

tier

The customer's new tier (internal name).

silver

direction

up = upgraded, down = downgraded.

up

tier_changed_at

When the customer entered this tier.

2026-01-09T13:25:14.323Z

tier_end_at

When this tier will expire, if your tiers have an expiry period.

2027-01-09T13:25:14.323Z

_id

ID of this tier change in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

meta.lead_name

Customer name.

Priya Sharma

created_at / updated_at

When the tier change was recorded or last updated.

2026-01-09T13:25:14.323Z


Membership webhooks


Topics: vipmembership_create, vipmembership_update


Property

Description

Sample value

formatted_membership

The new membership name, formatted for display.

Prime

membership

The customer's new membership (internal name).

prime

direction

up = joined or upgraded, down = left or downgraded.

up

membership_changed_at

When the customer got this membership.

2026-01-09T13:25:14.323Z

membership_end_at

When this membership will expire, if memberships have an expiry period.

2027-01-09T13:25:14.323Z

_id

ID of this membership change in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

meta.lead_name

Customer name.

Priya Sharma

created_at / updated_at

When the membership change was recorded or last updated.

2026-01-09T13:25:14.323Z


Abandoned checkout webhooks


Topics: abandonedcheckout_create, abandonedcheckout_update, abandonedcheckoutrequest_create


Property

Description

Sample value

reference_checkout_redirect_link

Link that takes the customer back to their checkout.

https://collectfront.nector.io/track-communication/...

reference_checkout_coupon_redirect_link

Same link, with the recovery coupon (if any) already applied.

https://collectfront.nector.io/track-communication/...

fiat_amount

Checkout total.

1349

gross_amount

Cart value before discounts.

1499

fiat_discount

Discount applied.

150

fiat_tax

Tax.

205.78

currency_code

Checkout currency.

INR

product_lines

List of products in the checkout, in the same format as on orders.

[{"name": "The Multi-location Snowboard", "quantity": 1, ...}]

email / mobile / country

Contact details entered at checkout.

priya@example.com / 9876543210 / ind

completed_at

When the checkout was completed, if the customer came back and paid.

""

_id

ID of this checkout in Nector.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

lead_id

The customer's ID in Nector (the _id in customer webhooks).

19c794f5-5ba6-4bf9-b30b-8666ae71d324

coupon_id

Nector ID of the recovery coupon, if one was created.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

reference_checkout_id

The checkout's ID on your store platform.

36598434726181

reference_checkout_token

The checkout token from your store.

c1-7a8b9c0d1e2f3a4b5c6d7e8f

meta.abandonedcheckoutrequest_count

How many abandoned-checkout reminders have been sent.

1

meta.buyer_accepts_marketing

true if the customer agreed to receive marketing at checkout.

true

meta.lead_name

Customer name.

Priya Sharma

created_at / updated_at

When the checkout was recorded or last updated.

2026-09-12T10:21:45.120Z


If a recovery coupon was created for the checkout, the webhook also contains the coupon reward properties (coupon_name, coupon_value and so on).


Referral webhooks


Topics: referral_create, referral_update, refereenotify_create, referrernotify_create, incompletereferralrequest_create


In referral properties, referred_by_* is the referrer (the customer who shared their link or code) and referred_to_* is the referred friend.


Property

Description

Sample value

status

pending = the friend has not yet completed the referral, completed = the referral is done.

completed

referred_by_name

Referrer's name.

Priya Sharma

referred_to_name

Referred friend's name.

Rahul Verma

referral_mode

How the friend was referred: link or code.

link

_id

ID of this referral in Nector.

b08d3718-e8e8-48d5-a19a-e0af8ddeb6f4

entity_id

Your business ID in Nector. The same on every webhook.

449ebf4f-f3e2-471a-a21f-47d8e148f259

referred_by_lead_id

Referrer's customer ID in Nector.

d273a765-3bfa-424e-bfd1-69ebccf69b2c

referred_to_lead_id

Referred friend's customer ID in Nector.

a309e29d-2260-43c7-be4c-f790cde4d62c

referred_by_eid / referred_by_mid

SHA-256 hashes of the referrer's email and mobile.

206f22037f5bbea617f616fdfe3f6438...

referred_to_eid / referred_to_mid

SHA-256 hashes of the friend's email and mobile.

206f22037f5bbea617f616fdfe3f6438...

order_id

Nector ID of the friend's order that completed the referral, if any.

80072df7-544c-43cc-b375-c248ad2430e9

meta.referred_by_coupon_id / meta.referred_to_coupon_id

Nector IDs of the coupons given to the referrer and the friend, if the reward was a coupon.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

meta.referred_by_wallettransaction_id / meta.referred_to_wallettransaction_id

Nector IDs of the points transactions for the referrer and the friend, if the reward was points.

4f1d2c9e-8a7b-4c3d-9e2f-1a2b3c4d5e6f

meta.referred_by_coupon_reward

Name of the coupon given to the referrer.

₹200 Off coupon

meta.referred_by_coin_reward

Points given to the referrer (when the referrer's reward is points).

500

meta.referred_to_coupon_reward

Name of the coupon given to the referred friend.

₹200 Off coupon

meta.referred_to_coin_reward

Points given to the referred friend (when the friend's reward is points).

100

meta.order_fiat_amount

Value of the friend's order that completed the referral.

1499

meta.incompletereferralrequest_count

How many incomplete-referral reminders have been sent.

1

meta.incompletereferralrequest_sentat

When the last incomplete-referral reminder was sent.

2026-01-12T04:30:00.000Z

created_at / updated_at

When the referral was created or last updated.

2026-01-09T13:25:14.323Z


Friend's order properties


These are sent when the referral is linked to an order placed by the referred friend.


Property

Description

Sample value

order_name

Order number as shown in your store.

#1042

order_amount

Order total.

1499

order_discount

Discount on the order.

200

order_tax

Tax on the order.

228.66

order_currency_code

Order currency.

inr

order_status

Order status (same values as in order webhooks).

pending

order_financial_status

Payment status.

paid

order_delivery_status

Delivery status.

pending

order_created_at

When the order was placed, in a readable format.

January 9th 2026, 1:25:14 pm

order_redirect_link

Link to the order status page.

https://collectfront.nector.io/track-communication/...


Reward properties (coupon or points)


These are sent in refereenotify_create, referrernotify_create, incompletereferralrequest_create and abandonedcheckoutrequest_create. They describe the reward the customer received, and only one of the two sets is sent.


If the reward is a coupon:


Property

Description

Sample value

coupon_value

The coupon code.

NECPRI8A5HZQLOMIDAS

coupon_name

Coupon name.

₹200 Off coupon

coupon_description

Coupon conditions.

No minimum cart amount required

coupon_fiat_class

percent or amount.

amount

coupon_fiat_value

Size of the discount.

200

coupon_fiat_target

cart or shipping.

cart

coupon_minimumcart_amount

Minimum cart value needed. Empty if there is no minimum.

""

coupon_formatted_expire

Expiry date and time in a readable format (UTC).

January 24th 2026, 1:27:50 pm

coupon_expire

When the coupon expires.

2026-01-24T13:27:50.397Z

coupon_redirect_link

Link that opens your store with the coupon applied.

https://collectfront.nector.io/track-communication/...


If the reward is points:


Property

Description

Sample value

wallettransaction_amount

Points given.

500

wallettransaction_title

Title of the points reward.

Referral Reward

wallettransaction_description

Description, if any.

""

wallettransaction_closing_balance

Points balance right after the reward.

31546

wallettransaction_operation

Rewarded, Redeemed or Activity Performed.

Rewarded

wallettransaction_type

Type of points change (see points rewarded webhooks).

reward


Points expiry reminder webhook


Topic: coinexpirynotify_create


Property

Description

Sample value

wallet_expiry_amount

Number of points about to expire.

500

wallet_expiry_formatted_estimated_on

Date the points expire, in a readable format.

November 7th 2026, 11:23:07 am

wallet_expiry_estimated_on

Approximate date the points expire (reminder date plus one month, week or day).

2026-11-07T11:23:07.692Z

wallet_expiry_unit

How far ahead this reminder is: month, week or day.

month

wallet_expiry_notify_generated_on

When this reminder was created.

2026-10-07T11:23:07.692Z


Credit expiry reminder webhook


Topic: creditexpirynotify_create


Property

Description

Sample value

credit_expiry_amount

Credit amount about to expire.

300

credit_expiry_formatted_estimated_on

Date the credits expire, in a readable format.

October 14th 2026, 11:23:07 am

credit_expiry_estimated_on

Approximate date the credits expire (reminder date plus one month, week or day).

2026-10-14T11:23:07.692Z

credit_expiry_unit

How far ahead this reminder is: month, week or day.

week

credit_expiry_notify_generated_on

When this reminder was created.

2026-10-07T11:23:07.692Z



Verifying a webhook


You can check that a request really came from Nector in two ways.


Simple check. Hash your webhook secret with SHA-256, as hex, and compare it with the x-nector-webhook-secret header. If they match, the request was sent with your secret.


Signature check. The x-nector-webhook-hmac header is an HMAC-SHA256 signature, as hex, made with your webhook secret. To check it:

  1. Take the top-level properties of the JSON body and sort them by name.
  2. Turn them into a URL-encoded query string, the way Node.js querystring.stringify does.
  3. Sign that string with HMAC-SHA256 using your webhook secret, and compare the result with the header.


In Node.js:


const crypto = require("crypto");
const querystring = require("querystring");

function is_valid_nector_webhook(body, hmac_header, webhook_secret) {
const sorted_body = Object.keys(body)
.sort((a, b) => a.localeCompare(b))
.reduce((result, key) => ({ ...result, [key]: body[key] }), {});

const signature = crypto.createHmac("sha256", webhook_secret)
.update(querystring.stringify(sorted_body))
.digest("hex");

return signature === hmac_header;
}


Use the parsed JSON body exactly as you received it. Don't add, remove or change any property before checking.


Responding and retries


  • Reply with any 2xx status code within 10 seconds.
  • If your server returns an error, or doesn't reply in time, Nector retries twice more: about 1 minute later, then about 2 minutes after that.
  • A 401 or 403 reply is not retried.
  • Because of retries, you may get the same webhook more than once. The delivery ID changes on every attempt, so to spot duplicates use the record's _id together with the topic and updated_at.

Updated on: 15/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!