Update Redeemable
Allows a business to update one or more redeemables. You can bulk update 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
PATCH Requests: Partial Updates and Nested Object Replacements
PATCH requests allow you to update specific parameters of a Redeemable object without affecting others. You only need to include the parameters you want to modify. For example, you can update only the allow_for_support_gifting parameter in a Redeemable object.
When updating a nested object (e.g., receipt_rule, template, lag_duration, recurrence_schedule), the entire nested object is replaced with the valid values provided in the request. Invalid values are ignored.
Additional rules when updating nested objects:
- If all provided values are invalid, the existing values remain unchanged.
- If an empty nested object is provided, the existing values are deleted.
- If the nested object or any of its parameters is omitted, existing values remain unaffected.
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: 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: stringContent
- Type Set this header to application/json
- Type: array object[]datarequired
A list of redeemables that needs to be created
- application/json
- application/json
- application/json
- application/json
curl https://SERVER_NAME_GOES_HERE.punchh.com/api2/dashboard/offers/redeemable \
--request PATCH \
--header 'Accept: ' \
--header 'Authorization: Bearer BUSINESS_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--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": "REDEEMING_CRITERION_ID_GOES_HERE",
"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": {}
},
{
"external_id": "EXTERNAL_ID_GOES_HERE",
"success": false,
"errors": [
"ERROR MESSAGE"
],
"warnings": {}
},
{
"external_id": "EXTERNAL_ID_GOES_HERE",
"success": true,
"errors": [],
"warnings": {
"receipt_rule": {
"redeeming_criterion": {
"line_item_filters": [
{
"message": "Required parameters missing or invalid: line_item_selector_id",
"item": {
"line_item_selector_id": "LIS_ID_GOES_HERE",
"processing_method": "min_price",
"quantity": 1
}
}
],
"item_qualifiers": [
{
"message": "Required parameters missing or invalid: net_value",
"item": {
"expression_type": "net_quantity_equal_to",
"line_item_selector_id": "LIS_ID_GOES_HERE",
"net_value": -1
}
}
],
"receipt_qualifiers": [
{
"message": "Required parameters missing or invalid: attribute",
"item": {
"attribute": "total",
"operator": ">=",
"value": "10"
}
}
],
"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"
}
}
]
}
}
}
}
]
}