Create Redeemable
Allows a business to define one or more redeemables. You can bulk create a maximum of 20 redeemables per API call. If the request input contains more than 20 redeemables, only the first 20 are created, and the remaining are ignored.
For more information, see Offers Ingestion Management
To call this API, the offers ingestion option must be enabled for the business on the Punchh platform. Contact your Punchh representative to update this Punchh platform configuration.
For more information on redeemable settings, see the Redeemables 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.
- Type: stringAccept
Set this header to application/json
- Type: stringContent
- Type Set this header to application/json
- Type: stringAuthorizationrequired
Bearer token for admin authorization, who is making a call on behalf of the customer. Send the API key in the following format: "Authorization: Bearer BUSINESS_ADMIN_KEY_GOES_HERE".
- Type: array object[]datarequired
A list of redeemables that needs to be created
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://SERVER_NAME_GOES_HERE.punchh.com/api2/dashboard/offers/redeemable \
--request POST \
--header 'Accept: ' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer BUSINESS_ADMIN_KEY_GOES_HERE' \
--data '{
"data": [
{
"name": "Redeemable offer 30",
"alternate_locale_name": [
{
"language": "fr",
"translation": "FR MarlOffer 0.25"
},
{
"language": "en",
"translation": "MarlOffer 0.25"
},
{
"language": "es",
"translation": "ES MarlOffer 0.25"
}
],
"external_id": "EXTERNAL_ID_GOES_HERE",
"description": "description",
"alternate_locale_description": [
{
"language": "fr",
"translation": "FR $0.25 Marl sContent Delivery Loyalty Offer"
},
{
"language": "en",
"translation": "$0.25 Marl sContent Delivery Loyalty Offer"
},
{
"language": "es",
"translation": "ES $0.25 Marl sContent Delivery Loyalty Offer"
}
],
"note": "Notes here",
"allow_for_support_gifting": true,
"available_as_template": false,
"distributable": true,
"distributable_to_all_users": false,
"segment_definition_id": null,
"auto_applicable": true,
"receipt_rule": {
"qualifier_type": "new",
"redeeming_criterion_id": null,
"discount_amount": 10,
"redeeming_criterion": {
"name": "10% Off on Sandwich",
"external_id": "EXTERNAL_ID_GOES_HERE",
"amount_cap": 3,
"percentage_of_processed_amount": 10,
"qc_processing_function": "sum_amounts",
"rounding_rule": "ceil",
"max_discount_units": 2,
"unit_discount": 10,
"minimum_unit_rate": 0.01,
"target_price": 1,
"effective_location": "location:1234",
"stack_discounting": false,
"reuse_qualifying_items": false,
"qualifying_expressions_operator": "All",
"item_filter_expressions_operator": "Any",
"discount_evaluation_strategy": "Min",
"line_item_filters": [
{
"line_item_selector_id": "LIS_ID_GOES_HERE",
"processing_method": "max_price",
"quantity": 5
},
{
"line_item_selector_id": "LIS_ID_GOES_HERE",
"processing_method": "min_price",
"quantity": 3
},
{
"line_item_selector_id": "LIS_ID_GOES_HERE",
"processing_method": "exclude",
"quantity": null
}
],
"enable_menu_item_aggregator": false,
"aggregator_grouping_attributes": {
"item_name": false,
"item_id": false,
"item_major_group": false,
"item_family": false,
"line_item_type": false
},
"item_qualifiers": [
{
"expression_type": "line_item_exists",
"line_item_selector_id": "LIS_ID_GOES_HERE",
"net_value": null
},
{
"expression_type": "line_item_does_not_exist",
"line_item_selector_id": "LIS_ID_GOES_HERE",
"net_value": null
},
{
"expression_type": "net_quantity_greater_than_or_equal_to",
"line_item_selector_id": "LIS_ID_GOES_HERE",
"net_value": 2
},
{
"expression_type": "net_amount_greater_than_or_equal_to",
"line_item_selector_id": "LIS_ID_GOES_HERE",
"net_value": 4
}
],
"receipt_qualifiers": [
{
"attribute": "total_amount",
"operator": ">=",
"value": "10"
},
{
"attribute": "receipt_hour",
"operator": "in",
"value": "1"
}
]
}
},
"activate_now": false,
"start_time": "2025-06-25T23:59:59",
"indefinetely": false,
"expiry_days": null,
"end_time": "2025-06-28T23:59:59",
"timezone": "Australia/Darwin",
"remind_before": 3,
"discount_channel": "all",
"points": 12,
"redemption_code_expiry_mins": 3,
"applicable_as_loyalty_redemption": true,
"expire_redemption_code_with_reward_end_date": false,
"template": {
"redemption_message": "Countdown Message text",
"short_prompt": "Short Prompt text",
"standard_prompt": "Standard Prompt text"
},
"lag_duration": {
"value": 2,
"units": "days"
},
"recurrence_schedule": {
"occurrences": 10,
"days_distance": 2
},
"effective_location": "location:12",
"meta_data": "meta data"
}
]
}'
{
"results": [
{
"external_id": "EXTERNAL_ID_GOES_HERE",
"success": true,
"errors": [],
"warnings": {
"line_item_filters": [
{
"message": "Required parameters missing or invalid: line_item_selector_id, processing_method",
"item": {
"line_item_selector_id": "",
"processing_method": "max",
"quantity": 5
}
},
{
"message": "Required parameters missing or invalid: line_item_selector_id",
"item": {
"line_item_selector_id": "invalid",
"processing_method": "max_price",
"quantity": 5
}
}
],
"item_qualifiers": [
{
"message": "Required parameters missing or invalid: line_item_selector_id, expression_type",
"item": {
"expression_type": "",
"line_item_selector_id": "invalid",
"net_value": 1
}
}
],
"receipt_qualifiers": [
{
"message": "Required parameters missing or invalid: attribute",
"item": {
"attribute": "total",
"operator": ">=",
"value": "10"
}
},
{
"message": "Required parameter is duplicate: attribute",
"item": {
"attribute": "total_amount",
"operator": "in",
"value": "1"
}
}
],
"qualifying_expressions_operator": [
{
"message": "Required parameters missing or invalid: qualifying_expressions_operator",
"item": {
"qualifying_expressions_operator": "an"
}
}
],
"item_filter_expressions_operator": [
{
"message": "Required parameters missing or invalid: item_filter_expressions_operator",
"item": {
"item_filter_expressions_operator": "an"
}
}
],
"discount_evaluation_strategy": [
{
"message": "Required parameters missing or invalid: discount_evaluation_strategy",
"item": {
"discount_evaluation_strategy": "ma"
}
}
]
}
},
{
"external_id": "EXTERNAL_ID_GOES_HERE",
"success": false,
"errors": [
"ERROR MESSAGE"
],
"warnings": {}
}
]
}