Fetch Loyalty Program Information
If your brand is set up to use the Punchh loyalty integration, specific loyalty program details can be fetched by calling the /dlc-service/loyalty-program endpoint needs to be called.
Request
{
"method": "get",
"url": "https://api-public-playground.menu.app/api/dlc-service/loyalty-program",
"headers": {
"X-Request-ID": "69da3547-204b-4093-a225-54e084c24215",
"Application": "f3a90488ffee32c3acb6fcd0ca417cf6",
"Api-Version": 4.38.0,
"Content-Type": "application/json"
}
}
Response
{
"status": "OK",
"code": 200,
"data": {
"loyalty_program": {
"point_name": "",
"program_type": "points_convert_to_currency",
"description": "",
"faq_link": "",
"tos_link": "",
"card_code_type": "",
"scanner_code_type": "barcode",
"points_conversion_threshold": 50,
"currency_earned": 500,
"channels": [
{
"type_id": 3,
"reference_type": "DiscountMobileChannel"
},
{
"type_id": 5,
"reference_type": "DiscountPosIntegratedChannel"
},
{
"type_id": 1,
"reference_type": "DiscountPosChannel"
},
{
"type_id": 4,
"reference_type": "DiscountWebChannel"
},
{
"type_id": 2,
"reference_type": "DiscountKioskChannel"
}
],
"venue_ids": [
"1bced40f-95f8-441a-b02c-1f843f166820",
"bf1f796b-29c7-4e40-b05a-22f1886349ea",
"017b65dd-ba5e-411d-a114-8b5202956bd9",
"fa4d8537-22ab-4f0b-9b73-b25888b1850d",
"2bc1b91b-867b-403b-81e0-cd631637a36c",
"303de73c-81d2-401b-a726-eb752b0f689d",
"c221247b-5354-42e5-bdf2-c5a7a10e08a9",
"8666ec5d-89ff-4fc6-9cd1-d6cdb9568d57",
"230db645-2fdc-4582-865a-e2ff4c99b466",
"770e6d7c-f2b4-4ada-a48d-fb2657054a78",
"e1fe934e-dd5e-4548-8fe2-8251152c1902",
"b097222b-e314-4b7c-9747-7657e33a530c",
"fbbb606a-4121-406e-91f2-b801f7be14df",
"00e24f0b-c484-459d-93ba-6cca04a5ed54",
"6b76962a-7a42-4cf2-999c-1aa78c2547f4",
"c6baa105-d60d-44b7-8683-f80d82d978e6",
"e834616a-a61a-469c-ad72-8c799c86a138",
"0bcc5d17-cb7b-437f-acbc-4042def639ea",
"b3f599c8-40e5-4d08-8dd3-45d55f12af6d",
"34dce43f-078e-4272-be28-317bee4192ed"
],
"show_reward_tiers": false,
"reward_tiers": [],
"base_redeemable": []
}
}
}
| Property | Value | Description |
|---|---|---|
loyalty_program |
JSON | Contains all properties related to a brand's loyalty program configurations |
point_name |
String | This property is deprecated. Point names are managed in MENU's customization center using keys. |
program_type |
String | This property is populated for punchh loyalty programs only. Possible values: “points_convert_to_currency”, “points_convert_to_reward”, “points_unlock_redeemables”, “surprise_and_delight” |
description |
String | This property is deprecated. |
faq_link |
String | This property is populated for MENU loyalty programs only and is configured in the Management Center under Loyalty > Program Settings. It is a link to FAQs related to the loyalty program. |
tos_link |
String | This property is populated for MENU loyalty programs only and is configured in the Management Center under Loyalty > Program Settings. It is a link to the terms of service for the loyalty program. |
card_code_type |
String | This property is populated for both punchh and MENU loyalty programs. Possible values: "barcode", "qr_code" or empty string. It determines whether a barcode or QR code should be displayed on the loyalty card. For MENU, it is configured in the Management Center under Loyalty > Program Settings. For punchh, it is configured in punchh's dashboard. |
scanner_code_type |
String | This property is populated for punchh loyalty programs only. Possible values: "barcode", "qr_code" or empty string. It determines whether to display a barcode or QR code image when scanning in-store receipt codes generated from punchh's POS integration. It is configured in punchh's dashboard. |
points_conversion_threshold |
Number | This property is populated for the punchh loyalty program with program_type "points_convert_to_currency" and "points_convert_to_reward". It indicates how many points are required before being converted into either a currency amount or a specific reward. It is configured in punchh's dashboard. |
currency_earned |
Number | This property is populated for the punchh loyalty program with program_type "points_convert_to_currency". It indicates how much currency is earned after the user has reached the points_conversion_threshold. It is configured in punchh's dashboard. |
channels |
List | This property is populated for both punchh and MENU loyalty programs. The list contains objects. Possible object values: {type_id: 1, reference_type: "DiscountPosChannel"} {type_id: 2, reference_type: "DiscountKioskChannel"} {type_id: 3, reference_type: "DiscountMobileChannel"} {type_id: 4, reference_type: "DiscountWebChannel"} {type_id: 5, reference_type: "DiscountPosIntegratedChannel"} It determines what channels are enabled for displaying loyalty related UI and sending loyalty api requests. For MENU, it is configured in the Management Center under Loyalty > Program Settings. For punchh, all channels are enabled by default. |
type_id |
Number | Possible values: 1, 2, 3, 4, 5 Refers to the enabled loyalty channels. See channels section. |
reference_type |
String | Possible values: "DiscountPosChannel", "DiscountKioskChannel", "DiscountMobileChannel", "DiscountWebChannel", "DiscountPosIntegratedChannel" Refers to the enabled loyalty channels. See channels section. |
venue_ids |
List | List of all venue_ids that have loyalty enabled. It determines what venues are enabled for displaying loyalty related UI and sending loyalty api requests. |
show_reward_tiers |
Boolean | "This property is populated for both punchh and MENU loyalty programs. It determines whether the UI should display loyalty rewards in tiers or not. For MENU, this is configured in the Management Center under Loyalty > Program Settings. For punchh, this is configured in their dashboard." |
reward_tiers |
List | This property is populated for both punchh and MENU loyalty programs. The list contains a collection of numbers representing reward tiers that rewards can be grouped under. For MENU, this is automatically generated after creating loyalty rewards with different point costs. For punchh, this is manually entered in their dashboard. |
base_redeemable |
JSON | This property is populated for the punchh loyalty program with program type ""points_convert_to_reward"". It represents the reward that is given to a customer after reaching the point_conversion_threshold. |
name |
String | This property is populated for the punchh loyalty program with program type "points_convert_to_reward". It is a property of the base_redeemable JSON object and represents the name of the reward. |
image_url |
String | This property is populated for the punchh loyalty program with program type "points_convert_to_reward". It is a property of the base_redeemable JSON object and represents the URL for an image of the reward. |
redeemable_properties |
List | This property is populated for the punchh loyalty program with program type "points_convert_to_reward". The list contains a collection of strings. It is a property of the base_redeemable JSON object and represents filterable tags. |
meta_data |
String | This property is populated for the punchh loyalty program with program type "points_convert_to_reward". It is a property of the base_redeemable JSON object and represents miscellaneous information about the reward. |
The program_type property indicates which of the 4 loyalty program types have been setup with punchh:
-
Points unlock redeemables - Guests choose which redeemables to spend their points on. For example, your business may provide three redeemables: one at 30 points, one at 50 points, and one at 100 points. The guest accumulates points at each check in and chooses when and how to spend those points to unlock specific redeemables. When a guest unlocks a redeemable, the points are deducted from their account.
-
Points convert to rewards - Guests automatically unlock rewards at predefined point thresholds. For example, your business may provide three reward thresholds: one at 30 points, one at 50 points, and one at 100 points. When a guest reaches 30 points, the first reward is offered to them automatically. The points don’t deduct and when the guest reaches 50 points, the next reward is made available to them, and so on.
-
Points convert to currency - Guests automatically receive rewards at one predefined point threshold. For example, your business may provide a reward threshold of 30 points. When a guest reaches 30 points, the points are automatically converted into the reward and deducted from their account.
-
Visit-based - Guest points are based on the number of visits. A certain number of visits earns the guest a redeemable card, which represents a redeemable that your business has configured.
Depending on the program available, customers have the ability to use different functionality.
Points unlock redeemables program
For points_unlock_redeemables, customers can use points to redeem rewards. These can be fetched using the /dlc-service/loyalty-rewards endpoint.
Points convert to currency program
For points_convert_to_currency, customers can use collected currency to discount their order. These can be used by calling the calculate and order endpoints.
To determine whether to display a QR code or barcode when redeeming a discount at the POS, the card_code_type property should be used.
To determine whether to accept a QR code or a via receipt scanning, the scanner_code_type should be used.
For the Points convert to currency and the Points convert to rewards program types, the points_conversion_threshold property should be used to determine how many points are required to convert to a preconfigured currency amount (currency_earned) or to a reward (base_redeemable). For example, 100 points convert into $10 for a Points convert to currency program and 50 points convert into a Free Burger reward for the Points convert to reward program type.
All channels are enabled for Punchh loyalty.
The venues that support loyalty for the brand can be found in the venue_ids property.
To know whether to display the loyalty rewards in tiers (I.e. grouped by their reward point cost), the show_reward_tiers and reward_tiers properties are used.