openapi: 3.2.0 info: title: Mobile Meta & Version API version: '1.0' contact: name: Punchh Dev Support url: https://developers.punchh.com description: 'Punchh provides a robust platform for offering loyalty programs to customers. When a business integrates its back-end with the Punchh server, the Punchh APIs become instrumental in executing loyalty programs for enrolled customers, primarily via business-branded mobile apps and websites tailored by Punchh. To establish integration with the Punchh APIs, you need to understand how they are invoked and what responses are returned by the Punchh server. You can call APIs using any suitable API test client, such as Postman. Thus, the response to every API call made in Postman under a chosen environment (in app and/or platform) is reflected in the app and/or platform.' servers: - url: https://SERVER_NAME_GOES_HERE.punchh.com tags: - name: Meta & Version paths: /api2/mobile/meta.json: get: responses: '200': description: '' content: application/json: schema: type: object properties: android_ga_code: type: string description: Android Google Analytics code of the program's Android app android_geocode_api_key: type: string description: Android geolocation key beacon_uuid: type: string description: Unique ID that identifies a beacon deployed at any location content_language: type: string description: The language used in the response. Example values are "en", "es", "es-CR", etc. earning_description: type: string description: Brief description of the earning program for the business facebook_sharing: type: boolean description: Determines whether users can share feedback on their Facebook account or not email_verification_enabled: type: boolean description: 'Whether a user needs to verify the user''s email address by using the link sent in the verification email or not The default value is "false".' ios_ga_code: type: string description: iOS Google Analytics code of the program's iOS app ios_geocode_api_key: type: string description: iOS geolocation key marketing_image_url: type: string description: Marketing image URL of the business or service marketing_info: type: string description: A descriptive/fun blurb about the program marketing_message: type: string description: This is the default message that is shown to a user when the user writes a review. It is also the default tagline that appears on a Facebook post. marketing_title: type: string description: Name of the business or service uber_client_id: type: string description: Unique ID that identifies Punchh as a consumer of Uber APIs promotional_coupons_enabled: type: boolean description: Whether promotional coupons are enabled for the business or not gift_cards_enabled: type: boolean description: Whether the app of the business has gift cards or not gift_card_minimum_transaction_amount: type: integer description: Minimum amount with which gift card transactions (e.g., purchase/reload) will be allowed max_gift_card_balance: type: number format: double description: "Maximum currency amount that can be on a gift card \n\nA value of 0 (zero) indicates that there is no limit on the amount that can be on a gift card." social_cause_campaigns_enabled: type: boolean description: Whether social cause campaigns are enabled for the business or not default_map_search_radius: type: integer description: The radius within which the app searches for business locations with respect to the current location of a user facebook_signup_incentive_text: type: string description: Text displayed on the sign-up screen to inform a user about any rewards the user might get by signing up using Facebook require_passcode_for_gift_card: type: boolean description: A secondary authentication that, if enabled from the Punchh platform, is required for sharing and transferring gift cards support_email_address: type: string description: Support email address of a program faq_url: type: string description: URL of a program's frequently asked questions (FAQ) page instagram_page_url: type: string description: Instagram page URL allowing users to follow a business on Instagram order_now_url: type: string description: URL of the page from which a user can order. This opens in the Order tab of the app. order_url_for_sso: type: string description: SSO URL menus_url: type: string description: URL of the page where the program's menus are explained privacy_url: type: string description: URL of the page where a user can privately interact with a business or service terms_and_conditions_url: type: string description: URL of the page that explains the program's terms and conditions nutrition_url: type: string description: URL of the nutrition page catering_url: type: string description: URL of the catering page careers_url: type: string description: URL of the careers page facebook_page: type: string description: Facebook page of the business twitter_handle: type: string description: Twitter handle that allows a user to follow an app (e.g., `@business_name`) share_invite_code_message: type: string description: Invitation code message as configured in the Punchh platform share_invite_code_title: type: string description: Invitation code title as configured in the Punchh platform share_invite_code_description: type: string description: Invitation code description as configured in the Punchh platform app_disclaimer: type: string description: Disclaimer about the app and its usage game_disclaimer: type: string description: Disclaimer about the gaming module available in the app upgrade_disclaimer: type: string description: Disclaimer about account upgrade (if available) in the app challenges_disclaimer: type: string description: Disclaimer about the challenges module available in the app earning_disclaimer: type: string description: Disclaimer about the earning rules in the app olo_base_url: type: string description: Specific to a business using the Olo online ordering service. Base URL used for online ordering olo_api_key_ios: type: string description: Specific to a business using the Olo online ordering service. API key for iOS apps olo_api_key_android: type: string description: Specific to a business using the Olo online ordering service. API key for Android apps olo_provider_key: type: string description: Specific to a business using the Olo online ordering service. Provider key to use online ordering offered by Olo olo_group_order_invite_url: type: string description: Specific to a business using the Olo online ordering service. Olo supports group orders. This URL is used to invite multiple users to collaborate while placing an order. business_id: type: integer description: Unique ID that identifies the business business_name: type: string description: Name of the business checkin_evidenced_by: type: string description: Method of check-in used by a user (e.g., barcode, qr_code, receipt_image, etc.) guest_identity_code_type: type: string description: How a user is identified at the POS (the POS scanner type - e.g., barcode, qr_code, etc.) visits_per_card: type: integer description: Number of visits required for a single card completion card_redemption_value: type: integer description: What a user gets when redeeming a completed card migration_allowed: type: boolean description: Returns "true" if the migration flag is enabled for devices minimum_visit_amount: type: integer description: Minimum amount in selected currency required for a visit to be counted minimum_visit_hours: type: integer description: Minimum time duration between two consecutive visits of a user so that both visits are counted separately minimum_age_to_signup: type: integer description: Minimum age at which a user is allowed to sign up misc1: type: string description: Miscellaneous field used for app-specific needs. 1 of 4 fields misc2: type: string description: Miscellaneous field used for app-specific needs. 2 of 4 fields misc3: type: string description: Miscellaneous field used for app-specific needs. 3 of 4 fields misc4: type: string description: Miscellaneous field used for app-specific needs. 4 of 4 fields earning_unit: type: string description: What a user earns as the result of a check-in. Values can be points or visits. currency_earned: type: integer description: Value of points/visits earned as the result of a conversion as configured in the Punchh platform points_conversion_threshold: type: integer description: The threshold value at which a user's accumulated points get converted to banked rewards. For example, after accumulating 100 points, the points get converted to dollars. redemption_expiry_minutes: type: integer description: The time duration after which a redemption code generated by a user expires allow_rating_in_feedback: type: boolean description: "A value of \"true\" indicates that the app of the business supports ratings in feedback. Ratings can be either stars or emojis. \n\nThe default value is \"false\"." maximum_rating_in_feedback: type: integer description: Maximum rating that can be given by a user, as configured in the Punchh platform. The scale will be from 1 to this maximum value, which can vary from 3 to 10. checkins_earn: type: string description: What a user earns as the result of a check-in. Values returned are "points", "visits", and "points_and_visits". gift_card_designs: type: array description: 'Returns the different card designs configured in the Punchh platform ' items: type: object properties: backgroud_image_url: type: string description: URL of the image that will be displayed as the background of a gift card card_type: type: string description: 'Type assigned to a particular gift card design. Different types available are: - Physical gift card - Virtual gift card' name: type: string description: Name assigned to a particular gift card design design_id: type: integer description: Unique ID of a particular gift card design locations: $ref: '#/components/schemas/Locations' membership_levels: $ref: '#/components/schemas/Membership-Levels' redeemables: $ref: '#/components/schemas/redeemable' games: type: array items: type: object properties: game_viral_message: type: string description: The message for the game. It should be intuitive. name: type: string description: Name of the game images_on_card: type: integer description: Image on the card displayed for the game scratch_valid_codes: type: string game_type: type: string description: Game type (e.g., scratch_n_match, slot_machine, apples, etc.) requires_code_validation: type: boolean description: Whether games require a validation code to begin game_id: type: integer description: ID provided by Punchh that identifies the game in the business gaming_levels: type: array items: type: object properties: extra_punchhs: type: integer redeemable_id: x-nullable: true level: type: string profile_field_questions: $ref: '#/components/schemas/profile_field_questions-Object' banking_rules: $ref: '#/components/schemas/banking_rules-Object' base_redeemable: $ref: '#/components/schemas/base_redeemable-Object' payment_credential: $ref: '#/components/schemas/payment_credential' enable_gift_card_auto_reload: type: boolean description: Whether the Gift Card Auto Reload option is enabled for a business or not gift_card_auto_reload_threshold: type: number format: float description: Threshold amount below which a gift card becomes eligible for auto-reload gift_card_auto_reload_default: type: number format: float description: Default amount with which an eligible gift card will be auto-reloaded gift_card_auto_reload_disclaimer: type: string description: Disclaimer about gift card auto-reload subscriptions: $ref: '#/components/schemas/subscription' subscription_enabled: type: boolean description: Whether the subscription feature is enabled for the business or not subscriptions_payment_credential: $ref: '#/components/schemas/subscriptions_payment_credential' auto_select_strategy: type: string x-stoplight: id: eouuusnx6t4mk description: One or more categories of discount types chosen for automatically applying discounts. Possible values - offer, subscription. The auto-redemption strategy selected by the business can be consumed by the mobile app to identify the offers that will be auto-applicable. This enables guests to have visibility on their available offers, which can be automatically applied on their discount basket during a transaction if their discount basket qualifies for auto-applicable offers. Applicable to businesses using [Redemptions 2.0](/docs/dev-portal-mobile/apis/mobile-redemptions-2-0-new-api). allow_guest_to_raise_reactivation: type: boolean x-stoplight: id: rwy483ir9twrx description: Whether or not to allow a user with a deactivated account to request account reactivation directly from the mobile app. The value is set to true if guests are allowed to raise reactivation requests via mobile app and iFrame. Otherwise, the value is set to false. For more information, see [Reactivate User Profile](/docs/dev-portal-mobile/5f81f5f1ee065-reactivate-user-profile). enable_gift_card_purchase: type: boolean x-stoplight: id: 7pxa55dfyipnx description: Determines whether users can purchase a gift card using the business mobile app enable_gift_card_reload: type: boolean x-stoplight: id: 2653t9xtf44mo description: Determines whether users can add to the balance of an existing gift card using the business mobile app enable_gift_card_transfer: type: boolean x-stoplight: id: rcr0s41ktzkln description: Determines whether users can transfer the gift card balance amount (both full and partial) to another user using the business mobile app. enable_gift_card_gifting: type: boolean x-stoplight: id: tt3nj6x4bkc7x description: Determines whether the mobile app should allow users to gift a card to another user enable_gift_card_consolidation: type: boolean x-stoplight: id: 10iefs1fqx3j2 description: Determines whether users can transfer the entire balance of a gift card to another gift card using the business mobile app enable_gift_card_sharing: type: boolean x-stoplight: id: sq16wsc6729v5 description: Determines whether users can share a gift card with another user using the business mobile app create_empty_gift_cards: type: boolean x-stoplight: id: 3z5e2d0h7nao6 description: Determines whether users can create gift cards without any funds loaded onto them initially using the business mobile app show_gift_card_history: type: boolean x-stoplight: id: 2cxbwiefrynmh description: Determines whether the mobile app should show gift card history delete_gift_card_after_consolidation: type: boolean x-stoplight: id: ing457ommrg9t description: Determines whether the mobile app can automatically delete the empty gift card after card consolidation gift_card_default_amounts: $ref: '#/components/schemas/gift-card-default-amounts' preferred_gift_cards: type: array x-stoplight: id: otfzsn65uvwmr description: 'Types of gift cards supported by a business. Mobile apps can use this value to determine the gift cards the business supports. The gift cards supported by a business are configured in the Punchh platform. If no gift card types are configured in the Punchh platform, the array will be empty. Contact your Punchh representative to update this Punchh platform configuration. Possible values: * physical_gift_card: Physical gift cards issued by the business * virtual_gift_card: Digital gift cards issued by the business * physical_comp_card: Physical complimentary cards provided by the business * virtual_comp_card: Digital complimentary cards provided by the business * network_gift_card: Gift cards issued through a network of businesses' items: x-stoplight: id: nm4aklky8cx1h type: string multiple_redemptions_enabled: type: boolean x-stoplight: id: ix7ufqnza22up description: Indicates whether the multiple redemptions feature is enabled for the business. If set to true, the API returns the `multiple_redemptions` object in the response. multiple_redemptions: $ref: '#/components/schemas/multiple-redemptions' cancel_redemption: type: boolean x-stoplight: id: qrp2xkg22q8yk description: Indicates whether the user can revoke (cancel) the generated redemption code from the brand's app ios_guest_account_deactivation: type: boolean x-stoplight: id: v2hx8e1u9ndxw description: Indicates whether a business has enabled account deactivation for its iOS app users android_guest_account_deactivation: type: boolean x-stoplight: id: 27rh6m506kxpq description: Indicates whether a business has enabled account deactivation for its Android app users ios_guest_account_deletion: type: string x-stoplight: id: gr03hhm45pmj9 description: 'Guest account deletion type that a business has configured for its iOS app users. Possible values: none, direct, email' android_guest_account_deletion: type: string x-stoplight: id: 3rojrxcv51ui5 description: 'Guest account deletion type that a business has configured for its Android app users. Possible values: none, direct, email' guest_account_deletion_request_email: type: object x-stoplight: id: ci1ycws1wivl0 description: Specifies the configuration for sending an email notification to the business when a guest requests account deletion. This includes details like the recipient email, subject line, and message body. properties: to: type: string x-stoplight: id: avv881uklhuw4 description: Recipient email address where the account deletion request will be sent 'subject ': type: string x-stoplight: id: pg6klkt0cvdxp description: Subject line of the email. It can include placeholders like {{{program_name}}} that will be dynamically replaced with the actual program name. body: type: string x-stoplight: id: ke7rtjn05oyy1 description: Body of the email message. It can include dynamic placeholders like {{{email}}} for the guest's email and {{{program_name}}} for the loyalty program name. app_feedback_url: type: string x-stoplight: id: mcny5ckhel889 description: URL of the business where users can submit feedback related to the mobile app experience accessibility_url: type: string x-stoplight: id: 2umrzch3lohhc description: URL of the business that provides information or support related to accessibility features enable_advance_auth: type: boolean x-stoplight: id: ebvx17jwjxw6f description: Indicates whether Advanced Authentication is enabled for the business. Returns true if Advanced Authentication is enabled for the business; otherwise, false. program_type: type: string x-stoplight: id: wiphqrzhie1cy description: 'Provides information about the program type configured for the business in the Punchh platform. Possible values: * points_unlock_redeemables - Indicates the program is Points Unlock Redeemables based * points - Indicates program is points convert to rewards or currency * visit - Indicates the program is Visit-based * points_and_visits - Indicates the program is hybrid and includes both points and visits * none - Indicates no loyalty program See [Punchh Offers and Program Types](/docs/dev-portal-developer-resources/150fedd8daa77-punchh-offers-and-program-types#program-types). You must log in to the developer portal to access the topic.' points_conversion_type: type: string x-stoplight: id: rubjr2reovscp description: "Provides information about the conversion type configured for the business based on the program type selected for the business in the Punchh platform: Possible values: \n- staged - Applicable when `program_type` is points_unlock_redeemables or points. The staged value indicates that points are earned normally (check-ins, purchases, etc.), but when you redeem, the system does not deduct points immediately at the time of generating a redemption code or [SSF code](/docs/dev-portal-mobile/apis/mobile-api/tag/single-scan-code/post/api2/mobile/single_scan_tokens).\n- none - Applicable when `program_type` is points. The none value indicates points do not get converted into any entity, such as rewards or currency. \n- currency - Applicable when `program_type` is points. The currency value indicates that earned points are automatically converted to currency at predefined point thresholds.\n- rewards - Applicable when `program_type` is points. The rewards value indicates that earned points are automatically converted to rewards at predefined point thresholds.\nSee [Punchh Offers and Program Types](/docs/dev-portal-developer-resources/150fedd8daa77-punchh-offers-and-program-types#program-types). You must log in to the developer portal to access the topic." guest_lookup_type: type: string x-stoplight: id: f26i84yfecjcm description: An identifier in the mobile app and iFrame used for guest look-up at the POS. If the bar code is configured as the guest’s identity in the Punchh platform for the business, the mobile app and iFrame will only support phone number for guest look-up. Contact your Punchh representative for more information about this Punchh platform configuration. enable_guest_challenge_opt_in: type: boolean x-stoplight: id: jraehwtu9pz58 description: Indicates whether guests can opt in to challenge-based activities. When true, the opt-in button is shown on eligible challenge cards in the mobile app; when false, it is hidden. Contact your Punchh representative to update this configuration setting. enable_guest_challenge_opt_out: type: boolean x-stoplight: id: 0hslc3uxk730q description: Indicates whether guests can opt out of challenge-based activities. When true, the opt-out button is shown on eligible challenge cards in the mobile app; when false, it is hidden. Opt-in must be enabled for challenges in the Punchh platform if Opt-out functionality is required. Contact your Punchh representative to update this configuration setting. If an invalid combination is set (Opt-in disabled while Opt-out enabled), the mobile app hides both buttons. enable_loyalty_identification_at_drive_thru: type: boolean x-stoplight: id: j3apvz3uq7xib description: Indicates whether loyalty users can generate a 4-digit numeric/alphanumeric short code in the mobile app. The short code is used to look up the user’s account and retrieve their balance at the POS. See [Generate a Drive-Thru Short Code](https://developers.partech.com/docs/dev-portal-mobile/647b28e02d630-generate-a-drive-thru-short-code) drive_thru_location_level_strategy: type: boolean x-stoplight: id: dqjhyppyrpp8v description: Indicates whether the drive-thru short code should be generated from the location-level pool. When set to true, the mobile app must send a location_id when requesting a short code. This parameter is always set to true. See [Generate a Drive-Thru Short Code](https://developers.partech.com/docs/dev-portal-mobile/647b28e02d630-generate-a-drive-thru-short-code) enable_drive_thru_pay: type: boolean description: Indicates whether the short code can be used for drive-thru payments when the business supports the single scan flow. When set to true, the loyalty user can pay at the drive-thru using the short code. When set to false, the loyalty user can only earn points or rewards at the drive-thru using the short code, but cannot use it for payment. Contact your Punchh representative to update this Punchh platform configuration. enable_subscription_taxation_support: type: boolean x-stoplight: id: 7tdkirnwtjg67 description: Indicates whether tax handling for subscriptions is enabled. When set to true, the mobile app displays tax-related line items and calculates them accordingly. When set to false, it hides tax line items during subscription check-out. Contact your Punchh representative to update this Punchh platform configuration. enable_pargames_integration: type: boolean description: Indicates whether PAR Games is enabled for the brand. When 'true', the mobile app displays the PAR Games section in the bottom navigation bar or the More menu. When 'false', the section is hidden. Contact your Punchh representative to update this Punchh platform configuration. enable_save_points_for_swag: type: boolean description: 'Indicates whether the "Save Points for Swag" feature is enabled for the business. When ''true'', loyalty users can choose to save loyalty points for merchandise redemption instead of having them automatically converted into rewards or currency. When ''false'' (or not configured), the feature is unavailable and user-level "Save Points for Swag" preferences cannot be configured through the mobile app. Contact your Punchh representative to update this platform configuration. Once enabled, this feature cannot be disabled through the Punchh platform. If changes are required, CSMs must contact the engineering team. ' p2p_authentication_type: type: string x-stoplight: id: p2p-authentication-type description: 'Indicates the authentication type required for peer-to-peer (P2P) loyalty transfers. Possible values: * `none` - No additional authentication is required for P2P transfers. * `email_password_authentication` - The mobile app must prompt the user to enter their existing password before completing a P2P transfer. Contact your Punchh representative to update this Punchh platform configuration.' enable_points_transfer: type: boolean description: Indicates whether the peer-to-peer points transfer feature is enabled for the business. When set to true, users can transfer points to another user via the mobile app. Contact your Punchh representative to update this configuration. enable_currency_transfer: type: boolean description: Indicates whether the peer-to-peer currency transfer feature is enabled for the business. When set to true, users can transfer currency to another user via the mobile app. Contact your Punchh representative to update this configuration. enable_rewards_transfer: type: boolean description: Indicates whether the peer-to-peer rewards transfer feature is enabled for the business. When set to true, users can transfer rewards to another user via the mobile app. Contact your Punchh representative to update this configuration. membership_tier_boost: type: string description: "Indicates the current Membership Tier Boost status for the business. When enabled, allows business admins to grant members a temporary promotional tier upgrade through manual gifting, campaigns, or automated triggers. Possible values: \n* `enabled` - Tier Boost is active and admins can gift promotional tier status to members.\n* `disabled` - Default. Tier Boost is turned off and all currently active promotional gifts are revoked immediately upon save.\n* `disabled_keep_active` - Tier boost is turned off for new gifts but any currently active promotional gifts will continue until their expiry date).\n" enum: - enabled - disabled - disabled_keep_active enable_passkeys: type: boolean description: Indicates whether passkeys are enabled for the business. If false or absent, mobile/web app must not show any passkey-related UI. If true, mobile/web app may show passkey-related UI and must respect the `login_mode` parameter. Contact your Punchh representative to update this Punchh platform configuration. See [Passkey Authentication Guide](https://developers.partech.com/docs/identity-service/passkey-authentication#passkey-authentication-sign-in) login_mode: type: string enum: - preferred - optional default: preferred description: Controls whether passkey sign-in is presented as the preferred or an optional sign-in method. Only present when `enable_passkeys` is true. Defaults to "preferred" if no explicit mode is configured. Contact your Punchh representative to update this Punchh platform configuration. See [Passkey Authentication Guide](https://developers.partech.com/docs/identity-service/passkey-authentication#passkey-authentication-sign-in) enable_external_idp: type: boolean description: Indicates whether external identity provider (SAML/OIDC) login is enabled for this brand. If false or absent, mobile/web app should not show external IDP sign-in options. Contact your Punchh representative to update this Punchh platform configuration. See [Enterprise IDP Integration](https://developers.partech.com/docs/identity-service/apis/gis/tag/enterprise-idp-integration) gis: type: object description: Guest Identity Service (GIS) authentication configuration for this business. properties: enable_advance_auth: type: boolean description: Indicates whether advanced authentication is enabled. enable_basic_auth: type: boolean description: Indicates whether basic authentication (email and password) is enabled. enable_facebook_login: type: boolean description: Indicates whether Facebook sign-in is enabled. enable_google_login: type: boolean description: Indicates whether Google sign-in is enabled. enable_apple_login: type: boolean description: Indicates whether Apple sign-in is enabled. passkeys_enabled: type: boolean description: Corresponds to the root-level `enable_passkeys` response parameter. Always present, even when false. If this value differs from the root-level `enable_passkeys` response parameter, treat it as the source of truth. external_idp_enabled: type: boolean description: Corresponds to the root-level `enable_external_idp` response parameter. Always present, even when false. If this value differs from the root-level `enable_external_idp` response parameter, treat it as the source of truth. login_mode: type: string enum: - preferred - optional description: Corresponds to the root-level `login_mode` response parameter. Only present when passkeys are enabled. If this value differs from the root-level `login_mode` response parameter, treat it as the source of truth. examples: default: value: android_ga_code: CODE_GOES_HERE android_geocode_api_key: null program_type: points_unlock_redeemables points_conversion_type: staged guest_lookup_type: short_code beacon_uuid: UUID_GOES_HERE content_language: en earning_description: Receive a $10 credit every 100 points. facebook_sharing: true email_verification_enabled: false ios_ga_code: CODE_GOES_HERE ios_geocode_api_key: null marketing_image_url: IMAGE_URL_GOES_HERE marketing_info: Business Blurb to be posted on Facebook marketing_message: I'm earning rewards! marketing_title: Punchh Coffee Roasters uber_client_id: UBER_CLIENT_ID promotional_coupons_enabled: false gift_cards_enabled: false enable_gift_card_auto_reload: true gift_card_auto_reload_threshold: 50 gift_card_auto_reload_default: 50 gift_card_auto_reload_disclaimer: Gift Card Auto-reload disclaimer social_cause_campaigns_enabled: true default_map_search_radius: 100 facebook_signup_incentive_text: Earn 5 Free points gift_card_minimum_transaction_amount: 10 max_gift_card_balance: 350 require_passcode_for_gift_card: false support_email_address: test@example.com faq_url: '' instagram_page_url: INSTAGRAM order_now_url: URL_GOES_HERE order_url_for_sso: URL_GOES_HERE menus_url: MENU_URL privacy_url: '' terms_and_conditions_url: '' nutrition_url: '' catering_url: '' careers_url: '' facebook_page: FACEBOOK_PAGE_URL twitter_handle: '' share_invite_code_message: Use my code {{referral_code}} or click on {{referral_url}} to earn extra points. share_invite_code_title: Use my Invitation Code! share_invite_code_description: null app_disclaimer: Disclaimer about the app and its usage game_disclaimer: Disclaimer about the gaming module available in the app upgrade_disclaimer: Disclaimer about account upgrade in the app challenges_disclaimer: Disclaimer about the challenges module available in app earning_disclaimer: Earn one point for every $1 spent. olo_base_url: URL_GOES_HERE olo_api_key_ios: '1234567890' olo_api_key_android: '1234567890' olo_provider_key: '1234567890' olo_group_order_invite_url: URL_GOES_HERE business_id: 123 business_name: BUSINESS_NAME_GOES_HERE checkin_evidenced_by: barcode guest_identity_code_type: qrcode visits_per_card: 5 card_redemption_value: null migration_allowed: true minimum_visit_amount: 1 minimum_visit_hours: 4 minimum_age_to_signup: 13 misc1: Something useful misc2: '100' misc3: null misc4: '120.90' earning_unit: point currency_earned: 0 points_conversion_threshold: 0 redemption_expiry_minutes: 120 allow_rating_in_feedback: true maximum_rating_in_feedback: 5 checkins_earn: points gift_card_designs: - backgroud_image_url: IMAGE_URL_GOES_HERE card_type: virtual_gift_card name: Design One design_id: 11 - backgroud_image_url: IMAGE_URL_GOES_HERE card_type: physical_gift_card name: Design Two design_id: 12 locations: - address: ADDRESS_GOES_HERE brand: nil city: Ann Arbor country: United States external_store_id: '' latitude: '41.707145' location_id: 310956 loc_email: '' longitude: '-93.582188' name: Ann Arbor online_order_url: '' phone_number: '' post_code: ' 48104' state: Michigan store_number: ' 4' store_tags: Ordering store_times: - day: Mon start_time: nil end_time: nil - day: Tue start_time: nil end_time: nil - day: Wed start_time: nil end_time: nil - day: Thu start_time: nil end_time: nil - day: Fri start_time: nil end_time: nil - day: Sat start_time: nil end_time: nil - day: Sun start_time: nil end_time: nil time_zone: America/New_York updated_at: '2019-10-21T06:19:42-04:00' status: approved franchisee_id: 570 ncr_store_id: '' enable_weekly_redemption_report: false checkin_evidenced_by: image guest_identity_code_type: qrcode alternate_store_number: UK@8907 additional_url: - label: reservation - url: URL_GOES_HERE single_scan_type: single_scan_code hide_in_store_tipping: true hide_in_store_cc_payment: true hide_ssf_gift_card: true multiple_redemption_on_location: true guest_identification_type: restrict_pay_allow_lookup membership_levels: - background_image_url: '' points_multiplier: 1 membership_level_id: 34 name: Level 1 description: · Free Gift 1 (or any entrée of equal or lesser value) maximum_points: 1000 minimum_points: 0 currency_earned: 10 points_conversion_threshold: 1000 - background_image_url: '' points_multiplier: 1 membership_level_id: 35 name: Level 2 description: '· Receive $10 credit for every 1000 points earned · Unlock birthday offer · Unlock local offers' maximum_points: 3500 minimum_points: 1000 currency_earned: 10 points_conversion_threshold: 1000 - background_image_url: '' points_multiplier: 1 membership_level_id: 36 name: Level 3 description: '· Receive $10 credit for every 1000 points earned · Unlock local premium offers' maximum_points: 6000 minimum_points: 3500 currency_earned: 10 points_conversion_threshold: 1000 - background_image_url: '' points_multiplier: 1 membership_level_id: 38 name: Level 4 description: '· Receive $10 credit for every 1000 points earned. · Receive $50 catering credit. · Each 1000 points earned enters you into a sweepstakes.' maximum_points: 999999 minimum_points: 6000 currency_earned: 10 points_conversion_threshold: 1000 redeemables: - redeemable_image_url: IMAGE_URL_GOES_HERE redeemable_properties: null redeemable_id: 744 name: Unlock Redeemable at 100 Points description: This offer is to be given when user completes 100 points. In order to display this on the app, 'Should be available as loyalty points based redemption?' should be set. If this is not set for an offer, it will not be used on the reward screen. points_required_to_redeem: 100 meta_data: Tag1, Tag2, Tag3, Tag4, Tag5 - redeemable_image_url: IMAGE_URL_GOES_HERE redeemable_properties: null redeemable_id: 745 name: Unlock Redeemable at 200 Points description: This is the redeemable that gets unlocked at 200 points. When the redeemable is redeemed, it is actually the redemption of the reward balance itself. points_required_to_redeem: 200 meta_data: Tag1, Tag3, Tag4 games: - game_viral_message: '' name: Scratch N' Match images_on_card: 8 scratch_valid_codes: '' game_type: Scratch n Match requires_code_validation: false game_id: 5 gaming_levels: - extra_punchhs: 10 redeemable_id: null level: 10 Points - extra_punchhs: 20 redeemable_id: null level: 20 Points - extra_punchhs: 25 redeemable_id: null level: 25 Points - extra_punchhs: 30 redeemable_id: null level: 30 Points - extra_punchhs: 35 redeemable_id: null level: 35 Points - extra_punchhs: 40 redeemable_id: null level: 40 Points - extra_punchhs: 45 redeemable_id: null level: 45 Points - extra_punchhs: 50 redeemable_id: null level: 50 Points profile_field_questions: - answer_options: Coffee|Tea|Lemonade data_type: MCMA hint: The Menu Items that a guest likes. mandatory: true question: Beverages I like size: 3 upf: upf0 updatable: true - answer_options: '' data_type: MCMA hint: '' mandatory: false question: Movies I like size: 2 upf: upf1 updatable: true banking_rules: - banked_redeemable_id: '1474' banking_slab: 3000 points_conversion_threshold: 1000 currency_earned: '' - banked_redeemable_id: '1475' banking_slab: 8000 points_conversion_threshold: 2000 currency_earned: '' - banked_redeemable_id: '1476' banking_slab: 16000 points_conversion_threshold: 4000 currency_earned: '' - banked_redeemable_id: '1477' banking_slab: 30000 points_conversion_threshold: 5000 currency_earned: '' base_redeemable: name: Base Redeemable description: Descriptive text about the base redeemable image_url: IMAGE_URL_GOES_HERE redeemable_properties: null meta_data: Tag1, Tag2, Tag3, Tag4, Tag5 payment_credential: adapter_code: par_payment enable_recurring_payments: true enable_passcode_for_payment: true subscriptions: subscription_cancellation_reasons: - component_code: Price cancellation_reason_id: 1 cancellation_reason: It is expensive - component_code: 'Cancel ' cancellation_reason_id: 3 cancellation_reason: Reason - component_code: code cancellation_reason_id: 6 cancellation_reason: reason enable_cancellation_feedback: true cancellation_feedback_placeholder: Enter Additional Feedback If Any payment_disclaimer_text: This is payment disclaimer text. terms_and_conditions: These are terms and conditions. subscription_enabled: true subscriptions_payment_credential: adapter_code: par_payment enable_recurring_payments: false auto_select_strategy: subscription,offer allow_guest_to_raise_reactivation: true enable_gift_card_purchase: true enable_gift_card_reload: true enable_gift_card_transfer: true enable_gift_card_gifting: true enable_gift_card_consolidation: true enable_gift_card_sharing: true create_empty_gift_cards: true show_gift_card_history: true delete_gift_card_after_consolidation: true gift_card_default_amounts: gift_card_purchase_amounts_options: gift_card_purchase_amount_1: 0 gift_card_purchase_amount_2: 0 gift_card_purchase_amount_3: 20 gift_card_purchase_default_option: 20 gift_card_reload_amounts_options: gift_card_reload_amount_1: 3 gift_card_reload_amount_2: 3 gift_card_reload_amount_3: 3 gift_card_reload_default_option: 3 gift_card_auto_reload_amounts_options: gift_card_auto_reload_amount_1: 100 gift_card_auto_reload_amount_2: 2 gift_card_auto_reload_amount_3: 3 gift_card_auto_reload_default_option: 2 balance_threshold_amounts_options: balance_threshold_amount_1: 123 balance_threshold_amount_2: 1 balance_threshold_amount_3: 1 balance_threshold_default_option: 1 preferred_gift_cards: - physical_gift_card multiple_redemptions: exclude_interoperability_strategy_between: - offer|loyalty - loyalty|pre_purchased - promo_coupon|offer - pre_purchased|promo_coupon auto_unlock_duration: 100 discount_processing_strategy: date_of_expiry processing_priority_by_discount_type: - reward allow_multiple_redemption_on_item: true allow_qualifying_items_reused: true auto_redemption: true auto_redemption_discounts: - offer - subscription enable_auto_unlock: true enable_discount_locking: true max_redemptions_in_transaction: 20 processing_priority_by_acquisition_type: - code: offer priority: 1 multiplication_factor: 20 - code: loyalty priority: 2 multiplication_factor: 10 - code: promo_coupon priority: 3 multiplication_factor: 5 - code: pre_purchased priority: 4 multiplication_factor: 4 multiple_redemptions_enabled: true cancel_redemption: true ios_guest_account_deactivation: true android_guest_account_deactivation: true ios_guest_account_deletion: direct android_guest_account_deletion: email guest_account_deletion_request_email: - to: test@example.com - subject: '{{{program_name}}} - Account Deletion' - body: Please delete the account for {{{email}}} in the {{{program_name}}} program. app_feedback_url: URL_GOES_HERE accessibility_url: URL_GOES_HERE enable_advance_auth: true enable_guest_challenge_opt_in: true enable_guest_challenge_opt_out: true enable_loyalty_identification_at_drive_thru: true drive_thru_location_level_strategy: true enable_drive_thru_pay: true enable_subscription_taxation_support: true enable_pargames_integration: true enable_save_points_for_swag: true p2p_authentication_type: email_password_authentication enable_points_transfer: true enable_currency_transfer: false enable_rewards_transfer: false membership_tier_boost: disabled enable_passkeys: true login_mode: preferred enable_external_idp: false gis: enable_advance_auth: true enable_basic_auth: true enable_facebook_login: true enable_google_login: true enable_apple_login: false passkeys_enabled: true external_idp_enabled: false login_mode: preferred '401': description: '' content: application/json: schema: type: object properties: Error: type: object properties: message: type: string code: type: number summary: Program Meta description: 'Provides complete information about a business, including locations, redeemables, program type, related gift cards, etc. >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.' operationId: mobile_program_meta_API tags: - Meta & Version parameters: - $ref: '#/components/parameters/signature' - $ref: '#/components/parameters/Content-Type' - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/User-Agent' x-stoplight: id: 2617bed9b0e8e requestBody: content: application/json: schema: type: object properties: client: type: string description: OAuth client ID provided by the business exclude_locations: type: boolean x-stoplight: id: qtb58wgcww1p0 description: Include this parameter in the API call to exclude locations from the API response. Currently, if the exclude_locations parameter is present in the request body, the API will send the locations array as an empty array in the response body regardless of whether the value is true or false. For the API to return the locations for the business in the response body, the exclude_locations parameter must be omitted from the request body. default: true required: - client examples: default: value: client: CLIENT_KEY_GOES_HERE /api2/mobile/version_notes: get: responses: '200': description: '' content: application/json: schema: type: object properties: note: type: object description: Message that can be shown to the user force_upgrade: type: boolean description: Whether to force the user to upgrade to this version or not. If a value of "true" is returned, the user will be forced to not use the app until it is updated to this version. notification_style: type: string enum: - local_notification - popup description: 'Possible values are: - "local_notification" - action taken that can be customized in the app - "popup" - can be displayed as an alert in the app' examples: default: value: note: This is the first version of the app!! force_upgrade: false notification_style: local_notification summary: Version Notes description: Returns the details of a particular version of the app of a business operationId: mobile_version_note tags: - Meta & Version parameters: - $ref: '#/components/parameters/Content-Type' - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/User-Agent' - $ref: '#/components/parameters/signature' x-stoplight: id: c2b5b5db47e9a requestBody: content: application/json: schema: type: object properties: client: type: string description: OAuth client ID provided by the business version: type: string description: App version os: type: string description: Operating system (either "android" or "ios") model: type: string description: "Model of the device that a user is using \n- iOS - https://cocoapods.org/?q=uidevice-hard\n- Android - https://developer.android.com/reference/android/os/Build.html" required: - client examples: default: value: client: CLIENT_KEY_GOES_HERE version: VERSION_GOES_HERE os: ios model: MODEL_GOES_HERE /api2/mobile/batch_api: post: responses: '200': description: '' content: application/json: schema: type: array items: type: object properties: response_status_code: type: integer description: Numeric status code (e.g., 200, 400, 401, etc.) http_verb: type: string description: Operation type (e.g., get, put, patch, etc.) uri: type: string description: Target URI for requests body: type: string examples: default: value: - response_status_code: 0 http_verb: put uri: URI_GOES_HERE body: string '401': description: '' content: application/json: schema: type: object properties: message: type: string code: type: integer summary: Making Batch Requests description: 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. operationId: mobile_making_batch_requests tags: - Meta & Version parameters: - $ref: '#/components/parameters/Content-Type' - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/signature' - $ref: '#/components/parameters/User-Agent' - $ref: '#/components/parameters/Authorization' x-private: true x-stoplight: id: 311413e35153f requestBody: content: application/json: schema: type: object properties: client: type: string description: OAuth client ID provided by the business batch: type: array items: type: object properties: http_verb: type: string description: Operation type (e.g., get, put, patch, etc.) uri: type: string description: Target URI for requests show_headers_in_response: type: boolean description: If set to "true", it returns the headers of each API call in the batch. Disabled by default access_token: type: string x-stoplight: id: 3ix8sjr1oznke description: Access token of the user required: - client examples: default: value: client: CLIENT_KEY_GOES_HERE access_token: ACCESS_TOKEN_GOES_HERE batch: - http_verb: get uri: URI_GOES_HERE show_headers_in_response: false description: '' components: schemas: Membership-Levels: type: array items: type: object properties: background_image_url: type: string description: URL of the image that can be displayed in the app. As the URL may change with the membership level, the image can be changed accordingly. points_multiplier: type: number format: float description: Factor (rate) with which points accumulate for a user. For example, if the points multiplier for a particular membership level is 1, the user will get 1 point for every $1 spent. If the points multiplier is 2, the user will get 2 points for every $1 spent. membership_level_id: type: integer description: Unique ID of the membership level name: type: string description: Membership level name that is displayed in the app description: type: string description: Description of a particular membership level. This can be displayed in the app (e.g., "Earn twice the points for every dollar you spend.") maximum_points: type: integer description: Upper threshold of a membership level in terms of points minimum_points: type: integer description: Lower threshold of a membership level in terms of points currency_earned: type: number description: When accumulated points reach the `points_conversion_threshold`, they are converted to a dollar value defined by `currency_earned`. A value of 10 means that accumulated points will be converted to banked rewards in batches of $10. format: float points_conversion_threshold: type: integer description: Number of points required to get converted to banked rewards x-examples: [] title: Membership Levels (Array Object) x-stoplight: id: f51be9319f856 description: The object contains details about each membership tier in a loyalty program subscription: type: object description: 'The object contains details related to subscription configurations, including subscription cancellation reasons for the business. The subscription cancellation reasons are configured in the Punchh platform under Wallet and Passes > Subscription Cancellation Reasons. Note: If the option to enable meta cache update on request is not enabled in the Punchh platform, the API will not return any subscription cancellation reasons in the Program Meta API response. Contact your Punchh representative to update this Punchh platform configuration.' title: Subscriptions (Object) x-examples: application/json: subscriptions: subscription_cancellation_reasons: - component_code: Price cancellation_reason_id: 1 cancellation_reason: It is expensive - component_code: 'Cancel ' cancellation_reason_id: 3 cancellation_reason: Reason - component_code: code cancellation_reason_id: 6 cancellation_reason: reason enable_cancellation_feedback: true cancellation_feedback_placeholder: Enter Additional Feedback If Any payment_disclaimer_text: This is payment disclaimer text. terms_and_conditions: These are terms and conditions. properties: subscription_cancellation_reasons: type: array description: Different cancellation reasons that the business has configured and guests can select from within the mobile app when cancelling a subscription items: type: object properties: component_code: type: string description: This is the business-defined component code, which reflects the category of a cancellation reason. This may or may not be shown on the mobile app per the discretion of the business. cancellation_reason_id: type: integer description: System-generated unique ID of the business-defined cancellation reason cancellation_reason: type: string description: Cancellation reason as configured by the business enable_cancellation_feedback: type: boolean description: 'Whether feedback will be collected when guests cancel a subscription or not ' cancellation_feedback_placeholder: type: string description: This is the cancellation feedback placeholder, which can be used by app developers as the title/label/placeholder text while capturing subjective feedback from guests when they cancel a subscription. payment_disclaimer_text: type: string description: Payment disclaimer text as configured in the Punchh platform terms_and_conditions: type: string description: Terms and conditions text as configured in the Punchh platform x-stoplight: id: 111a77a646d9e profile_field_questions-Object: type: array items: type: object properties: question: type: string description: Question that can be displayed to a user in the app answer_options: type: string description: Answer options that can be displayed to a user for a question in the app data_type: type: string description: 'Data type of answers that can be accepted for a question. The values can be: - SINGLE_LINE : "text", - MULTIPLE_LINE : "text", - DATE_TIME => "datetime-local" - NUMBER => "number", - EMAIL => "email", - PHONE => "tel", - RATING => "range", - MCMA => "multiple-select",
This type can accept multiple answers for a multiple-choice question. - MCSA => "select",
This type can accept only a single answer for a multiple-choice question.' hint: type: string description: Hint that can be displayed for a question to help users answer it mandatory: type: boolean description: A true value indicates that it is mandatory to answer the question. size: type: integer description: Maximum number of options that can be provided in the answer set upf: type: string description: User profile code or question code. Answers are given by the user while filling in the user profile. The user submits answers to profile field questions that are configured in the Punchh platform. A total of 25 answers can be submitted. The keys range from ''upf0'' to ''upf24''. Each profile field (upf0 - upf24) corresponds to a line from the configuration in the Punchh platform. updatable: type: boolean description: A true value indicates that the answers can be updated. title: Profile Field Questions (Array Object) x-stoplight: id: f347f00a28a60 description: '' subscriptions_payment_credential: title: Subscriptions Payment Credential (Object) x-stoplight: id: 3xx7c32hkevh7 type: object description: 'Subscription-related payment details if a business uses Punchh''s native payment integration with payment processors to support subscription-related payments Note: If the business chooses not to use Punchh''s native integration with payment processors, the [Program Meta](/docs/dev-portal-mobile/2617bed9b0e8e-program-meta-api) API does not return the `subscriptions_payment_credential` object in the API response.' x-examples: application/json: adapter_code: par_payment enable_recurring_payments: false properties: adapter_code: type: string description: Code of the payment processor that will be used by the business for subscription-related payments. Possible values are no_adapter and par_payment. enable_recurring_payments: type: boolean description: Whether recurring payments capability is enabled for the business or not redeemable: type: array items: type: object properties: redeemable_image_url: type: string description: URL of the image displayed in the app to depict the redeemable redeemable_properties: type: array description: Properties such as "Merchandise", "Food Item", etc. can be added to a particular redeemable. items: type: string redeemable_id: type: integer description: Unique ID that identifies a redeemable in the system name: type: string description: Name of the redeemable description: type: string description: A description of the redeemable that appears in the app. This can be used to persuade users to redeem. points_required_to_redeem: type: integer description: Number of points required to redeem a particular redeemable meta_data: type: string description: Metadata that can be added to a redeemable. This will be returned only if it is configured in the Punchh platform. The maximum length is 255 characters. title: Redeemable (Array Object) x-stoplight: id: 7658402f497c2 description: Lists the redeemables and their details defined in the Punchh system banking_rules-Object: type: array title: Banking Rules (Array Object) items: type: object properties: banked_redeemable_id: type: string description: ID of the redeemable that is banked by the user as per the defined banking rules banking_slab: type: integer description: Banking slabs define the different intervals of earning. points_conversion_threshold: type: integer description: Points conversion thresholds are the sub-levels within a particular slab at which banking occurs. currency_earned: type: string description: Value of currency that is banked by the user as per the defined banking rules x-stoplight: id: ce2fab6db84eb base_redeemable-Object: type: object properties: name: type: string description: Name of the base redeemable description: type: string description: A description of the redeemable that appears in the app. This can be used to persuade users to redeem. image_url: type: string description: URL of the image displayed in the app to depict the redeemable redeemable_properties: type: array description: Properties such as "Merchandise", "Food Item", etc. can be added to a particular redeemable. items: type: string meta_data: type: string description: Metadata that can be added to a redeemable. This can be used to program mobile apps to have a certain behavior when specific data are received from the server. This can be configured in the Punchh platform. The maximum length is 255 characters. description: 'A base redeemable is used to provide identity to intangible entities, such as a completed card in a visit-based business. For example, in a visit-based business the configuration of a completed card (such as expiry, etc.) is picked from the base redeemable. ' title: Base Redeemable (Object) x-stoplight: id: c9d4a439024c8 multiple-redemptions: title: Multiple Redemptions (Object) x-stoplight: id: pc040hb7vwe08 type: object description: Lists the Punchh platform settings for multiple redemptions for the business. This object is returned in the API response if the `multiple_redemptions_enabled` response parameter is set to true in the Program Meta API for the business. properties: auto_redemption: type: boolean x-stoplight: id: o9qvner9yfrsi description: Indicates whether auto-redemption of discounts is enabled for the business enable_discount_locking: type: boolean x-stoplight: id: qgflsm4wta2ic description: Indicates whether reward locking on the transaction is enabled for the business enable_auto_unlock: type: boolean x-stoplight: id: 8czj7kyivckcc description: Indicates whether auto-unlocking of the guest account after a time interval is enabled for the business max_redemptions_in_transaction: type: integer x-stoplight: id: 6advmswmvdfee description: Maximum number of discounts that can be applied in a single transaction auto_redemption_discounts: type: array x-stoplight: id: 8vimqhjjjfo63 description: 'Discount categories eligible for the auto-application of discounts. Possible values: offer, subscription, fuel_reward, discount_amount' items: x-stoplight: id: 9au9bp5c76wzf type: string allow_multiple_redemption_on_item: type: boolean x-stoplight: id: t09lybhqu48zz description: Indicates whether multiple discounts can be stacked on a menu item for the business allow_qualifying_items_reused: type: boolean x-stoplight: id: di92haxdegs17 description: Indicates whether the reuse of qualifier items for the application of multiple discounts is enabled for the business discount_processing_strategy: type: string x-stoplight: id: 462rf5g1dao5n description: 'Condition that determines the order in which discounts are applied to a transaction. Possible value: date_of_expiry' processing_priority_by_discount_type: type: array x-stoplight: id: a894wxabxbr46 description: 'Determines the order in which discounts are applied to a transaction based on the discount type. Possible values: reward, promo_coupon, subscription, discount_amount' items: x-stoplight: id: c89kmd7mxprz9 type: string processing_priority_by_acquisition_type: type: array x-stoplight: id: 14x90y5zeya2s description: Determines the order in which discounts are applied to a transaction based on the acquisition type items: x-stoplight: id: 27pnqeartgdiw type: object properties: code: type: string x-stoplight: id: gahvrtmoowfyw description: 'Type of acquisition. Possible values: loyalty, pre_purchased, offer, promo_coupon' priority: type: integer x-stoplight: id: ioc5j5tvdxipf description: Order in which a discount of an acquisition type is applied in a transaction (lower numbers indicate higher priority) multiplication_factor: type: integer x-stoplight: id: 9n1uxziyivb1q description: Maximum number of discount units per category that can be applied in a transaction exclude_interoperability_strategy_between: type: array x-stoplight: id: f1rp7wsenihj8 description: 'Defines the rules for excluding interoperability between discounts of different acquisition types. The parameter value is a pair of pipe-separated values that specify which discounts from an acquisition type cannot be combined with discounts from another acquisition type. For example, the parameter value `offer|loyalty` means an offer discount cannot be combined with a loyalty discount at the time of redemption. Possible values are any combination of the following: loyalty, pre_purchased, offer, promo_coupon' items: x-stoplight: id: 3ydk20bk8j8fc type: string auto_unlock_duration: type: integer x-stoplight: id: ioqqb1t3mfdkv description: Time interval (in minutes) after which a guest account will be automatically unlocked for a transaction Locations: type: array x-examples: Example: - address: ADDRESS_GOES_HERE brand: nil city: Ann Arbor country: United States external_store_id: '' latitude: '41.707145' location_id: 310956 loc_email: '' longitude: '-93.582188' name: Ann Arbor online_order_url: '' phone_number: '' post_code: ' 48104' state: Michigan store_number: ' 4' store_tags: Ordering store_times: - day: Mon start_time: nil end_time: nil - day: Tue start_time: nil end_time: nil - day: Wed start_time: nil end_time: nil - day: Thu start_time: nil end_time: nil - day: Fri start_time: nil end_time: nil - day: Sat start_time: nil end_time: nil - day: Sun start_time: nil end_time: nil time_zone: America/New_York updated_at: '2019-10-21T06:19:42-04:00' status: approved franchisee_id: 570 ncr_store_id: '' enable_daily_redemption_report: false enable_weekly_redemption_report: false checkin_evidenced_by: image guest_identity_code_type: qrcode title: Locations (Array Object) description: 'Returns a list of business locations. Each location object within the Locations array contains information about a specific business location. ' x-internal: false x-stoplight: id: c1e917a05275b items: type: object properties: address: type: string description: Full address of a particular business location brand: type: string description: Brand name of a subcategory of a business. A parent business may own multiple brands under one umbrella company. For example, Yum! Brands, Inc. owns KFC, Pizza Hut, and Taco Bell. city: type: string description: City of a particular business location country: type: string description: Country of a particular business location external_store_id: type: string description: External identifier configured in the Punchh platform under location attributes via Store Locations > All Store Locations > [choose location] > POS > External POS Store Identifier latitude: type: number description: Latitude coordinate of a particular business location format: float location_id: type: integer description: Unique ID of a particular business location. This is generated by Punchh. longitude: type: number description: Longitude coordinate of a particular business location format: float name: type: string description: Name of a particular business location phone_number: type: string description: Phone number of a particular business location loc_mail: type: string description: Email address of a particular business location post_code: type: string description: Zip code of a particular business location state: type: string description: State where a particular business is located store_number: type: string description: The store number where the check-in occurred store_tags: type: string description: Tags that provide additional details about a particular business location store_times: type: array description: Returns details about the business hours of particular location items: type: object properties: day: type: string description: Day of week when a store is open for business start_time: type: string description: Time of day when a store opens format: time end_time: type: string description: Time of day when a store closes format: time time_zone: type: string description: Time zone in which the business is located updated_at: type: string format: date-time description: Date/time the when location was last updated in the system, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format enum: - YYYY-MM-DDThh:mm:ssZ status: type: string description: Whether the location is enabled for check-ins or not. `approved` means enabled for check-ins, and `disapproved` means disabled for check-ins. franchisee_id: type: integer description: Unique ID of the franchisee who owns the location. This is generated by Punchh. enable_weekly_redemption_report: type: boolean description: Enables sharing the weekly redemption report to the location email (applicable only for the franchisee model) checkin_evidenced_by: type: string description: The method of check-in used by a user (e.g., barcode, qr_code, receipt_image, etc.). A blank string indicates the default value of the business. guest_identity_code_type: type: string description: The POS scanner type used to identify the user at the POS (e.g., barcode, qr_code, etc.). A blank string indicates the default value of the business. enable_pos_monitoring: type: boolean description: Whether POS monitoring has been enabled for the location or not. This is used by the POS integration team members. generate_barcodes: type: boolean description: Whether barcodes are generated on the receipt or not alternate_store_number: type: string x-stoplight: id: k1wmwag5ki6i9 description: Alphanumeric alternate store identifier for a specific location, as provided by the business. This information is configured in the Punchh platform under Store Locations > All Store Locations > [choose location] > Location > Alternate Store Number/Identifier. additional_url: type: array x-stoplight: id: vpig2ui4hrfxs items: x-stoplight: id: 3xo8afl94lww1 type: object properties: label: type: string x-stoplight: id: zqjxlm5hwc1l8 description: Label for the additional URL. url: type: string x-stoplight: id: n654fpo983ucb description: Custom URL configured for the additional URL. This URL can link to a location-specific brand webpage, such as catering information, discounts, private events, reservations, or other custom content beyond the standard call, order, and directions links. This information is configured in the Punchh platform under Store Locations > All Store Locations > [choose location] > Mobile App. single_scan_type: type: string x-stoplight: id: yyr95bc0qpv8u description: "Determines the type of code the mobile app should display for completing a single-scan transaction at a specific POS location. Possible values:\n- none: No scan code is displayed or used. \n- short_token: A short code (deprecated)\n- long_token: A longer code (deprecated)\n- single_scan_code: A specific code generated for a one-time scan transaction. See [Single Scan Flow](https://developers.partech.com/docs/dev-portal-pos/54e5a71a7205c-single-scan-flow)" hide_in_store_tipping: type: boolean x-stoplight: id: 0197dpgz884wh description: Determines whether the mobile app should hide the tip option for Single-Scan Flow at a location. Only applies to businesses that have enabled in-store tipping via Single-Scan Flow. default: false hide_in_store_cc_payment: type: boolean x-stoplight: id: ni7rmm0ouoz5x description: Determines whether the mobile app should hide the option to pay with a credit card (CC) for Single-Scan Flow at a location. Only applies to businesses that have enabled in-store credit card payment via Single-Scan Flow default: false hide_ssf_gift_card: type: boolean x-stoplight: id: 05psjinz5w99p description: Determines whether the mobile app should hide the option to pay with a gift card for Single-Scan Flow at a location. Only applies to businesses that have enabled gift card payment via Single-Scan Flow. default: false multiple_redemption_on_location: type: boolean x-stoplight: id: 2nh7ev8pc1w2e description: Indicates whether the multiple redemptions feature is enabled for a particular location. You can access this setting for a location on the Punchh platform under Store Locations > All Store Locations > [choose location] > Location > Allow Location for Multiple Redemption. guest_identification_type: type: string description: "Indicates whether loyalty users can be identified using a short code at locations that do not support the single scan flow. Possible values: \n- When set to restrict_pay_allow_lookup, the location supports user lookup using a short code, and SSF-based payments are disabled. \n- When set to restrict_lookup, user lookup using a short code is not allowed.\nContact your Punchh representative to update this Punchh platform configuration.\n" gift-card-default-amounts: title: Gift Card Default Amounts (Object) x-stoplight: id: lgdqs5iworoa5 type: object x-examples: [] description: 'The object provides default values for gift card purchase amount options, reload amount options, auto-reload amount options, and balance threshold amount options, as well as their respective default selections. ' properties: gift_card_purchase_amounts_options: type: object x-stoplight: id: vkx0gyk0megkr description: Contains a set of predefined purchase amount options that users can select when purchasing a gift card. Each option within this object provides a specific amount, offering users convenient choices without requiring manual input. properties: gift_card_purchase_amount_1: type: integer x-stoplight: id: 3zbksxqoyqydk description: First option for the amount a user can choose when purchasing a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_purchase_amount_2: type: integer x-stoplight: id: tnxg2grbqzep5 description: Second option for the amount a user can choose when purchasing a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_purchase_amount_3: type: integer x-stoplight: id: 211ka1ebfmgri description: Third option for the amount a user can choose when purchasing a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_purchase_default_option: type: integer x-stoplight: id: uw99n6g4erbhn description: Default selected amount, if the user does not choose an option, for gift card purchases from the available purchase amount options. Contact your Punchh representative to update this Punchh platform configuration. gift_card_reload_amounts_options: type: object x-stoplight: id: elo6lm7b90nqw description: Contains a set of predefined amount options that users can select when reloading a gift card. Each option within this object provides a specific amount, offering users convenient choices without requiring manual input. properties: gift_card_reload_amount_1: type: integer x-stoplight: id: p2cx85bibekkn description: First option for reloading a gift card with a specified amount. Contact your Punchh representative to update this Punchh platform configuration. gift_card_reload_amount_2: type: integer x-stoplight: id: uvbz3awkfu5gn description: Second option for reloading a gift card with a specified amount. Contact your Punchh representative to update this Punchh platform configuration. gift_card_reload_amount_3: type: integer x-stoplight: id: ei06dgkg6tits description: Third option for reloading a gift card with a specified amount. Contact your Punchh representative to update this Punchh platform configuration. gift_card_reload_default_option: type: integer x-stoplight: id: ml5kfyatlyku6 description: Default selected amount, if the user does not choose an option, for reloading a gift card from the available reload amount options. Contact your Punchh representative to update this Punchh platform configuration. gift_card_auto_reload_amounts_options: type: object x-stoplight: id: hrvjsd7mlziab description: Contains a set of predefined amount options that users can select when setting up auto-reload for their gift card in the mobile app. Each option within this object provides a specific amount, offering users convenient choices without requiring manual input. properties: gift_card_auto_reload_amount_1: type: integer x-stoplight: id: m39x0bsvkg5nv description: First option for the amount a user can set for automatic reloading of a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_auto_reload_amount_2: type: integer x-stoplight: id: 6afwvs012sovr description: Second option for the amount a user can set for automatic reloading of a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_auto_reload_amount_3: type: integer x-stoplight: id: qubb30lezgdki description: Third option for the amount a user can set for automatic reloading of a gift card. Contact your Punchh representative to update this Punchh platform configuration. gift_card_auto_reload_default_option: type: integer x-stoplight: id: sh0csaujqb3fr description: Default selected amount, if the user does not choose an option, for auto-reloading a gift card from the available auto-reload amount options. Contact your Punchh representative to update this Punchh platform configuration. balance_threshold_amounts_options: type: object x-stoplight: id: 9ec0vk4od29km description: Contains a set of predefined amount options that users can select when setting a threshold amount for auto-reloading their gift card in the mobile app. Each option within this object specifies an amount, offering users convenient choices without requiring manual input. properties: balance_threshold_amount_1: type: integer x-stoplight: id: z98owwml05omg description: First option for the threshold balance amount. When set, a gift card is eligible to be auto-reloaded if its balance is less than this threshold amount. Contact your Punchh representative to update this Punchh platform configuration. balance_threshold_amount_2: type: integer x-stoplight: id: uibtdpafa7otf description: Second option for the threshold balance amount. When set, a gift card is eligible to be auto-reloaded if its balance is less than this threshold amount. Contact your Punchh representative to update this Punchh platform configuration. balance_threshold_amount_3: type: integer x-stoplight: id: phezshfaz8d6f description: Third option for the threshold balance amount. When set, a gift card is eligible to be auto-reloaded if its balance is less than this threshold amount. Contact your Punchh representative to update this Punchh platform configuration. balance_threshold_default_option: type: integer x-stoplight: id: j2lzekoj66fzk description: Default selected threshold balance amount from the available balance threshold amount options for auto-reloading a gift card. Contact your Punchh representative to update this Punchh platform configuration. payment_credential: title: Payment Credential (Object) x-stoplight: id: yz9yasmzl1jck type: object description: Contains settings related to the payment adapter, recurring payment type, and passcode x-examples: application/json: adapter_code: ADAPTER_CODE_GOES_HERE enable_recurring_payments: true enable_passcode_for_payment: true properties: adapter_code: type: string description: Name of the payment processor/gateway. Valid value is par_payment. enable_recurring_payments: type: boolean description: Whether a business has enabled recurring payments for the selected payment adapter enable_passcode_for_payment: type: boolean description: Whether a business has enabled the passcode for payments parameters: signature: schema: type: string default: '{{$$.env.signature}}' name: x-pch-digest in: header description: The [signature](/docs/dev-portal-mobile/additional-topics/signature-sha256) for the API call required: true User-Agent: schema: type: string default: AppName/AppVersion/BuildNumber (OS; Model; MANUFACTURER; MODEL; OS Version) in: header name: User-Agent description: Used to identify the software, device, and application initiating the request, providing information about the client to the server. For details, see [User Agent](/docs/dev-portal-mobile/additional-topics/user-agent). required: true Content-Type: schema: type: string default: application/json name: Content-Type in: header description: Set this header to application/json. required: true Accept: schema: type: string default: application/json name: Accept in: header description: Advertises which content types the client is able to understand required: true Authorization: schema: type: string default: Bearer ACCESS_TOKEN_GOES_HERE name: Authorization in: header description: Used to authorize the request with access_token. It should be supplied as `Bearer ACCESS_TOKEN_GOES_HERE`. required: true x-stoplight: id: bf6eddb435209 x-ext-urls: {}