Punchh Api2 API

The Api2 API from Punchh — 26 operation(s) for api2.

Operations 33

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

DELETE /api2/mobile/redemptions/{redemption_id} Cancel an unprocessed redemption from the app · Cancel Redemption (Redemptions 1.0) #
Ask an LLM
“Can a guest cancel a redemption code in the mobile app before it has been used at the store?”
“What happens if I try to cancel a redemption that was already processed?”
Tell an agent destructive · confirm first
Cancel mobile redemption {redemption_id} so the guest can pick a different reward.
Withdraw the unprocessed redemption {redemption_id} for app client {client}.
POST /api2/mobile/redemptions/banked_currency Redeem banked currency for a redemption code · Create Redemption Using Banked Currency (Redemptions 1.0) #
Ask an LLM
“How can a guest turn part of their banked currency balance into a redemption code?”
“Does a banked-currency redemption need a store location, or will it work without one?”
Tell an agent
Create a redemption code worth {banked_currency} of banked currency for the signed-in guest.
Generate a banked currency redemption of {banked_currency} at location {location_id}.
POST /api2/mobile/redemptions/visits Redeem a completed visit card · Create Redemption Using Visits (Redemptions 1.0) #
Ask an LLM
“In a visit-based loyalty program, how does a guest redeem a completed punch card from the app?”
“Can I create a visits redemption using GPS coordinates instead of a location ID?”
Tell an agent
Redeem the guest's unredeemed visit card at location {location_id}.
Create a visits-based redemption near latitude {latitude} and longitude {longitude}.
POST /api2/mobile/redemptions/redeemable Redeem loyalty points for a redeemable · Create Redemption Using Redeemable (Redemptions 1.0) #
Ask an LLM
“How does a guest spend loyalty points on a specific redeemable item from the catalog?”
“Which redeemable will a points redemption code be tied to?”
Tell an agent
Spend the guest's points on redeemable {reedemable_id} and give me the redemption code.
Create a points redemption for redeemable {reedemable_id} at store {location_id}.
POST /api2/mobile/redemptions/reward Redeem a reward a guest was given · Create Redemption Using Reward ID (Redemptions 1.0) #
Ask an LLM
“How do I generate a redemption code for a reward the guest received from a campaign?”
“Can a gifted reward be redeemed at a particular store location from the app?”
Tell an agent
Create a redemption code for reward {reward_id} in the guest's account.
Redeem gifted reward {reward_id} at location {location_id}.
GET /api2/mobile/redemptions/applicable_offers List offers that apply to a cart in the app · List Applicable Offers (Redemptions 1.0) #
Ask an LLM
“Which offers can a guest apply to the items currently in their mobile order?”
“Do the applicable offers depend on the ordering channel and order amount?”
Tell an agent
Show the offers that apply to a {amount} order placed through {channel}.
List applicable offers for this cart at store {location_id} on channel {channel}.
POST /api2/mobile/discounts/select Add discounts to the guest's discount basket · Add Selection to Discount Basket (Redemptions 2.0) #
Ask an LLM
“How does the mobile app add a reward to the guest's discount basket?”
“What happens if the guest has no active discount basket when selecting a discount?”
Tell an agent
Add these discounts {discount_basket_items_attributes} to the guest's discount basket in the app.
Put the selected rewards into the mobile discount basket.
DELETE /api2/mobile/discounts/unselect Remove discounts from the discount basket · Remove Item From Discount Basket (Redemptions 2.0) #
Ask an LLM
“Can a guest take a discount back out of their basket in the app?”
“Is it possible to remove several discount basket items at once?”
Tell an agent destructive · confirm first
Remove basket items {discount_basket_item_ids} from the guest's discount basket.
Unselect discount basket item {discount_basket_item_ids} in the mobile app.
GET /api2/mobile/discounts/active Show the guest's active discount basket · Get Active Discount Basket (Redemptions 2.0) #
Ask an LLM
“What discounts has the guest currently selected in their basket?”
“Are expired discounts dropped from the active discount basket automatically?”
Tell an agent
Show me what's in the guest's active discount basket.
Fetch the current discount basket for app client {client}.
POST /api2/mobile/single_scan_tokens Get a single-scan code to pay and redeem · Get Access Code (Redemptions 2.0) #
Ask an LLM
“How can a guest pay, earn and redeem with one scan at the register?”
“Can the single-scan code include a tip or use a gift card as the payment method?”
Tell an agent
Generate a single-scan access code paid by {payment_type}.
Create a single-scan code using gift card {gift_card_uuid} with a tip of {tip}.
GET /api2/mobile/subscriptions List subscription plans available to buy · Fetch Active Purchasable Subscription Plans #
Ask an LLM
“What subscription plans can guests buy in the mobile app right now?”
“Are expired subscription plans hidden from the purchasable list?”
Tell an agent
List the active subscription plans guests can purchase in the app.
Show purchasable subscription plans for client {client}.
POST /api2/mobile/subscriptions Buy a subscription plan for the signed-in guest · Purchase Subscription #
Ask an LLM
“How does a guest purchase a subscription plan from the mobile app?”
“Why would buying a single-use plan with auto renewal turned on fail?”
Tell an agent
Purchase plan {plan_id} for {purchase_price} at location {location_id}, starting {start_time} and ending {end_time}, auto renew {auto_renewal}.
Subscribe the guest to plan {plan_id} using saved card {payment_card_uuid}.
GET /api2/mobile/user_subscriptions List the subscriptions a guest holds · Fetch Subscription Plans for a User #
Ask an LLM
“Which subscriptions does this guest currently have on their profile?”
“Can I see a guest's past or cancelled subscriptions, not just the active ones?”
Tell an agent
Show the guest's current subscriptions.
List the guest's subscriptions filtered by {filter}.
POST /api2/mobile/redemptions/subscription Generate a code to use a subscription benefit · Generate a Redemption Code for Subscription Redemption #
Ask an LLM
“How does a guest get a code to redeem their subscription perk at the POS or online?”
“Can a subscription benefit be redeemed with a code generated in the app?”
Tell an agent
Generate a redemption code for subscription {subscription_id}.
Give the guest a code to use the benefits of subscription {subscription_id}.
PUT /api2/mobile/subscriptions/cancel Turn off a guest's subscription auto renewal · Cancel Subscription (Turn off Auto Renewal) #
Ask an LLM
“How can a guest stop their subscription from renewing in the app?”
“Do benefits stay active until the end date after a guest cancels from the app?”
Tell an agent destructive · confirm first
Cancel auto renewal on subscription {subscription_id} with reason {cancellation_reason_id} and feedback {cancellation_feedback}.
Stop subscription {subscription_id} from renewing because of reason {cancellation_reason_id}; the guest said {cancellation_feedback}.
GET /api2/dashboard/segments Browse audience segments for an external platform · Get Segment List #
Ask an LLM
“Which guest segments are defined in Punchh that my marketing tool can target?”
“Can I search segments by name and page through them?”
Tell an agent
List the segments whose name matches {query}.
Show page {page} of segments with {per_page} per page.
GET /api2/dashboard/redeemables Browse offers to send from an external platform · Get Redeemable List #
Ask an LLM
“What offers can my external campaign tool pick from to send to guests?”
“Does the offer search look at descriptions as well as names?”
Tell an agent
Find offers whose name or description mentions {query} for my campaign tool.
Browse page {page} of campaign-ready offers, {per_page} at a time.
POST /api2/dashboard/campaigns Schedule a mass offer campaign to a segment · Commit Redeemable Distribution #
Ask an LLM
“How can an external platform have Punchh deliver an offer to everyone in a segment?”
“Which campaign types are supported for mass gifting right now?”
Tell an agent
Schedule campaign {name} gifting redeemable {redeemable_uuid} to segment {segment_id} as {category} via {campaign_type}, starting {start_time}.
Mass-gift offer {redeemable_uuid} to segment {segment_id} and tag it with external campaign {external_campaign_id}.
POST /api2/dashboard/users/support_gifting Queue a background support gift to a guest · Asynchronous Support Gifting #
Ask an LLM
“What's the best way to send high volumes of support gifts without waiting on each one?”
“Is there an asynchronous way to gift points or rewards to many guests one by one?”
Tell an agent
Queue an asynchronous gift of {gift_count} points to user {user_id}.
In the background, gift redeemable {redeemable_id} to user {user_id} because {gift_reason}.
POST /api2/dashboard/users/support Gift a guest points, rewards or challenge progress · Support Gifting to a User #
Ask an LLM
“How can a support agent immediately make things right with a guest by gifting points or a reward?”
“Can I gift fuel or progress toward a challenge to a single guest?”
Tell an agent
Right now, gift {reward_amount} in currency to user {user_id} with the message {message}.
Give user {user_id} {progress_count} steps on challenge {challenge_campaign_id}.
GET /api2/dashboard/offers/lis List line item selectors · Get Line Item Selector (LIS) List #
Ask an LLM
“Which line item selectors are defined for my business's offers?”
“Does listing line item selectors require offers ingestion to be enabled?”
Tell an agent
List line item selectors named like {query}.
Show page {page} of line item selectors.
POST /api2/dashboard/offers/lis Create line item selectors in bulk · Create Line Item Selector (LIS) #
Ask an LLM
“How many line item selectors can I create in a single request?”
“How do I define which menu items an offer applies to?”
Tell an agent
Create these new line item selectors: {data}.
Add up to 20 new line item selectors from {data}.
PATCH /api2/dashboard/offers/lis Update existing line item selectors · Update Line Item Selector (LIS) #
Ask an LLM
“Can I edit line item selectors that already exist in bulk?”
“What's the limit on line item selectors per update call?”
Tell an agent
Update the existing line item selectors with {data}.
Apply these changes to my current line item selectors: {data}.
GET /api2/dashboard/offers/qc List qualification criteria · Get Qualification Criteria (QC) List #
Ask an LLM
“What qualification criteria rules are set up for my offers?”
“Can I search qualification criteria by name?”
Tell an agent
List qualification criteria whose name contains {query}.
Show page {page} of qualification criteria, {per_page} per page.
POST /api2/dashboard/offers/qc Create qualification criteria in bulk · Create Qualification Criteria (QC) #
Ask an LLM
“How do I define the conditions a check must meet for an offer to apply?”
“What happens if I send more than 20 qualification criteria at once?”
Tell an agent
Create new qualification criteria from {data}.
Define these offer qualification rules: {data}.
PATCH /api2/dashboard/offers/qc Update existing qualification criteria · Update Qualification Criteria (QC) #
Ask an LLM
“Can I change qualification criteria that were already created?”
“Do updates to qualification criteria go through the same validations as creating them?”
Tell an agent
Update existing qualification criteria with {data}.
Edit my current offer qualification rules using {data}.
GET /api2/dashboard/offers/redeemable List redeemables for offers ingestion · Get Redeemable List #
Ask an LLM
“Which redeemables are defined at the business level for offers ingestion?”
“Can I search offers-ingestion redeemables by name only?”
Tell an agent
List offers-ingestion redeemables named like {query}.
Show offers-ingestion redeemables page {page} with {per_page} per page.
POST /api2/dashboard/offers/redeemable Create redeemables in bulk · Create Redeemable #
Ask an LLM
“How do I define new redeemables for my loyalty program through the API?”
“Is there a cap on how many redeemables I can create per call?”
Tell an agent
Create these new redeemables: {data}.
Bulk-define up to 20 redeemables from {data}.
PATCH /api2/dashboard/offers/redeemable Update existing redeemables · Update Redeemable #
Ask an LLM
“Can I modify redeemables that already exist in bulk?”
“How many existing redeemables can a single update touch?”
Tell an agent
Update the existing redeemables with {data}.
Change the details of my current redeemables: {data}.
POST /api2/dashboard/offers/upload_redeemable_image Upload images for redeemables from URLs · Upload Redeemable Image #
Ask an LLM
“How do I add pictures to my redeemables in bulk?”
“What's the maximum image size for a redeemable image?”
Tell an agent
Upload redeemable images from these URLs: {data}.
Attach the hosted images {data} to their redeemables.
POST /api2/dashboard/subscriptions/purchase Purchase or migrate a subscription for a guest · Purchase Subscription #
Ask an LLM
“Can a back-end system buy a subscription for a guest who isn't logged in?”
“How do I migrate a guest's active subscription from a previous loyalty system?”
Tell an agent
Purchase plan {plan_id} for user {user_id} at {purchase_price} at location {location_id}, from {start_time} to {end_time}, auto renew {auto_renewal}.
Migrate user {user_id}'s existing subscription to plan {plan_id} with {initial_savings} in prior savings.
POST /api2/dashboard/subscriptions/renew Renew a guest's subscription · Renew Subscription #
Ask an LLM
“How does the business renew a guest's subscription on its renewal date?”
“Can a guest switch to a different plan when their subscription renews?”
Tell an agent
Renew subscription {subscription_id} for {purchase_price} from {start_time} to {end_time}.
Renew subscription {subscription_id} onto new plan {new_plan_id}.
PATCH /api2/dashboard/subscriptions/cancel Cancel a guest subscription as an admin · Cancel Subscription (Turn off Auto Renewal) #
Ask an LLM
“How can an admin hard-cancel a guest's subscription immediately?”
“What's the difference between a soft and hard cancellation from the dashboard?”
Tell an agent destructive · confirm first
Admin-cancel subscription {subscription_id} as {cancellation_type} because {cancellation_reason}.
From the dashboard, hard-cancel subscription {subscription_id} with reason {cancellation_reason} and type {cancellation_type}.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-access-token-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-create-user-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-login-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-mark-offers-read-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-transaction-details-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-transaction-details-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-update-user-profile-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/mobile-user-session-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-access-token-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-create-user-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-login-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-mark-offers-read-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-transaction-details-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-transaction-details-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-update-user-profile-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/mobile-user-session-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/online-ordering-online-order-checkin-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/online-ordering-online-order-checkin-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/online-ordering-online-order-redemption-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/online-ordering-online-order-redemption-response-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/online-ordering-online-order-checkin-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/online-ordering-online-order-checkin-response-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/online-ordering-online-order-redemption-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/online-ordering-online-order-redemption-response-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-schema/platform-functions-redeemable-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-structure/platform-functions-redeemable-structure.json

Other Resources

🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-access-token-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-create-user-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-login-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-mark-offers-read-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-transaction-details-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-transaction-details-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-update-user-profile-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/mobile-user-session-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-ld/punchh-mobile-context.jsonld
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-mobile.postman_collection.json
🔗
OpenCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-mobile.opencollection.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/online-ordering-online-order-checkin-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/online-ordering-online-order-checkin-response-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/online-ordering-online-order-redemption-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/online-ordering-online-order-redemption-response-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-ld/punchh-online-ordering-context.jsonld
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-online-ordering.postman_collection.json
🔗
OpenCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-online-ordering.opencollection.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/examples/platform-functions-redeemable-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/json-ld/punchh-platform-functions-context.jsonld
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-platform-functions.postman_collection.json
🔗
OpenCollection
https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/collections/punchh-platform-functions.opencollection.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/punchh:punchh-api2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

punchh-api2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Punchh Api2 API
  contact:
    name: Punchh Dev Support
    url: https://developers.punchh.com
  version: '1.0'
  description: 'Operations tagged Api2 across 6 of this provider''s published API definitions: punchh-mobile-redemptions-legacy-openapi.yml, punchh-mobile-redemptions-v2-openapi.yml, punchh-mobile-subscription-openapi.yml, punchh-platform-functions-headless-offers-openapi.yml, punchh-platform-functions-offers-ingestion-openapi.yml, punchh-platform-functions-subscription-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://SERVER_NAME_GOES_HERE.punchh.com
tags:


# --- truncated at 32 KB (449 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/punchh/refs/heads/main/openapi/punchh-api2-api-openapi.yml