Punchh Check User Balance API

The Check User Balance API from Punchh — 4 operation(s) for check user balance.

Operations 4

GET /api/auth/checkins/balance Fetch Account Balance of User #
GET /api/auth/rewards List Available Rewards #
GET /api/auth/users/balance Fetch User Balance #
GET /api/auth/balance_timelines Balance Timelines #

Documentation

Specifications

Schemas & Data

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

Other Resources

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

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

punchh-check-user-balance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Online Ordering and SSO Check User Balance API
  version: '1.0'
  description: "The Punchh SSO API endpoints provide user-management functions such as login, registration, forgot password, and connect with Facebook for users on the Punchh loyalty platform. You can also fetch user-specific information such as rewards or point balances. \n\nThe Punchh Online Ordering API endpoints enable users to earn and redeem rewards for online orders."
  contact:
    name: Punchh Dev Support
    url: https://developers.punchh.com
servers:
- url: https://SERVER_NAME_GOES_HERE.punchh.com
tags:
- name: Check User Balance
paths:
  /api/auth/checkins/balance:
    get:
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  balance:
                    $ref: '#/components/schemas/Account-Balance'
                  rewards:
                    $ref: '#/components/schemas/Rewards-Attribute'
                  redeemables:
                    $ref: '#/components/schemas/Redeemables-Attributes'
              examples:
                default:
                  value:
                    balance:
                      banked_rewards: '376.00'
                      membership_level: null
                      membership_level_id: null
                      net_balance: 376
                      net_debits: 1100
                      pending_points: 0
                      points_balance: 1476
                      signup_anniversary_day: 09/30
                      total_credits: 1476
                      total_debits: '1100.0'
                      total_point_credits: 1476
                      total_redeemable_visits: 98
                      expired_membership_level: null
                      total_visits: 87
                      initial_visits: 0
                      unredeemed_cards: 19
                      membership_qualification_points: 500
                    rewards:
                    - business_id: 603
                      end_date: null
                      end_date_tz: null
                      gaming_level_id: null
                      gifted_for_type: null
                      gift_reason: null
                      id: 1089
                      location_ids: []
                      read_at: null
                      redeemable_id: 1089
                      reward_properties: null
                      start_date: '2017-12-14'
                      start_date_tz: '2017-12-14T13:04:55Z'
                      external_store_numbers: []
                      type: redeemable
                    - business_id: 603
                      end_date: null
                      end_date_tz: null
                      gaming_level_id: null
                      gifted_for_type: FeedbackReply
                      gift_reason: Support Activity
                      id: 17111231
                      location_ids: []
                      read_at: '2016-12-12T07:53:20Z'
                      redeemable_id: 1260
                      reward_properties: null
                      start_date: '2016-11-28'
                      start_date_tz: '2016-11-28T13:56:29Z'
                      external_store_numbers: []
                      type: reward
                    redeemables:
                    - applicable_as_loyalty_redemption: true
                      redeemable_properties: null
                      discount_amount: 0
                      discount_channel: all
                      expire_redemption_code_with_reward_end_date: false
                      id: 1089
                      image: IMAGE_URL_GOES_HERE
                      points: 100
                      redeemable_id: 1089
                      redemption_expiry: 240
                      thumb_image: IMAGE_URL_GOES_HERE
                      name: Free Pizza or Entree Salad @ 100 Points
                      description: Congrats! You banked a Free Pizza or Entree Salad for earning 100 points!
                    - applicable_as_loyalty_redemption: false
                      redeemable_properties: null
                      discount_amount: 0
                      discount_channel: null
                      expire_redemption_code_with_reward_end_date: null
                      id: 1260
                      image: IMAGE_URL_GOES_HERE
                      points: 0
                      redeemable_id: 1260
                      redemption_expiry: 240
                      thumb_image: IMAGE_URL_GOES_HERE
                      name: Free Cookie
                      description: Enjoy your free cookie.
        '401':
          description: Sending invalid credentials
        '412':
          description: Sending invalid Signature
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                application/json; charset=utf-8:
                  value:
                  - Invalid Signature
        '422':
          description: Sending invalid Entity
      summary: Fetch Account Balance of User
      description: 'Returns account balance details of a guest, such as banked_rewards, membership_level, net_balance, net_debits, pending_points, points_balance, signup_anniversary_day, total_credits, total_debits, total_point_credits, total_redeemable_visits, etc.


        >User authentication required

        >

        >This API requires authentication_token to be supplied as `HTTP_AUTHORIZATION` header or in the `authentication_token` parameter.'
      operationId: sso_account_balance
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/accept_language'
      - $ref: '#/components/parameters/User-Agent'
      - $ref: '#/components/parameters/content_type'
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/Authorization'
      tags:
      - Check User Balance
      x-stoplight:
        id: 046241990d510
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client:
                  type: string
                  description: Client key of the business
                  default: CLIENT_GOES_HERE
                authentication_token:
                  type: string
                  description: The authentication token of the user. You can retrieve this from the response of a successful sign-in API call or through the [SSO process](/docs/dev-portal-online-ordering/9a41534336c87-sso-flow-for-web-and-mobile).
              required:
              - client
            examples:
              default:
                value:
                  client: CLIENT_GOES_HERE
                  authentication_token: AUTHENTICATION_TOKEN_GOES_HERE
  /api/auth/rewards:
    get:
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rewards-Attribute'
              examples:
                application/json; charset=utf-8:
                  value:
                  - reward:
                      id: 309203
                      business_id: 452
                      location_id: 302576
                      user_id: 111111111
                      redeemable_id: 41
                      free_punchh_campaign_id: null
                      redemption_id: null
                      checkin_id: null
                      admin_id: null
                      created_at: '2015-03-31T11:41:52Z'
                      updated_at: '2015-03-31T11:41:52Z'
                      code: '907350'
                      start_date: '2015-03-31'
                      end_date: '2015-04-29'
                      read_at: null
                      gaming_level_id: null
                      gifted_for_type: SignupCampaign
                      gifted_for_id: 50
                      gift_reason: 'Signup: Free Small The Original Sandwich with purchase of chips and 32 oz drink'
                      location_ids:
                      - 303133
                      - 303134
                      external_store_numbers:
                      - '3613'
                      - '3614'
        '401':
          description: ''
        '412':
          description: Sending invalid Signature
        '422':
          description: Sending invalid Entity
      summary: List Available Rewards
      description: Fetch available rewards or offers details of a user. This request returns how many rewards are available to the user.
      operationId: sso_list_available_rewards
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/content_type'
      - $ref: '#/components/parameters/User-Agent'
      - $ref: '#/components/parameters/Authorization'
      tags:
      - Check User Balance
      x-stoplight:
        id: 5ba386685f23e
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client:
                  type: string
                  description: Client key of the business
                  default: CLIENT_GOES_HERE
                authentication_token:
                  type: string
                  description: The authentication token of the user. You can retrieve this from the response of a successful sign-in API call or through the [SSO process](/docs/dev-portal-online-ordering/9a41534336c87-sso-flow-for-web-and-mobile).
              required:
              - client
            examples:
              default:
                value:
                  client: CLIENT_GOES_HERE
                  authentication_token: AUTHENTICATION_TOKEN_GOES_HERE
  /api/auth/users/balance:
    get:
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  active_redemptions:
                    type: array
                    items:
                      type: object
                  challenge_badges:
                    type: array
                    items:
                      type: object
                      properties:
                        badge_id:
                          type: integer
                          description: Badge ID of the challenge
                        challenge_campaign_id:
                          type: integer
                          description: Campaign ID of the challenge
                        published:
                          type: boolean
                        public_url:
                          type: string
                          description: Public URL of the challenge
                  coupons:
                    $ref: '#/components/schemas/Coupons'
                  messages:
                    $ref: '#/components/schemas/Messages'
                  notifications:
                    $ref: '#/components/schemas/Notifications'
                  rewards:
                    $ref: '#/components/schemas/Rewards-Attribute'
                  punch_cards:
                    type: array
                    items:
                      type: object
                      properties:
                        progress:
                          type: array
                          items:
                            type: object
                            properties:
                              completed_steps:
                                type: integer
                              total_steps:
                                type: integer
                        name:
                          type: string
                          description: Name of the card
                        description:
                          type: string
                          description: Description of the card
                        image_url:
                          type: string
                          description: Image URL of the card
                        icon_url:
                          type: string
                        icon_completed_url:
                          type: string
                        start_date:
                          type: string
                        end_date:
                          type: string
                        gift_reason:
                          type: string
                        miscellaneous:
                          type: string
                        challenge_id:
                          type: integer
                  preferred_charities:
                    type: array
                    items:
                      type: object
                      properties:
                        user_donations:
                          type: object
                          properties:
                            reward:
                              type: object
                              properties:
                                user_donations:
                                  type: integer
                                last_donated_item:
                                  x-nullable: true
                                last_donation_time:
                                  x-nullable: true
                        name:
                          type: string
                        description:
                          type: string
                        social_cause_id:
                          type: integer
                        image_url:
                          type: string
                        miscellaneous:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        street:
                          type: string
                        zip:
                          type: string
                        phone_number:
                          x-nullable: true
                        email:
                          type: string
                        address:
                          type: string
                  converted_category_balances:
                    $ref: '#/components/schemas/Converted-Category-Balance'
                  account_balance:
                    $ref: '#/components/schemas/Account-balance-details'
              examples:
                default:
                  value:
                    converted_category_balances: []
                    active_redemptions: []
                    challenge_badges: []
                    coupons: []
                    messages: []
                    notifications: []
                    rewards: []
                    punch_cards: []
                    preferred_charities: []
                    account_balance:
                      banked_currency: 0
                      banked_currency_expiring_on: null
                      checkins_on_current_card: 0
                      current_membership_level_id: null
                      current_membership_level_expiring_on: null
                      expiring_banked_currency: null
                      pending_points: null
                      redeemed_cards: null
                      total_loyalty_visits: null
                      unbanked_points: 0
                      unredeemed_cards: null
                      current_membership_level_name: null
                      lifetime_points: 0
                      redeemable_points: 0
                      membership_qualification_points: 500
      summary: Fetch User Balance
      description: Displays user information regarding active redemptions, notifications, badges, balance, etc.
      operationId: sso_fetch_user_balance
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/content_type'
      - schema:
          type: string
          default: no cache
        in: header
        name: cache-control
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/User-Agent'
      - $ref: '#/components/parameters/Accept'
      tags:
      - Check User Balance
      x-stoplight:
        id: 67319738d3ef8
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client:
                  type: string
                  description: Client key of the business
                authentication_token:
                  type: string
                  description: The authentication token of the user. You can retrieve this from the response of a successful sign-in API call or through the [SSO process](/docs/dev-portal-online-ordering/9a41534336c87-sso-flow-for-web-and-mobile).
              required:
              - client
            examples:
              default:
                value:
                  client: CLIENT_GOES_HERE
                  authentication_token: AUTHENTICATION_TOKEN_GOES_HERE
  /api/auth/balance_timelines:
    get:
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  currency:
                    type: array
                    items:
                      type: object
                      properties:
                        actual_earned_currency:
                          type: number
                          format: float
                          description: Actual earned currency at the time of conversion
                        unredeemed_currency:
                          type: number
                          format: float
                          description: Remaining currency available to redeem
                        expiration_date:
                          type: string
                          enum:
                          - YYYY-MM-DDThh:mm:ssZ
                          format: date-time
                          description: Expiration date of the conversion
                        status:
                          type: string
                          description: 'Status of the entire conversion. The values can be:

                            partially_redeemed, unredeemed, honored, partially_redeemed_expired, unredeemed_expired'
                          x-nullable: true
                  fuel_discount:
                    type: array
                    items:
                      type: object
                      properties:
                        actual_earned_currency:
                          type: number
                          format: float
                        unredeemed_currency:
                          type: number
                          format: float
                        expiration_date:
                          type: string
                          enum:
                          - YYYY-MM-DDThh:mm:ssZ
                          format: date-time
                        status:
                          type: string
              examples:
                default:
                  value:
                    currency:
                    - actual_earned_currency: 2
                      unredeemed_currency: 0
                      expiration_date: null
                      status: honored
                    - actual_earned_currency: 1
                      unredeemed_currency: 0
                      expiration_date: '2019-07-17T23:59:59-05:00'
                      status: null
                    - actual_earned_currency: 10
                      unredeemed_currency: 4
                      expiration_date: '2019-07-17T23:59:59-05:00'
                      status: unredeemed_expired
                    fuel_discount:
                    - actual_earned_currency: 0.05
                      unredeemed_currency: 0.05
                      expiration_date: '2019-08-15T23:59:59-05:00'
                      status: unredeemed
                    - actual_earned_currency: 0.5
                      unredeemed_currency: 0.5
                      expiration_date: '2019-08-15T23:59:59-05:00'
                      status: unredeemed
        '400':
          description: ''
      summary: Balance Timelines
      description: Gets balance timelines of the user
      operationId: sso_balance_timelines
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/content_type'
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/User-Agent'
      tags:
      - Check User Balance
      x-stoplight:
        id: cb5962b14aa0b
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client:
                  type: string
                  description: Client key of the business
                  default: CLIENT_GOES_HERE
                authentication_token:
                  type: string
                  description: The authentication token of the user. You can retrieve this from the response of a successful sign-in API call or through the [SSO process](/docs/dev-portal-online-ordering/9a41534336c87-sso-flow-for-web-and-mobile).
              required:
              - client
            examples:
              default:
                value:
                  client: CLIENT_GOES_HERE
                  authentication_token: AUTHENTICATION_TOKEN_GOES_HERE
components:
  schemas:
    Messages:
      type: object
      description: 'The `messages` object is returned in response to the Messages API (see the details below).

        '
      properties:
        messages:
          type: array
          description: 'The `messages` object is returned in response to the Messages API:

            '
          items:
            type: object
            properties:
              background_content:
                $ref: '#/components/schemas/background-content'
              body:
                type: string
                description: 'The text content of a rich message

                  '
              cta:
                type: array
                description: 'The short for Call-To-Action is a device designed to prompt an immediate response from a user.

                  Refer to the `cta` object for details.'
                items:
                  $ref: '#/components/schemas/cta'
              dismissable:
                type: boolean
                description: 'This boolean value decides whether guests can dismiss a message or not. When a guest dismisses a message, it should not be rendered in the app.

                  '
              hero_content:
                $ref: '#/components/schemas/hero-content'
              launch_time:
                type: string
                description: 'Date/time, in ISO 8601 format, when the notification should be rendered by the application client. This a useful field that can enable a business to create messages that can be sent to the mobile client in advance, and they appear in the app later when the launch time comes.


                  If a rich message is triggered from a campaign, from a notification template as a result of user action, as a result of test notification, or if the Launch Time and Take Down Time fields are left blank in a business announcement, the values for launch_time and take_down_time will be null.'
              message_type:
                type: string
                description: 'There are two types of rich messages returned in response:

                  1. user_specific: Rich messages that have a user context. These include rich messages created based on campaigns or user actions.

                  2. business_wide: Rich messages that are created as business announcements in the system.'
              rank:
                type: integer
                description: Every message should have a rank. This marks the importance of a message. There may be a case when a more important message moves down the display list in the app as new messages are delivered to the mobile client. To keep important messages at the top of the display list, they should be given a higher number just as is the case with z-index. If two messages have the same rank, the app will determine the display order based on the launch_time.
              style_url:
                type: string
                description: 'Link to the style sheet file for the style that will be applied to the message. The mobile client can download the style file, which can then be used to render the rich message in the app.

                  '
              subtitle:
                type: string
                description: 'A subordinate title providing additional information about the content

                  '
              tags:
                type: array
                description: 'Tags provide additional details about a message. A simple example could be the type (such as campaign, system_notification, etc.) that may help the app make decisions about the rendering of the message.

                  '
                items:
                  type: string
              take_down_time:
                type: string
                description: 'Date/time, in ISO 8601 format, when the mobile client should stop rendering the rich message in the app.


                  If a rich message is triggered from a campaign, from a notification template as a result of user action, as a result of test notification, or if the Launch Time and Take Down Time fields are left blank in a business announcement, the values for launch_time and take_down_time will be null.'
              title:
                type: string
                description: 'A suitable title for the rich message. A well-crafted title increases the chances that a user will view a message.

                  '
              message_id:
                type: integer
                description: 'Unique ID of the message sent to the user

                  '
      title: Messages (Object)
      x-stoplight:
        id: dae9f70f9e7f1
    Redeemables-Attributes:
      type: array
      items:
        type: object
        properties:
          applicable_as_loyalty_redemption:
            type: boolean
            description: Applicable on loyalty
          redeemable_properties:
            type: string
            description: Comma-separated values that provide additional details about a redeemable. For example, a redeemable could be "Food Item" or "Merchandise", etc. These can be configured for a business in the Punchh platform and attached to a redeemable. If no value is attached to a redeemable, a blank field will be returned.
          discount_amount:
            type: integer
            description: Amount of discount on the reward
          discount_channel:
            type: string
            description: 'Can accept any one of the following values:

              - all - discountable everywhere

              - online_only - online orders only

              - offline_only - in store only'
          expire_redemption_code_with_reward_end_date:
            type:
            - boolean
            - 'null'
            description: Whether the redemption code expires with the expiry of the reward
          id:
            type: integer
            description: Identification of the reward
          image:
            type: string
            description: Image of the redeemable item
          points:
            type: integer
            description: Total number of points required for redemption
          redeemable_id:
            type: integer
            description: Identification of the redeemable item
          redemption_expiry:
            type: integer
            description: Expiry of the redemption, in minutes
          thumb_image:
            type: string
            description: Thumbnail image of the redeemable item
          name:
            type: string
            description: Name of the redeemable item
          description:
            type: string
            description: Description of the redeemable item
      title: Redeemables Attributes (Object)
      x-stoplight:
        id: 173597e963ebd
    Converted-Category-Balance:
      type: array
      items:
        type: object
        properties:
          category_id:
            type: integer
            description: Category ID
          name:
            type: string
            description: Name of the reward
          source_type:
            type: string
            description: Type of source used for conversion
          source_value:
            type: integer
            description: Threshold value at which points get converted
          converted_type:
            type: string
            description: This could be "currency", "fuel_discount", or "charity" depending on the Punchh platform configuration.
          converted_value:
            type: number
            description: Multiplier for the converted type
            format: float
          balance:
            type: integer
            description: Balance available for the user for this type of reward
      title: Converted Category Balances (Object)
      x-stoplight:
        id: 721549331be0c
    Coupons:
      type: array
      items:
        type: object
        properties:
          code:
            type: string
            description: Alphanumeric coupon code that a user must use to receive an offer
          image_url:
            type: string
            description: URL of the image of the reward that will be displayed in the app
          name:
            type: string
            description: Name of the coupon campaign through which the coupon was given to a user
          description:
            type: string
            description: Description of the offer that will be available to a user after using the coupon code
            x-nullable: true
          start_date:
            type: string
            description: Coupon start date
            enum:
            - YYYY-MM-DD
            format: date
            x-nullable: true
          end_date:
            type: string
            description: Coupon expiration date
            enum:
            - YYYY-MM-DD
            format: date
      title: Coupons (Object)
      x-stoplight:
        id: 784153ff94ed5
    Account-balance-details:
      type: object
      title: Account Balance Details (Object)
      x-stoplight:
        id: 581d141f4c275
      properties:
        banked_currency:
          type: number
          format: float
          description: Value of the currency that a user has available. A "null" value indicates that the business does not support banking of points into currency. Use it only if the business opted for the Points Convert to Banked Currency program.
        checkins_on_current_card:
          type: integer
          description: "A card gets completed after a user does a configured number of check-ins. \nFor example, if a business configuration requires 7 check-ins to complete a card, and a user does only 3 check-ins, the value of this parameter will be 3. This is useful for the Visit-based program."
        current_membership_level_id:
          description: Unique ID of the current membership level of a user
          type: integer
        current_membership_level_expiring_on:
          type: string
          description: If a business has a rolling expiry of membership levels, a particular membership level will expire after a period that is configured in the Punchh platform. A "null" value indicates that the business does not have a rolling expiry of membership levels.
          enum:
          - YYYY-MM-DD
          format: date
        expiring_banked_currency:
          type: number
          format: float
          description: If a business has expiring banked currency configured in the Punchh platform, the banked currency will expire in a FIFO (first-in, first-out) pattern. This returns the value of the banked currency that will expire. A "null" value indicates that the business is not configured to support expiring banked currency.
        banked_currency_expiring_on:
          type: st

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