{ "opencollection": "1.0.0", "info": { "name": "Redemptions 2.0 (New) API - POS", "version": "2.0" }, "items": [ { "info": { "name": "Find User (Redemptions 2.0)", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/users/find", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API endpoint is used for guest user identification. Both `lookup_field` and `lookup_value` are passed as request parameters to look up the user account. The response includes user profile information in addition to the user ID." }, { "info": { "name": "Auto Redemption (Redemptions 2.0)", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/auto_select", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "- A discount should be automatically queued up in the discount basket if the auto-redemption feature is enabled for the business.\n- The business can configure the auto-redemption strategy.\n- If a discount expires after being added to the discount basket, it is removed from the discount basket. When you make a call to the API, it validates the offers added to the discount basket. If one or more discounts are found to be honored, expired, perished, or archived, the API returns an error message ind" }, { "info": { "name": "Discount Look-up (Redemptions 2.0)", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/lookup", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "You can use this API endpoint to:\n- Look up a guest's available discount in the loyalty account, per the guest’s user ID.\n- Evaluate the guest’s discount basket against the receipt to verify the applicability of discounts if needed.\n- Locks the user's discount basket using a unique identifier, `external_uid`, generated by your application for the transaction when reward locking is enabled in the Punchh platform for the business. Locking the discount basket prevents other channels from creating s" }, { "info": { "name": "Add Selection to Discount Basket (Redemptions 2.0)", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/select", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "- A single discount basket will be active at a time. If there is no active discount basket, the system will create a new active discount basket along with selected discounts passed in the request parameters.\n- The Punchh system will not have any validation based on points adjustments as discounts are added.\n- When a guest adds multiple discounts, and one is invalid for some reason, the entire request will fail with an error message. The guest will then be required to remove the invalid discount " }, { "info": { "name": "Remove Item From Discount Basket (Redemptions 2.0)", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/unselect", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "- Delete one or more discounts from a discount basket.\n- The Punchh system will not have any validation based on points adjustments as discounts are added.\n- If a discount expires after being added to the discount basket, it is removed from the discount basket. When you make a call to the API, it validates the offers added to the discount basket. If one or more discounts are found to be honored, expired, perished, or archived, the API returns an error message indicating that these discounts cann" }, { "info": { "name": "Batch Redemption Process (Redemptions 2.0)", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/batch_redemptions", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Evaluates the validity of all inputs and commits the redemption. \n\nPunchh evaluates eligibility during the Possible Redemptions call using the receipt details provided (item name, price, quantity, identifiers, etc.). During the Batch Redemption Process call, Punchh revalidates the same receipt to ensure the qualifying conditions are still met before honoring the redemption. \n\nIf any item attributes change between the two calls, Punchh may be unable to match the qualifying items, which can cause " }, { "info": { "name": "Void Redemption (Redemptions 2.0)", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/batch_redemptions/:redemption_ref", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" } ], "params": [ { "name": "redemption_ref", "value": "", "type": "path", "description": "Transaction level identifier for all discount selections
Example - aBCDEfghIJkL-MN1opR" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Voids the complete discount basket. The value of `redemption_ref` must be appended to the URL path. You can get the `redemption_ref` value from the [Get Active Discount Basket](/docs/dev-portal-pos/apis/redemptions-2-0-new-api/paths/~1api~1pos~1discounts~1active/get) API response.\n\nExample:\n\n`DELETE https://{base}/api/auth/batch_redemptions/aBCDEfghIJkL-MN1opR`\n\nNote: It will not support partial voiding of a discount basket." }, { "info": { "name": "Get Active Discount Basket (Redemptions 2.0)", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/active", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "- Get a list of discount details that have been selected by a guest. \n- Only one active basket can exist in the system for a particular guest.\n- If a discount expires after being added to the discount basket, it is removed from the discount basket. When you make a call to the API, it validates the discounts added to the discount basket. If one or more discounts are found to be honored, expired, perished, or archived, the API returns an error message indicating that these discounts cannot be hono" }, { "info": { "name": "Unlock Discount Basket (Redemptions 2.0)", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api/pos/discounts/unlock", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "When reward locking is enabled in the Punchh Platform, the guest's discount basket must be locked. An external ID will be required to lock the discount basket to prevent other channels from creating simultaneous transactions or modifying the discount basket. In this mode, the guest's discount basket must be locked when discounts are applied to a transaction, using a unique identifier `external_uid` specific to the transaction generated by your application.\n\nThe `external_uid` ensures that no mod" } ], "bundled": true }