{ "opencollection": "1.0.0", "info": { "name": "Mobile API", "version": "1.0" }, "items": [ { "info": { "name": "Users", "type": "folder" }, "items": [ { "info": { "name": "Sign in", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/login", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Logs a user into the app of a business and returns the user's information in the response\n" }, { "info": { "name": "Log in With Facebook", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/connect_with_facebook", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API is invoked when a user registers on a business app using Facebook ID, email address, first name, last name, etc. " }, { "info": { "name": "Log in With Apple", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/apple_registrations", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "A user can sign in with Apple using a random email ID generated by Apple.\n\n## Session Behavior After Users Revoke App Access From their Apple ID\nWhen a user authenticates using Apple Sign-In, Punchh generates its own access token that is independent of Apple's authorization. If the user later revokes the app's access through their Apple ID settings (Settings > Apple ID > Password & Security > Apps Using Apple ID), the active Punchh session is not affected, and the user is not automatically logge" }, { "info": { "name": "Log out", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/logout", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Logs a user out of the app of a business, ending the current user session" }, { "info": { "name": "Fetch User Information", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/profile", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a user's details" }, { "info": { "name": "Sign up / Register", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users", "headers": [ { "name": "punchh-app-device-id", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Registers a user's profile on the app of a business\n\nNote: If the business is using referral code, the actual `first_name` and `last_name` of the guest must be passed because the referral code will be generated using the `first_name`, `last_name`, and some random characters. Also, if you do not pass the `first_name` or the `last_name`, the API response may be delayed or time out. \n\n### Using Referral Code As Invite Code in the Sign-up Process\n\nWhen a user signs up using the Sign up / Register AP" }, { "info": { "name": "Update User Profile", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates a user's profile details.\n\nNote: Due to fraud protections, guests are permitted to update their birthdays only once. Subsequent attempts to modify the birthday parameter using the API will fail. In such a case, the API returns a 200 response, but the birthday is not updated." }, { "info": { "name": "Request for Account Deletion", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users", "headers": [ { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Marks the authenticated user's account for deletion. The user account will be deleted within the days configured in the Punchh platform. In order for this API to work, configuration is needed on the Punchh platform.\n\nNote: The User-Agent header **must** contain one of these values in order to identify the device as a mobile device: \"iOS\", \"iPhone\", \"iPone Simulator\", \"Android\"." }, { "info": { "name": "Forgot Password", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/forgot_password", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Sends an email to a user with a reset password link. This API is invoked when a user initiates the forgot password flow on the app of a business." }, { "info": { "name": "User Account History", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/account_history", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a user's account history details. This includes transactions such as check-in, redemption, etc. This does not include gift card related transactions." }, { "info": { "name": "Update User Relation", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_relations/:id", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "Three-digit ID of the person related to the user" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates a user's existing relation (spouse or kid) in the system" }, { "info": { "name": "Delete User Relation", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_relations/:id", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "Three-digit ID of the person related to the user" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Deletes an existing relation (spouse or kid) of a user from the system" }, { "info": { "name": "Create User Relation", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_relations", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a user relation in the system to indicate a user's relationship with another person. Valid relations that can be created are 'spouse' and 'kid'.\n\n " }, { "info": { "name": "Send Verification Email", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/send_verification_email", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Sends an account verification email to the email address provided by a user" }, { "info": { "name": "Get User Session Token", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/session_tokens", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a short-lived session token that can be used to look up a user via POS/kiosk (if supported)" }, { "info": { "name": "Asynchronous User Update", "type": "http" }, "http": { "method": "PATCH", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/async_users", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the details of a user asynchronously.\n\nNote: Due to fraud protections, guests are permitted to update their birthdays only once. Subsequent attempts to modify the birthday parameter using the API will fail. In such a case, the API returns a 200 response, but the birthday is not updated." }, { "info": { "name": "Image Upload to AWS", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/aws_s3_pre_signed_url", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Uploads an image file to an AWS server" }, { "info": { "name": "Fetch User Balance", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/balance", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Displays user information regarding active redemptions, notifications, badges, balance, etc." }, { "info": { "name": "Point Conversion", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/conversions", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables the conversion of a user's points to cash, fuel discounts, or charities based on the configuration or conversion rules set in the Punchh platform." }, { "info": { "name": "List All Deals", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/deals", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns all available deals for a user. The `page` and `per_page` request parameters determine the page(s) returned and the number of deals returned per page. If the `per_page` parameter is not sent, the API returns up to 10 deals in the response. " }, { "info": { "name": "Save Selected Deal", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/deals", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Adds the selected deal to a user's account" }, { "info": { "name": "Estimate Points Earning", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/estimate_points", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a prediction of how many points can be earned before submitting the transaction. The estimate is derived from the base earning rate of the business and does not account for special promotions or campaigns.\n" }, { "info": { "name": "Balance Timelines", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/balance_timelines", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Gets the balance timelines of a user depending on currency or fuel discount or both\n\nNote: Depending on the configuration, different objects are returned in the response (currency, fuel_discount, etc.).\nHence, the `fuel_discount` parameter is not returned in the response for businesses using only currency-based redemptions." }, { "info": { "name": "User Enrollment", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_enrollments", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enrolls a user in a campaign (currently supported for social cause campaigns)" }, { "info": { "name": "User Disenrollment", "type": "http" }, "http": { "method": "PATCH", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_enrollments", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Unregisters a user enrolled in a campaign (currently supported for social cause campaigns)" }, { "info": { "name": "Get Deal Details", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/deals/:redeemable_uuid", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "redeemable_uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a deal" }, { "info": { "name": "Lifetime Stats", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/lifetime_stats", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns loyalty statistics of a user since the time the user signed up / registered on the app of a business" }, { "info": { "name": "Fetch Rolling Points Expiry", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/points_expiry_timeline", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a business to display the number of points that are expiring each month for users in the mobile app. The API returns all future dates on which points are scheduled to expire.\n\nPrerequisite\n\nTo make API calls, the backend flag \"track_reward_banked_points\" and the \"Expires After\" (unredeemed point expiry) option in the Punchh platform must be enabled for the business. If one or both are disabled in Punchh for your business, the API will return an error with this message: \"Your curre" }, { "info": { "name": "Log in With Google", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/google_sign_in", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables mobile application users to log in using Google Sign-in. \n\nThe following must be configured for the business in the Punchh platform to make a successful call to the API:\n\n1\\. The Enable Google Sign-in option must be enabled in the Punchh platform. Contact your Punchh representative to update this Punchh platform configuration. \n\n2\\. Google Web Client ID, Google iOS Client ID / Google Andriod Client ID, and Google Web Client Secret must be sp" }, { "info": { "name": "Reactivate User Profile", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/request_reactivation", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables users to reactivate their deactivated profiles directly from the mobile app if 1) guests are allowed to raise reactivation requests via mobile app and iFrame and 2) the admin indicates that a user profile is eligible for future activation when deactivating the user profile in the Punchh platform. \n\nThe API returns a 200 response and sends a reactivation email with the subject line \"Reactivate account instructions\" to the user. The email messag" } ] }, { "info": { "name": "Single Scan Code", "type": "folder" }, "items": [ { "info": { "name": "Generate Single Scan Code or Short Code", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/single_scan_tokens", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API facilitates the single-scan flow functionality, allowing a user to generate a single-scan code from the mobile app for making a payment, redeeming a discount, adding a tip, or any combination of these in a single transaction at the POS. The API returns a single scan code containing a UUID string in the response. \n\nFor more information, see [Single Scan Flow](/docs/dev-portal-pos/54e5a71a7205c-single-scan-flow).\n\n**Note**: This mobile API endpoint (`POST {server-name}/api2/mobile/single_" } ] }, { "info": { "name": "Payment Cards", "type": "folder" }, "items": [ { "info": { "name": "Fetch All Saved Payment Cards", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payment_cards", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to fetch all saved payment cards" }, { "info": { "name": "Create a Payment Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payment_cards", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates and saves a payment card for a user. This API is triggered when the user saves the payment card on the mobile application." }, { "info": { "name": "Update a Saved Payment Card", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payment_cards/:payment_card_uuid", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" } ], "params": [ { "name": "payment_card_uuid", "value": "", "type": "path", "description": "Unique ID of the saved payment card that Punchh generates when creating/saving this card in the system. See [Create a Payment Card](/docs/dev-portal-mobile/apis/mobile-api/tag/payment-cards/post/api2/mobile/payment_cards)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to update the nickname and preferred status of a saved payment card" }, { "info": { "name": "Delete a Saved Payment Card", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payment_cards/:payment_card_uuid", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" } ], "params": [ { "name": "payment_card_uuid", "value": "", "type": "path", "description": "Unique ID of the saved payment card that Punchh generates when creating/saving this card in the system. See [Create a Payment Card](/docs/dev-portal-mobile/apis/mobile-api/tag/payment-cards/post/api2/mobile/payment_cards)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to delete a selected payment card from the mobile application" } ] }, { "info": { "name": "Loyalty Transfers", "type": "folder" }, "items": [ { "info": { "name": "Transfer Loyalty Points", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/loyalty_transfers/points", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to transfer loyalty points from their account to another user's account by specifying the recipient's email address or phone number and the number of points to transfer.\n\nThe recipient must be an existing member in the loyalty system. The transfer is subject to the business's configured transfer limits, including maximum transfer limits per account and daily receiving limits for the recipient.\n\n**Prerequisite**
\nPeer-to-peer points transfers must be enabled for the business. Co" }, { "info": { "name": "Transfer Loyalty Currency", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/loyalty_transfers/currency", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to transfer loyalty currency (banked reward balance) from their account to another user's account by specifying the recipient's email address or phone number and the amount to transfer.\n\nThe recipient must be an existing member in the loyalty system. The transfer is subject to the business's configured transfer limits, including maximum transfer limits per account and daily receiving limits for the recipient.\n\n**Prerequisite**
\nPeer-to-peer currency transfers must be enabled fo" }, { "info": { "name": "Transfer Loyalty Reward", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/loyalty_transfers/reward", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to transfer a loyalty reward from their account to another user's account by specifying the recipient's email address or phone number and the reward ID to transfer.\n\nThe recipient must be an existing member in the loyalty system. The transfer is subject to the business's configured transfer limits, including maximum transfer limits per account and daily receiving limits for the recipient.\n\n**Prerequisite**
\nPeer-to-peer rewards transfers must be enabled for the business. Contac" } ] }, { "info": { "name": "Meta & Version", "type": "folder" }, "items": [ { "info": { "name": "Program Meta", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/meta.json", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Provides complete information about a business, including locations, redeemables, program type, related gift cards, etc.\n\n>Any update made to the configuration in the Punchh platform will be reflected in the response after 15 minutes, instead of in real time, in order to improve the response time." }, { "info": { "name": "Version Notes", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/version_notes", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "x-pch-digest", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a particular version of the app of a business" }, { "info": { "name": "Making Batch Requests", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/batch_api", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Batching allows you to pass instructions for several operations in a single HTTP request. Punchh will process each of your API calls sequentially / in parallel (to be decided). Once all operations have been completed, a consolidated response will be passed back to you." } ] }, { "info": { "name": "Migration", "type": "folder" }, "items": [ { "info": { "name": "Generate OTP Token", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/verify_token", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generates and mails the verification one-time password (OTP) token used in the secure migration flow." }, { "info": { "name": "Verify OTP Token", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/verify_token", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Verifies the one-time password (OTP) token used in the secure migration flow" }, { "info": { "name": "Basic Migration Look-up", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/migration_lookup", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the success response for a user identified in the migration data provided by a business" }, { "info": { "name": "Migration Look-up", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/migration_lookup", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a user identified in the migration data provided by a business" } ] }, { "info": { "name": "Social Cause Campaign", "type": "folder" }, "items": [ { "info": { "name": "Get Social Cause Campaigns", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/social_causes", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the list of active social cause campaigns created in a business" }, { "info": { "name": "Create Donation", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/social_causes", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a donation for a user based on the selected social cause campaign" }, { "info": { "name": "Social Cause Campaign Details", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/social_causes/:social_cause_id", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "social_cause_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Fetches donation details for a user based on the selected social cause campaign" } ] }, { "info": { "name": "Invitations", "type": "folder" }, "items": [ { "info": { "name": "Get Invitations", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/invitations", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the list of pending invitations of a user" }, { "info": { "name": "Create Gift Card Claim Token", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/invitations", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a claim token for a gift card that has to be transferred" }, { "info": { "name": "Check Status of the Claim Token", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/invitations/check_status", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the status of a claim token to determine if the claim token is valid" }, { "info": { "name": "Delete an Invitation Claim Token", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/invitations/:id", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Deletes the invitation ID and corresponding claim token to transfer a gift card" }, { "info": { "name": "Transfer a Gift Card Using Invitation Claim Token", "type": "http" }, "http": { "method": "PATCH", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/invitations/transfer", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Transfers a gift card to a user using the corresponding claim token" } ] }, { "info": { "name": "Passcodes", "type": "folder" }, "items": [ { "info": { "name": "Forgot Passcode", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/passcodes/forgot_passcode", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Sends an email to a user with a reset passcode link when the user taps the reset passcode button in the app of a business" }, { "info": { "name": "Create Passcode", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/passcodes", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a passcode for a user" } ] }, { "info": { "name": "Coupons", "type": "folder" }, "items": [ { "info": { "name": "Apply Coupons", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/coupons", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Applies a coupon or promo code from the mobile app to gift a user the associated reward. The response from this API endpoint does not return the associated reward; however, you can use the [User Account History](/docs/dev-portal-mobile/b3A6NDQ5NTQ4MTY-user-account-history) API to view the reward gifted to the user." } ] }, { "info": { "name": "Challenges", "type": "folder" }, "items": [ { "info": { "name": "List Challenges", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/challenges", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Lists challenges available for a business. The Challenges feature must be enabled for the business in the Punchh platform. If not enabled, the API will return a 422 Unprocessable Entity error. Contact your Punchh representative to update this Punchh platform configuration.\n\n" }, { "info": { "name": "Fetch Challenge Details", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/challenges/:id", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Authorization", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Lists specific challenge details available for a business. The Challenges feature must be enabled for the business in the Punchh platform. If not enabled, the API will return a 422 Unprocessable Entity error. Contact your Punchh representative to update this Punchh platform configuration. " }, { "info": { "name": "List User Challenges", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users/challenges_listing", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns all challenges associated with the logged-in user. Challenges are grouped into Available, Active, and Past categories, and include user-specific details such as enrollment status, progress, and relevant metadata required to render the challenges listing screen.\n\nThis API supports pagination for efficient data handling.\n\n**Prerequisite**
\nThe Challenges feature must be enabled for the business in the Punchh platform. If not enabled, the API will return a 422 Unprocessable Entity error." }, { "info": { "name": "Opt In to Challenge", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/challenge_opt_in", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Allows loyalty users to explicitly opt into challenge campaigns. This functionality is disabled by default. Contact your Punchh representative to update this configuration setting.\n\n\n" }, { "info": { "name": "Opt Out of Challenge", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/challenge_opt_out", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Allows loyalty users to explicitly opt out of enrolled/opted-in challenge campaigns. This functionality is disabled by default. Contact your Punchh representative to update this configuration setting.\n\n\n\n" } ] }, { "info": { "name": "Surveys", "type": "folder" }, "items": [ { "info": { "name": "Fetch User Survey", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/survey_details", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Timezone", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the URL of a user's available survey" } ] }, { "info": { "name": "Payments", "type": "folder" }, "items": [ { "info": { "name": "Fetch Client Token", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/secure_tokens/:service", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "service", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a secure client token that can be used for different services, such as gift cards, online ordering, etc. " }, { "info": { "name": "Get Client Token", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payments/client_token", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Get Client Token" }, { "info": { "name": "Record Payment", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/payments", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Record Payment" }, { "info": { "name": "Get a PAR Pay Token", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/iframe_payments/new", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to generate a token for a payment card. The user can use the PAR Pay token to purchase gift cards, reload gift cards, generate a single scan code, etc. The API response presents a web page showing fields for entering payment card details. Once this HTML is submitted with proper card details, it will return a token.\n\nTo generate a token, PAR Payments must be configured in the Punchh platform for the business to enable integration services. Once integration services are enabled, the" } ] }, { "info": { "name": "Gift Cards", "type": "folder" }, "items": [ { "info": { "name": "Purchase Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/purchase", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to purchase a gift card using the app of a business" }, { "info": { "name": "Reload Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/reload", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to add to the balance of an existing gift card using the app of a business" }, { "info": { "name": "Import Physical Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Imports a user's physical gift card into the app. The physical gift card is added to the Punchh system." }, { "info": { "name": "Update Gift Card", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a gift card owner to update the name, design, and preference of a gift card" }, { "info": { "name": "Delete Gift Card", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Removes a gift card from a user's app so that it will not be returned in API responses under the gift card list for a user, but does not delete it from the Punchh system\n\nNote: It will be visible under the user profile in the Punchh platform as \"card removed\". To delete it from an existing user account in order to add it again for the same user or another user, please file a support ticket." }, { "info": { "name": "Fetch Gift Cards", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns all of the active gift cards of a user" }, { "info": { "name": "Fetch Gift Card Balance", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/balance", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a specified gift card" }, { "info": { "name": "Fetch Gift Card Transaction History", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/history", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the transaction history of a specified gift card" }, { "info": { "name": "Transfer Gift Card or Balance", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/transfer", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Transfers an entire gift card or partial amount from one user to another user" }, { "info": { "name": "Share Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/share", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to share a gift card with another user" }, { "info": { "name": "Revoke Sharing", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/revoke", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path", "description": "Unique ID of the gift card issued by and maintained in the Punchh system" } ], "body": { "type": "json", "data": "{}" } }, "docs": "If a user has [shared a gift card](/docs/dev-portal-mobile/apis/mobile-api/paths/~1api2~1mobile~1gift_cards~1{uuid}~1share/post) with another user, this API enables the user to revoke the sharing rights." }, { "info": { "name": "Gift a Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/gift", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to gift a gift card to another user" }, { "info": { "name": "Consolidate Gift Cards", "type": "http" }, "http": { "method": "PATCH", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/consolidate", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to transfer the entire balance of a gift card to another gift card.\n\nNote: After the balance transfer, the system removes the source gift card from the user's timeline and changes its status to 'closed' for the owner. Additionally, access is revoked for all users with whom the gift card was shared. Currently, this is applicable only to Givex and Heartland gift card providers." }, { "info": { "name": "Tip via Gift Card", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/tip", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a user to leave a tip (gratuity) using a gift card" }, { "info": { "name": "Get Gift Card EPIN", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/gift_cards/:uuid/epin", "headers": [ { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "uuid", "value": "", "type": "path", "description": "Unique ID of the gift card issued by and maintained in the Punchh system." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the generated EPIN for a gift card" } ] }, { "info": { "name": "Referrals", "type": "folder" }, "items": [ { "info": { "name": "Fetch Possible Referrers", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/:checkin_id/referrals", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "checkin_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of people who have possibly referred a guest to use the loyalty program of a business" }, { "info": { "name": "Select Referrer", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/:checkin_id/referrals", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "checkin_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Selects a person who possibly referred a guest to use the loyalty program of a business" } ] }, { "info": { "name": "Feedback", "type": "folder" }, "items": [ { "info": { "name": "Create Feedback", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/feedbacks", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates feedback in the system based on the message and/or rating provided by a user" }, { "info": { "name": "Update Feedback", "type": "http" }, "http": { "method": "PATCH", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/feedbacks/:feedback_id", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "feedback_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Feedback" } ] }, { "info": { "name": "Check-ins", "type": "folder" }, "items": [ { "info": { "name": "Create Loyalty Check-in by Barcode", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins/barcode", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a loyalty check-in for a user when the user scans/enters the barcode printed on an order receipt. The user can scan the barcode using the mobile app of the business or enter the barcode on the website of the business." }, { "info": { "name": "Create Loyalty Check-in by QR Code", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins/qrcode", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a loyalty check-in for a user when the user scans a quick-response (QR) code using the mobile app of the business" }, { "info": { "name": "Create Loyalty Check-in by Receipt Image", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins/receipt_image", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a loyalty check-in for a user based on the receipt image captured by the user. The user captures the receipt image for an order and taps the create check-in button on the mobile app of the business. When the receipt is approved, loyalty points are added to the user's account." }, { "info": { "name": "Fetch Check-ins", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns all check-ins of a user" }, { "info": { "name": "Account Balance", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins/account_balance", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a user's account details, including reward details such as reward ID and account balance details such as banked currency, membership level, etc." }, { "info": { "name": "Transaction Details", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/checkins/transactions", "headers": [ { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "x-pch-digest", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a particular transaction using the transaction ID" } ] }, { "info": { "name": "Offers", "type": "folder" }, "items": [ { "info": { "name": "List User Offers", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/offers", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "List User Offers" }, { "info": { "name": "Mark Offers As Read", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/offers/mark_read", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Marks specific offers that have been read by a user:\n\n- Within the app via the News & Offers screen. The value `read_through_app` is passed with the `event_type` request parameter.\n\n- Via push notification on the phone screen. The value `app_open_via_push` is passed with the `event_type` parameter.\n\nFor more information about push notifications and payload based on different types of notifications, including platform configurations required to enable push notifications, see [Push Notifications](" } ] }, { "info": { "name": "Notifications", "type": "folder" }, "items": [ { "info": { "name": "Fetch User Notifications", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/notifications", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of notifications received by a user\n\nFor more information about push notifications and payload based on different types of notifications, including platform configurations required to enable push notifications, see [Push Notifications](/docs/dev-portal-mobile/additional-topics/notifications-push).\nAlso, see [Notifications and Badges Count](/docs/dev-portal-mobile/additional-topics/notifications-badgecounts) for information about various use cases and best practices." }, { "info": { "name": "Delete User Notification", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/notifications/id", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the notification to be deleted" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Deletes a notification received by a user\n" }, { "info": { "name": "Fetch Messages", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/messages", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Fetches the list of rich messages available for a user\n\nApart from the API response mentioned here, the mobile client will have to fetch the style JSON directly from S3 (Amazon Cloud Storage), which defines how to render the rich message.\n\nFor details, see [Style JSON for Rich Messages](/docs/dev-portal-mobile/additional-topics/style-json-for-rich-messages)." }, { "info": { "name": "Mark Messages As Read", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/message_readerships", "headers": [ { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Rich messages of type `user_specific` can be marked as read by making this request.\n" }, { "info": { "name": "Delete Messages", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/message_readerships/:message_id", "headers": [ { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "message_id", "value": "", "type": "path", "description": "ID of the `user_specific` message that will be deleted" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Rich messages of type `user_specific` can be deleted by making this request.\n" } ] }, { "info": { "name": "File Upload", "type": "folder" }, "items": [ { "info": { "name": "Get Signed URL", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/file_upload", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Get Signed URL" } ] }, { "info": { "name": "Beacons", "type": "folder" }, "items": [ { "info": { "name": "Record Beacon Entry", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/locations/beacon_entry", "headers": [ { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API pertains to how a registered user is detected when the user enters the beacon's range and what follows." }, { "info": { "name": "Record Beacon Exit", "type": "http" }, "http": { "method": "DELETE", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/locations/beacon_exit", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "Authorization", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API pertains to what action is triggered when an already-detected, registered user leaves the beacon's range." } ] }, { "info": { "name": "Locations", "type": "folder" }, "items": [ { "info": { "name": "Location Configuration", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/locations/configuration", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Location Configuration" }, { "info": { "name": "Diagnostic Logs", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/locations/:location_key/diagnostic_logs", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "location_key", "value": "", "type": "path", "description": "Location key" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Diagnostic Logs" }, { "info": { "name": "Search Locations", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/locations/search", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Search Locations" } ] }, { "info": { "name": "Badges", "type": "folder" }, "items": [ { "info": { "name": "Update Badge With Story ID", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/badges/:badge_id", "headers": [ { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "badge_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update Badge With Story ID" } ] }, { "info": { "name": "WiFi Acquisition", "type": "folder" }, "items": [ { "info": { "name": "Guest Look-up for WiFi Enrollment", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/wifi/users/", "headers": [ { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns whether a user exists in the business or not" }, { "info": { "name": "Enroll Guests via WiFi", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/wifi/users/", "headers": [ { "name": "Accept-Language", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enrolls guests for eClub using WiFi as the acquisition channel" } ] }, { "info": { "name": "Drive-Thru", "type": "folder" }, "items": [ { "info": { "name": "Generate Loyalty Short Code", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/drivethru_code", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "x-pch-digest", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generates a short code from the mobile app, which the loyalty user can share verbally at the drive-thru window, enabling faster and more convenient account look-up at the POS. \n\nThe loyalty short code is intended for drive-thru identification only and cannot be used for payments. To generate a loyalty short code that supports both identification and payments, use the [Generate Single-Scan Code or Short Code API](https://developers.partech.com/docs/dev-portal-mobile/apis/mobile-api/tag/single-sca" } ] }, { "info": { "name": "Game", "type": "folder" }, "items": [ { "info": { "name": "Fetch Games", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/par_games", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This API allows clients to fetch configured game URLs from the Punchh dashboard through an authenticated request. It enables mobile and web applications to dynamically display or trigger the correct game experiences based on the configurations set by brand admins. Only active game URLs are returned, ensuring that apps always reference the most current and valid game links." } ] }, { "info": { "name": "Collectibles", "type": "folder" }, "items": [ { "info": { "name": "List Collectibles", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/collectibles", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the list of collectibles configured for a business. Supports pagination and optional filtering by collectible category.\n\nNote: The Digital Collectibles feature must be enabled for the business in the Punchh platform. Contact your Punchh representative to update this Punchh platform configuration.\n" }, { "info": { "name": "Fetch Collectible Details", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/collectibles/:collectible_id", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "punchh-app-device-id", "value": "" }, { "name": "User-Agent", "value": "" } ], "params": [ { "name": "collectible_id", "value": "", "type": "path", "description": "The unique identifier of the collectible to fetch details for." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the details of a specific collectible by its ID, including the active campaigns associated with it.\nThe API enforces the following validations and business rules:\n* Only one collectible_id is allowed per request.\n* Responses are limited to collectibles associated with the requesting business.\n* Only active campaigns are included in the response.\n* Campaigns are sorted by start date in ascending order, with the earliest starting campaign displayed first.\n\nNote: The Digital Collectibles fe" }, { "info": { "name": "Fetch User Collectibles", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/users_collectibles", "headers": [ { "name": "Accept", "value": "" }, { "name": "Authorization", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept-Language", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "User-Agent", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns the list of collectibles earned by a user. Supports pagination and optional filtering by collectible category.\n\nNote: The Digital Collectibles feature must be enabled for the business in the Punchh platform. Contact your Punchh representative to update this Punchh platform configuration.\n" } ] }, { "info": { "name": "Swag", "type": "folder" }, "items": [ { "info": { "name": "Get User Save Points for Swag", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_banking_preferences", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a loyalty user's \"Save Points for Swag\" banking preferences, including the save-points opt-in status, configured threshold, and the number of points currently accumulated toward swag redemption.\n\n## Prerequisites\n\n- The business must have the \"Save Points for Swag\" feature enabled in the Punchh platform.\n\n- The business must support banked point debit.\n\n\nIf either condition is not me" }, { "info": { "name": "Save Points for Swag", "type": "http" }, "http": { "method": "PUT", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_banking_preferences", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "In Points Convert to Currency or Points Convert to Rewards loyalty programs, loyalty users earn points on every purchase. By default, these points are automatically converted (\"banked\") into rewards or currency. However, some loyalty users may prefer to accumulate their points and redeem them for swag instead.\n\nThis API lets loyalty users manage their \"Save Points for Swag\" preference from the mobile app. When the \"Save Points for Swag\" feature is enabled for the brand, loyalty users can opt in " }, { "info": { "name": "Redeem Swag", "type": "http" }, "http": { "method": "POST", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/swag_redemptions", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "Accept-Language", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "The Swag Redemption API allows an authenticated loyalty member to redeem saved loyalty points for a branded swag item. The API handles the full redemption flow end-to-end — including eligibility checks, point deduction, inventory decrement, reward creation, and optional shipping detail capture.\n\nSee [Get User Save Points for Swag](/docs/dev-portal-mobile/apis/mobile-api/paths/~1api2~1mobile~1user_banking_preferences/get), [Fetch Available User Swag](/docs/dev-portal-mobile/apis/mobile-api/paths/" }, { "info": { "name": "Fetch Available User Swag", "type": "http" }, "http": { "method": "GET", "url": "https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/user_merch", "headers": [ { "name": "Authorization", "value": "" }, { "name": "x-pch-digest", "value": "" }, { "name": "Content-Type", "value": "" }, { "name": "Accept", "value": "" }, { "name": "User-Agent", "value": "" }, { "name": "punchh-app-device-id", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves all available swag items that the authenticated user can view or redeem using their loyalty points. The response includes item details such as name, image, point cost, availability window, and fulfilment method. Results are paginated. Only items available in inventory are returned in the response.\n\nSee [Get User Save Points for Swag](/docs/dev-portal-mobile/apis/mobile-api/paths/~1api2~1mobile~1user_banking_preferences/get), [Save Points for Swag](/docs/dev-portal-mobile/apis/mobile-ap" } ] } ], "bundled": true }