Transactions
event_points_rejected
This event will occur whenever a user's or users pending points are rejected in moderation.
Request
We send events to your webhook's URL with POST and a JSON body. Events are batched: a request can carry several events of this type. See Receiving Webhooks for batch sizes and retries, and Webhook Event Signatures to verify the request.
Headers
| Header | Description |
|---|---|
x-zinrelo-signature | The HMAC-SHA512 hex digest of <request body>:<nonce>, computed with the webhook's secret key. See Webhook Event Signatures. |
nonce | The Unix time, in milliseconds, at which the request was signed. It's part of the signed message. |
Payload
| Field | Type | Description |
|---|---|---|
request_id | string | A unique identifier of this webhook request. |
total_count | integer | The number of events in the batch (events). |
created_date | string | When the webhook request was created, as MM/DD/YYYY HH:MM:SS. |
events | array of object | The events in this batch. |
events[].id | string | The unique identifier of the event. Use it to detect events you already processed. |
events[].event_type | string | The type of event. One of event_points_rejected. |
events[].data | object | The event's data. |
events[].data.member_info (optional) | object | The member_info object of the event's data. Which fields are present depends on the event. |
events[].data.member_info.id (optional) | string | The internal ID generated by TrueLoyal. |
events[].data.member_info.first_name (optional) | string | The first name of the member. |
events[].data.member_info.last_name (optional) | string | The last name of the member. |
events[].data.member_info.email_address (optional) | string | The email address of the member. |
events[].data.member_info.address (optional) | object | |
events[].data.member_info.address.city (optional) | string | Member's city. |
events[].data.member_info.address.country (optional) | string | Member's country. |
events[].data.member_info.address.line2 (optional) | string | The member address. |
events[].data.member_info.address.line1 (optional) | string | The member address. |
events[].data.member_info.address.state (optional) | string | Member's state. |
events[].data.member_info.address.postal_code (optional) | string | Member's postal code. |
events[].data.member_info.phone_number (optional) | string | The phone number of the member. |
events[].data.member_info.member_id (optional) | string | The unique identifier of the member defined by an Admin. |
events[].data.member_info.member_status (optional) | string | The current status of the member- ‘active’ , ‘blocked’, ‘opted_out’. ‘active’ member is the one accumulating loyalty points and has access to rewards and earning opportunities. ‘blocked’ member is prohibited from participating in the program. ‘opted_out’ member is the one who has chosen to opt out of the loyalty program. |
events[].data.member_info.member_tags (optional) | array or string | The tags assocaited with a member. |
events[].data.member_info.number_of_purchases (optional) | integer | The number of purchases made by a member. |
events[].data.member_info.number_of_redemptions (optional) | integer | The number of redemptions made by a member. |
events[].data.member_info.birthdate (optional) | string | Birthdate of the loyalty member. Expected date format: MM/DD/YYYY or MM/DD Irrespective of the year passed, 1904 will be set as a default value. |
events[].data.member_info.churn_status (optional) | string | |
events[].data.member_info.enrollment_date (optional) | string | The date on which the member joined the loyalty program. |
events[].data.member_info.last_modified_date (optional) | string | The most recent date on which a member's profile was updated. |
events[].data.member_info.first_purchase_date (optional) | string | The first purchase date of the member. |
events[].data.member_info.instagram_handle (optional) | string | The instagram handle of the member. |
events[].data.member_info.last_purchase_date (optional) | string | The last purchase made by a member. |
events[].data.member_info.anniversary_date (optional) | string | The anniversary date of the member. Expected date format: MM/DD/YYYY or MM/DD In case, where a year has not been passed the default year will be set as 1904. |
events[].data.member_info.twitter_handle (optional) | string | The twitter handle of the member. |
events[].data.member_info.preferred_language (optional) | string | The preferred language of the member. |
events[].data.member_info.deprecated_fields (optional) | object | |
events[].data.member_info.deprecated_fields.user_id (optional) | string | |
events[].data.member_info.tier_info (optional) | object | |
events[].data.member_info.tier_info.tier_qualification_units (optional) | integer | |
events[].data.member_info.tier_info.current_period_start (optional) | string | The start date of the current tier cycle. |
events[].data.member_info.tier_info.loyalty_tier_name (optional) | string | The name of the current tier. |
events[].data.member_info.tier_info.qualified_points (optional) | integer | The qualified points for tier calculation. |
events[].data.member_info.tier_info.loyalty_tier_id (optional) | string | The unique tier ID stored in TrueLoyal. |
events[].data.member_info.tier_info.current_period_end (optional) | string or null | The end date of current tier cycle. |
events[].data.member_info.tier_info.qualifid_points (optional) | integer | |
events[].data.member_info.lifetime_points_earned (optional) | integer | The total points earned in a member's account since he joined the program. |
events[].data.member_info.lifetime_points_expired (optional) | integer | The total points expired from a member's account since he joined the program. |
events[].data.member_info.available_points (optional) | integer | The avaliable points of the member. |
events[].data.member_info.points_onhold (optional) | integer | |
events[].data.member_info.lifetime_points_deducted (optional) | integer | The total points deducted from a member's account since he joined the program. |
events[].data.member_info.lifetime_points_redeemed (optional) | integer | The total points redeemed from a member's account since he joined the program. |
events[].data.member_info.number_of_referral_purchase (optional) | integer | |
events[].data.member_info.number_of_referral_share (optional) | integer | |
events[].data.member_info.referral_URL (optional) | string | The unique referral url of the member. |
events[].data.member_info.custom_attributes (optional) | object | |
events[].data.member_info.custom_attributes.Nationality (optional) | string | |
events[].data.member_info.custom_attributes.City_Name (optional) | string | |
events[].data.member_info.custom_attributes.Marital_Status (optional) | string | |
events[].data.member_info.custom_attributes.Income_Source (optional) | string | |
events[].data.member_info.custom_attributes.Age_In_Years (optional) | string | |
events[].data.member_info.custom_attributes.Gender_Identity (optional) | string | |
events[].data.member_info.custom_attributes.Graduation_Date (optional) | string | |
events[].data.member_info.custom_attributes.Number of purchases (optional) | integer | |
events[].data.member_info.custom_attributes.Favourite Destination (optional) | string | |
events[].data.member_info.custom_attributes.Last traveled (optional) | string | |
events[].data.member_info.custom_attributes.Gender (optional) | string | |
events[].data.member_info.custom_attributes.List of favourite place (optional) | array of string | |
events[].data.member_info.custom_attributes.Review date (optional) | string | |
events[].data.member_info.custom_attributes.traveled destination (optional) | string | |
events[].data.member_info.custom_attributes.Preferences (optional) | string | |
events[].data.member_info.custom_attributes.Subscription Plan (optional) | string | |
events[].data.member_info.custom_attributes.Active Camera (optional) | integer | |
events[].data.member_info.revenue (optional) | integer | |
events[].data.member_info.aov (optional) | number or null | |
events[].data.member_info.deleted_date (optional) | null | |
events[].data.member_info.referral_code (optional) | string | The unique referral code of the member. |
events[].data.transaction_info (optional) | object | The transaction_info object of the event's data. Which fields are present depends on the event. |
events[].data.transaction_info.id (optional) | string | The unique internal ID generated by TrueLoyal. |
events[].data.transaction_info.transaction_type (optional) | string | The type of transaction- award, redeem or deduct. |
events[].data.transaction_info.member_id (optional) | string | The unique identifier of the member defined by an Admin. |
events[].data.transaction_info.transaction_attributes (optional) | object | |
events[].data.transaction_info.transaction_attributes.order_id (optional) | string | The unique ID associated with the placed order. This is system defined transaction attribute for "made_a_purchase" activity. |
events[].data.transaction_info.transaction_attributes.coupon_code (optional) | string | The coupon code used for the purchase of the product. This is system defined transaction attribute for "made_a_purchase" activity. |
events[].data.transaction_info.transaction_attributes.reason (optional) | string | The reason for making transaction. |
events[].data.transaction_info.transaction_attributes.tags (optional) | array or string | |
events[].data.transaction_info.transaction_attributes.products (optional) | array of object | |
events[].data.transaction_info.transaction_attributes.products[].product_id (optional) | string | |
events[].data.transaction_info.transaction_attributes.products[].product_price (optional) | string | |
events[].data.transaction_info.transaction_attributes.products[].product_title (optional) | string | |
events[].data.transaction_info.transaction_attributes.products[].product_category (optional) | string | |
events[].data.transaction_info.transaction_attributes.products[].product_quantity (optional) | string | |
events[].data.transaction_info.transaction_attributes.products[].product_url (optional) | string or null | |
events[].data.transaction_info.transaction_attributes.products[].is_excluded (optional) | boolean | |
events[].data.transaction_info.transaction_attributes.products[].bonus_multiplier (optional) | integer | |
events[].data.transaction_info.transaction_attributes.products[].product_points_per_quantity (optional) | integer | |
events[].data.transaction_info.transaction_attributes.products[].product_image_url (optional) | string | |
events[].data.transaction_info.transaction_attributes.source_of_redemption (optional) | string | |
events[].data.transaction_info.transaction_attributes.pow_01 (optional) | null | |
events[].data.transaction_info.transaction_attributes.order_subtotal (optional) | integer | |
events[].data.transaction_info.transaction_attributes.order_total (optional) | integer | |
events[].data.transaction_info.transaction_attributes.coupons (optional) | string | |
events[].data.transaction_info.transaction_attributes.currency (optional) | string | |
events[].data.transaction_info.approver_details (optional) | object | |
events[].data.transaction_info.approver_details.approver_id (optional) | null | |
events[].data.transaction_info.approver_details.approver_name (optional) | string | |
events[].data.transaction_info.approved_date (optional) | string | The date and time on which the transaction will be approved. |
events[].data.transaction_info.last_modified_date (optional) | string | The most recent date on which a transaction was updated. |
events[].data.transaction_info.created_date (optional) | string | The date and time on which the transaction was created. |
events[].data.transaction_info.award_info (optional) | object | These data are system-defined for award transactions. |
events[].data.transaction_info.award_info.activity_id (optional) | string | The unique ID of the activity assigned by TrueLoyal. |
events[].data.transaction_info.award_info.activity_name (optional) | string | The activity name stored with TrueLoyal. |
events[].data.transaction_info.award_info.points_status (optional) | string | The status of the points- 'pending', 'approved', 'rejected', 'auto_approved', 'auto_rejected', 'expired' or 'exhausted.' |
events[].data.transaction_info.award_info.points (optional) | integer | The number of points awarded for performing the activity. |
events[].data.transaction_info.points_expiration_date (optional) | string | The date and time when points expire. |
events[].data.transaction_info.auto_approval_date (optional) | string | The date and time on which the transaction will be auto-approved. It can be configured through the Admin Console > Activities > Settings > Approval Type. This is a system-defined field for award transactions. |
events[].data.transaction_info.reward_info (optional) | object | These data are system-defined for reward transactions. |
events[].data.transaction_info.reward_info.reward_id (optional) | string | The unique reward ID assigned by TrueLoyal. |
events[].data.transaction_info.reward_info.reward_name (optional) | string | The name of the reward stored in TrueLoyal. |
events[].data.transaction_info.reward_info.points_status (optional) | string | The status of the points- 'redeemed,' redemption_pending' or 'redemption_cancelled.' |
events[].data.transaction_info.reward_info.points (optional) | integer | The number of points redeemed by the member. |
events[].data.transaction_info.reward_info.coupon_code (optional) | string | The coupon code used for redemption. |
events[].data.transaction_info.reward_info.reward_link (optional) | null | The link to flexi reward. Instead of asking members to choose from a fixed set of rewards, loyalty points can be used as a currency and members can redeem any number of points they have from their account for a corresponding discount on their transactions. |
events[].data.transaction_info.deduct_info (optional) | object | These data are system-defined for deduct transactions. |
events[].data.transaction_info.deduct_info.points_status (optional) | string | The status of the points- 'redeemed,' redemption_pending' or 'redemption_cancelled.' |
events[].data.transaction_info.deduct_info.points (optional) | integer | The number of points redeemed by the member. |
events[].data.transaction_info.expiry_info (optional) | object | |
events[].data.transaction_info.expiry_info.points_status (optional) | string | The status of the points- 'redeemed,' redemption_pending' or 'redemption_cancelled.' |
events[].data.transaction_info.expiry_info.points (optional) | integer | The number of points redeemed by the member. |
Example
{
"request_id": "638705ba3541f8000e30bd4d",
"total_count": 2,
"events": [
{
"id": "638705bb87c5ca4b159b8373",
"event_type": "event_points_rejected",
"data": {
"member_info": {
"id": "63805f96d34967000b5111ed",
"first_name": "John",
"last_name": "Doe",
"email_address": "johndoe@gmail.com",
"address": {
"city": "Palo Alto",
"country": "US",
"line2": "530 Lytton Ave",
"line1": "Suite #200",
"state": "CA",
"postal_code": "94301"
},
"phone_number": "+1-6507017759",
"member_id": "john.doe23",
"member_status": "active",
"member_tags": [
"rejected",
"pushedback",
"purchaserejected"
],
"number_of_purchases": 0,
"number_of_redemptions": 0,
"birthdate": "01/31/1900 00:00:00",
"enrollment_date": "11/25/2022 00:00:00",
"last_modified_date": "11/25/2022 00:00:00",
"first_purchase_date": "11/25/2022 00:00:00",
"instagram_handle": "www.instagram.com/john",
"last_purchase_date": "11/25/2022 00:00:00",
"anniversary_date": "11/25/2022 00:00:00",
"twitter_handle": "www.twitter.com/john",
"preferred_language": "English",
"deprecated_fields": {
"user_id": "abgjdyo2"
},
"tier_info": {
"tier_qualification_units": 100,
"current_period_start": "03/01/2022 00:00:00",
"loyalty_tier_name": "Silver",
"qualified_points": 0,
"loyalty_tier_id": "zrl_silver",
"current_period_end": "02/28/2023 23:59:59"
},
"referral_code": "K1718C2A",
"number_of_referral_purchase": 0,
"number_of_referral_share": 0,
"lifetime_points_earned": 100,
"lifetime_points_expired": 0,
"available_points": 100,
"points_onhold": 10,
"lifetime_points_deducted": 0,
"lifetime_points_redeemed": 0,
"referral_URL": "https://zinrelo.com/ref/K1718C2A",
"custom_attributes": {
"City_Name": "Paris",
"Marital_Status": "Married",
"Income_Source": "Business",
"Age_In_Years": "35",
"Gender_Identity": "Male",
"Graduation_Date": "03/12/2000 00:00:00"
},
"revenue": 0,
"aov": 0,
"deleted_date": null
},
"transaction_info": {
"id": "63806091d34967000a27a8c0",
"transaction_type": "award",
"member_id": "john.doe23",
"transaction_attributes": {
"order_id": "N17987314111q1ewy28971",
"coupon_code": "A1346BC",
"reason": "THird",
"tags": [
"purchasereturned",
"rejected"
],
"pow_01": null,
"products": [
{
"product_id": "9801198",
"product_price": "50",
"product_title": "RelaxedFitSweatshirt-Mintgreen",
"product_category": "Essentials",
"product_quantity": "1",
"product_url": null,
"product_image_url": "https://cdn.shopify.com/s/files/1/1617/6377/products/220px-Far_Cry_5_boxshot_1024x1024@2x.jpg?v=1528970252"
},
{
"product_id": "98012",
"product_price": "25",
"product_title": "Sweatshirt",
"product_category": "Sale",
"product_quantity": "2",
"product_url": null,
"product_image_url": "https://cdn.shopify.com/s/files/1/1617/6377/products/220px-Far_Cry_5_boxshot_1024x1024@2x.jpg?v=1528970252"
}
],
"order_subtotal": 1,
"order_total": 110,
"coupons": "a",
"currency": "$"
},
"approver_details": {
"approver_id": null,
"approver_name": "System"
},
"approved_date": "",
"last_modified_date": "11/30/2022 07:26:50",
"created_date": "11/25/2022 06:28:32",
"award_info": {
"activity_id": "made_a_purchase",
"activity_name": "Purchase on website",
"points_status": "rejected",
"points": 1
},
"points_expiration_date": "12/05/2022 06:28:32",
"auto_approval_date": ""
}
}
},
{
"id": "638705bb87c5ca4b159b8374",
"event_type": "event_points_rejected",
"data": {
"member_info": {
"id": "63805f2ad34967000b5111e2",
"first_name": "Anna",
"last_name": "Scott",
"email_address": "annascott286@gmail.com",
"address": {
"city": "Superior",
"country": "US",
"line2": "",
"line1": "1000 S. McCaslin Blvd., Suite 301",
"state": "CO",
"postal_code": "15702"
},
"phone_number": "+82-1234567890",
"member_id": "anna.scott286",
"member_status": "active",
"member_tags": [
"maderejected",
"rejected"
],
"number_of_purchases": 0,
"number_of_redemptions": 0,
"birthdate": "01/31/1900 00:00:00",
"enrollment_date": "11/25/2022 00:00:00",
"last_modified_date": "11/25/2022 00:00:00",
"first_purchase_date": "11/25/2022 00:00:00",
"instagram_handle": "www.instagram.com/anna",
"last_purchase_date": "12/12/2022 00:00:00",
"anniversary_date": "11/25/2022 00:00:00",
"twitter_handle": "www.twitter.com/anna",
"preferred_language": "English",
"deprecated_fields": {
"user_id": "abgjdyo2"
},
"tier_info": {
"tier_qualification_units": 100,
"current_period_start": "03/01/2022 00:00:00",
"loyalty_tier_name": "Silver",
"qualified_points": 0,
"loyalty_tier_id": "zrl_silver",
"current_period_end": "02/28/2023 23:59:59"
},
"referral_code": "K171XD9M",
"number_of_referral_purchase": 0,
"number_of_referral_share": 0,
"lifetime_points_earned": 100,
"lifetime_points_expired": 0,
"available_points": 100,
"points_onhold": 10,
"lifetime_points_deducted": 0,
"lifetime_points_redeemed": 0,
"referral_URL": "https://zinrelo.com/ref/K171XD9M",
"custom_attributes": {
"City_Name": "Paris",
"Marital_Status": "Married",
"Income_Source": "Service",
"Age_In_Years": "45",
"Gender_Identity": "Female",
"Graduation_Date": "15/12/1989 00:00:00"
},
"revenue": 0,
"aov": 0,
"deleted_date": null
},
"transaction_info": {
"id": "638060e7d34967000a27a8d9",
"transaction_type": "award",
"member_id": "anna.scott286",
"transaction_attributes": {
"order_id": "N17987314111q1eswy28971",
"coupon_code": "a",
"reason": "THird",
"tags": [
"reject",
"rejectionmade"
],
"pow_01": null,
"products": [
{
"product_id": "9801198",
"product_price": "50",
"product_title": "RelaxedFitSweatshirt-Mintgreen",
"product_category": "Essentials",
"product_quantity": "1",
"product_url": null,
"product_image_url": "https://cdn.shopify.com/s/files/1/1617/6377/products/220px-Far_Cry_5_boxshot_1024x1024@2x.jpg?v=1528970252"
},
{
"product_id": "98012",
"product_price": "25",
"product_title": "Sweatshirt",
"product_category": "Sale",
"product_quantity": "2",
"product_url": null,
"product_image_url": "https://cdn.shopify.com/s/files/1/1617/6377/products/220px-Far_Cry_5_boxshot_1024x1024@2x.jpg?v=1528970252"
}
],
"order_subtotal": 1,
"order_total": 110,
"coupons": "a",
"currency": "$"
},
"approver_details": {
"approver_id": null,
"approver_name": "System"
},
"approved_date": "",
"last_modified_date": "11/30/2022 07:26:50",
"created_date": "11/25/2022 06:29:59",
"award_info": {
"activity_id": "made_a_purchase",
"activity_name": "Purchase on website",
"points_status": "rejected",
"points": 1
},
"points_expiration_date": "12/05/2022 06:29:59",
"auto_approval_date": ""
}
}
}
],
"created_date": "11/30/2022 07:26:50"
}Responses
| Status | Description |
|---|---|
200 | Acknowledges receipt of the events. Return 200 as soon as you receive the request and process the events afterwards, so the request doesn't time out. |
| Other | Any status code other than 200 is a failure: the request is sent again every 5 minutes until your endpoint returns 200 or the maximum number of attempts (5 by default) is reached. Your Customer Success Manager can change these settings. |