Event - Check-in - Gift and Loyalty
Check-in Type: Loyalty
This includes create/update user loyalty check-in events triggered as they happen in the Punchh system.
{
"business_uuid": "BUSINESS_UUID_GOES_HERE",
"content_id": "CONTENT_ID_GOES_HERE",
"timestamp": 1591594104,
"business_id": 7,
"event_name": "checkins",
"event_type": "loyalty",
"action": "create",
"payload": {
"updated_at": "2020-06-08T05:27:23Z",
"created_at": "2020-06-08T05:27:23Z",
"checkin_type": "BarcodeCheckin",
"user_id": 111111111,
"location_id": 1617,
"location_name": "ADDRESS_GOES_HERE",
"store_number": "123",
"channel": "Mobile",
"redemption_id": 0,
"for_referring_user_id": null,
"for_referring_full_name": null,
"for_referring_checkin_id": null,
"business_id": 7,
"approved": true,
"verified_at": null,
"receipt_amount": 20.0,
"receipt_number": "1466",
"receipt_date": "2020-06-05T17:00:48Z",
"verifications_count": null,
"campaign_type": null,
"campaign_id": null,
"campaign_name": null,
"gifted_for_id": null,
"gifted_for_type": null,
"gift_reason": null,
"gifted_by_id": null,
"gifted_by_type": null,
"free_punchh_campaign_id": null,
"status": "loyalty",
"reviewer_id": null,
"qr_decoded": null,
"bar_code": "BARCODE_GOES_HERE",
"punchh_key": "PUNCHH_KEY_GOES_HERE",
"visits_earned": null,
"points_earned": 20,
"points_spent": 0,
"first_punchh_at_business": false,
"first_punchh_at_location": false,
"expired_at": null,
"unverified_receipt_amount": null,
"manual": null,
"menu_items": [
{
"item_amount": 0.33,
"item_name": "Sample Item 1",
"item_qty": 3,
"menu_family": "811",
"menu_item_id": "659",
"menu_item_type": "M",
"menu_major_group": "506",
"serial_number": "1"
},
{
"item_amount": 0.33,
"item_name": "Sample Item 2",
"item_qty": 3,
"menu_family": "180",
"menu_item_id": "933",
"menu_item_type": "M",
"menu_major_group": "422",
"serial_number": "2"
},
{
"item_amount": 0.33,
"item_name": "Sample Item 9",
"item_qty": 3,
"menu_family": "394",
"menu_item_id": "795",
"menu_item_type": "M",
"menu_major_group": "220",
"serial_number": "3"
}
],
"refreshed_at": null,
"pending_refresh": false,
"external_uid": null,
"earnable_amount": 20.0,
"checkin_id": 68698,
"expiring_on": null,
"transaction_no": "1234",
"user": {
"email": "test@example.com",
"first_name": "FIRST_NAME_GOES_HERE",
"last_name": "LAST_NAME_GOES_HERE",
"secondary_email": null,
"phone": null,
"unsubscribed": false,
"guest_type": "Loyalty",
"marketing_email_subscription": true,
"marketing_pn_subscription": true,
"sms_subscription": false,
"unsubscribe_reason": null,
"last_activity_at": "2020-06-08T05:27:23Z",
"user_status": "active",
"account_balance": {
"user_id": 111111111,
"banked_currency": null,
"current_membership_level_name": "Silver Level",
"last_visit": null,
"loyalty_points": 0,
"net_balance": 10,
"net_debits": 0,
"pending_points": 0,
"total_credits": 10,
"total_debits": "0.0",
"total_lifetime_points": 10,
"total_point_credits": 10,
"total_redeemable_visits": null,
"total_visits": 0,
"unbanked_points": null,
"unredeemed_cards": null
},
"user_id": 111111111,
"verifications_count": null,
"verified_at": null
}
}
}
Check-in Type: Gift
This includes user gift check-in create/update events triggered as they happen in the Punchh system.
Note: If a guest is targeted by a campaign that uses Dynamic Reward but does not receive any reward or points due to the Dynamic Reward's gifting rule settings, then no Gift Check-in outbound webhook event will be sent. Additionally, no entry will appear on the guest’s timeline on the Punchh platform. See the Dynamic Rewards article on the Support Portal.
Note: To view the Punchh product documentation on the Punchh Support Portal, you must log in to a Punchh platform production environment. If you already have access to a production environment, follow the instructions here to access the Punchh Support Portal.
{
"business_uuid":"BUSINESS_UUID_GOES_HERE",
"content_id":"cb49969e-a872-47bf-b468-42e12ab4f61f",
"timestamp":1591594104,
"business_id":7,
"event_name":"checkins",
"event_type":"gift",
"action": "create",
"payload":{
"updated_at": "2020-06-10T10:50:40Z",
"created_at": "2020-06-10T10:50:40Z",
"business_uuid": "BUSINESS_UUID_GOES_HERE",
"user_id": 111111111,
"location_id": 1617,
"redemption_id": 0,
"business_id": 7,
"approved": true,
"gifted_for_id": 160,
"gifted_for_type": "MassGifting",
"gift_reason": "Chh Campaign",
"gifted_by_id": 1,
"gifted_by_type": "Admin",
"status": "gift",
"archived": false,
"points_earned": 5,
"count_as_visit": true,
"points_spent": 0,
"gps_accuracy": 0,
"first_punchh_at_business": false,
"first_punchh_at_location": false,
"manual":false,
"menu_items":[],
"pending_refresh": false,
"refreshed_at":null,
"location_name": "ADDRESS_GOES_HERE",
"store_number": "4455",
"checkin_id": 68770,
"expiring_on": "2020-07-10",
"user": {
"email": "test@example.com",
"first_name": "FIRST_NAME_GOES_HERE",
"last_name": "LAST_NAME_GOES_HERE",
"unsubscribed": false,
"birthday": "1999-01-01",
"signup_channel": "MobileEmail",
"marketing_email_subscription": true,
"marketing_pn_subscription": true,
"sms_subscription": false,
"last_activity_at": "2020-06-10T10:44:16Z",
"user_status": "active",
"guest_type": "Loyalty",
"account_balance": {
"user_id":111111111,
"banked_currency": null,
"current_membership_level_name": "Silver Level",
"last_visit": null,
"loyalty_points": 0,
"net_balance": 10,
"net_debits": 0,
"pending_points": 0,
"total_credits": 10,
"total_debits": "0.0",
"total_lifetime_points": 10,
"total_point_credits": 10,
"total_redeemable_visits": null,
"total_visits": 0,
"unbanked_points": null,
"unredeemed_cards": null
},
"user_id": 111111111,
"verifications_count": null,
"verified_at": null
}
}
}
Meta Fields
Meta Fields are common attributes such as content_id, timestamp, etc. that are returned in event responses, providing additional information about events. Click here to view the descriptions of the attributes.
Response Parameters
| approved | Boolean | Check-in approved status |
| bar_code | String | Barcode generated for the order |
| business_id | Integer | Business ID |
| campaign_id | Integer | Campaign ID created in Punchh |
| campaign_name | String | Name of campaign |
| campaign_type | String | Type of campaign |
| channel | String | Channel from where check-in happens (i.e., POS, OnlineOrder, Web, Mobile) |
| checkin_id | Integer | Unique check-in ID generated by Punchh |
| checkin_type | String | OnlineCheckin, PosCheckin, ReceiptImageCheckin, BarcodeCheckin, QrcodeCheckin, POSConsoleCheckin |
| created_at | Date_time | Timestamp when check-in gets created in Punchh |
| earnable_amount | Float | Earnable amount based on earning qualifier for the order |
| expired_at | Date | Date on which the check-in expired |
| expiring_on | Date | Date on which the check-in will expire |
| external_uid | String | External UID generated for the transaction |
| first_punchh_at_business | Boolean | Denotes if it is a first check-in for the business |
| first_punchh_at_location | Boolean | Denotes if it is a first check-in for the location |
| manual | Boolean | Whether the check-in is manual or not |
| for_referring_checkin_id | Integer | Check-in ID of the first check-in of the referred user |
| for_referring_full_name | String | Name of the referral user |
| for_referring_user_id | Integer | ID of the referral user |
| free_punchh_campaign_id | Integer | Post check-in campaign ID if configured |
| gift_reason | String | Gift reason for points gifted to user |
| gifted_by_id | Integer | ID of the admin who gifted points |
| gifted_by_type | String | Type of gifting (i.e., admin, check-in, etc.) |
| gifted_for_id | Integer | ID for the type of gifting |
| gifted_for_type | String | Type of gifting (i.e., Mass Gifting, Feedback Reply, Game, etc.) |
| location_id | Integer | Location ID generated in Punchh |
| location_name | String | Location name of the check-in |
| menu_items | Object | Menu items object |
| menu_items.item_amount | String | Total item amount. In case of multiple quantities, this means the sum total of all item amounts. |
| menu_items.item_name | String | Name of the menu item |
| menu_items.item_qty | String | Quantity ordered by the customer. If the item is a modifier (such as extra cheese on a pizza base item), make sure the quantity reflects the total number of base items included. |
| menu_items.menu_family | String | Item family; denotes a sub-category of an item, else it will be blank |
| menu_items.menu_item_id | String | Item ID of the menu item |
| menu_items.menu_item_type | String | M - Menu item ( + or - ) D - Discount (negative). Either internal or Punchh will always evaluate lines as ( - ) regardless of the sign assigned in the API call S - Service item. Any item representing money received that is not a sale. For example: service charges, delivery fees, tips, purchase of gift cards/certificates, etc. T - Tax item. Taxes of all sorts. The tax type will only be applicable for Check-in Type: Loyalty. P - Payment item. Visa, MasterCard, cash, gift card/certificate (when used to pay for the order) |
| menu_items.menu_major_group | String | Item major group; menu_major_group is categorized for the item if passed, else, it will be blank. Generically, every menu item belongs to a family group. A family group is a sub-category of a major group. |
| menu_items.serial_number | String | Serial numbers are assigned to menu items on a receipt. A main menu (such as pizza) may have serial number "1.0", and the associated modifiers (such as "extra cheese", "olives", and "jalapenos") may have serial numbers "1.1", "1.2", and "1.3" respectively. The numbering explains that particular items are modifiers associated with the main one. |
| pending_refresh | Boolean | Enabled per the pending points configuration |
| points_earned | Float | Points earned on the order |
| points_spent | Float | Points redeemed on the order |
| punchh_key | String | Unique Punchh key generated for the order |
| qr_decoded | String | QR code value generated for the order |
| receipt_amount | Float | Order amount before taxes, calculated as the sum of all item amounts minus any discounts. This is the amount used to calculate loyalty points/visits. The value of this parameter should match subtotal_amount. For example, if the order amount is $10, both receipt_amount and subtotal_amount will be 10. If a $2 discount is applied, both will be 8. |
| receipt_date | Date_time | Receipt date/time for the order |
| redemption_id | Integer | Redemption ID populated in case the redemption is fully redeemed on the order |
| status | String | Status of the check-in (i.e., gift or loyalty) |
| store_number | Integer | Store number of the location |
| transaction_no | String | Transaction number of the order |
| refreshed_at | Date_time | Check-in refresh timestamp |
| reviewer_id | Integer | Admin ID of the reviewer who is verifying a check-in (applicable for receipt image verification-based check-in) |
| unverified_receipt_amount | Float | Receipt_amount populated in case of manual check-in (i.e., receipt image verification based) |
| updated_at | Date_time | TImestamp when check-in gets updated in Punchh |
| user_id | Integer | User ID of the user generated in Punchh |
| User | Object | See the user object in Event - Rewards Expiry Reminder |
| user.account_balance | Object | See the account_balance object in Event - Guest |
| verifications_count | Integer | This count increases if multiple reviewers or admins have approved a check-in (applicable for receipt image verification-based check-in). |
| verified_at | Date_time | Check-in approved timestamp (applicable for receipt image verification-based check-in) |
| revenue_code | String | Name used by a POS system that identifies the method by which an order is fulfilled (e.g., dine-in, to-go/take-out, call-in pickup, call-in deliver, etc). Some POS calls this Revenue Center, Order Method, Order Mode, etc. The values assigned here should reflect the fulfillment method rather than the location within the restaurant where the order was taken (e.g., not bar, patio, dining room, etc.). |
| revenue_id | String | The ID used by a POS system that identifies the method by which an order is fulfilled. Example: 1 for dine-in; 2 for to-go/take out; 3 for call-in pickup; 4 for call-in deliver, etc. Some POS calls this revenue center, order method, order mode, etc. The values assigned here should reflect the fulfillment method rather than the location within the restaurant where the order was taken (e.g., not bar, patio, dining room, etc.). |