pos_checkin

Create Check-in

Creates a check-in for a customer.

Headers
  • Authorization
    Type: string
    required

    This is a combination of unique API key as well as business key (UUID) as the Authorization header.

  • Accept-Language
    Type: string

    Short code for locale variant (e.g., fr-ca, es-ES, en-EN, etc.)

Body
application/json
  • cc_last4
    Type: integer

    Last 4 digits of the user's credit card number

  • channel
    Type: string
    required

    Channel through which the check-in was requested. Possible values are: online_order, pos, web, mobile, dashboard, chatbot, kiosk.

  • email
    Type: string
    required

    Email address of the user. In the case of single scan flow, email is not a required parameter.

  • employee_id
    Type: string

    Employee ID

  • employee_name
    Type: string

    Name of the employee

  • external_uid
    Type: string

    Unique ID generated by your system. We use this to prevent duplicates in the case same transactions get triggered twice.

  • menu_items
    Type: array Menu Items (Array Object)[]
    required

    The array contains one or more menu item objects added to an order. You send one of these arrays per API call. See How To Send Menu Items to Punchh

  • payable
    Type: numberFormat: double
    required

    Amount paid after applying discounts and adding any taxes or service charges. For example, if the order amount is $10, the values of the receipt_amount and subtotal_amount parameters will be $10. If a $2 discount is applied, subtotal_amount becomes $8. However, if there are $3 service charges and $1 tax, the value of the payable parameter becomes $12 (10 – 2 + 3 + 1 = 12).

  • pos_type
    Type: string
    required

    Name of the POS client that is sending the receipts.

    Possible values: A1 POS, Adora POS, Aloha, Aloha (Secure), Appetize, Auphan, Bite Kiosk, Brink, Comtrex, DataPoint, EPoint, Focus, Focus POS Systems, FoodTec, FoodTec V2, Gilbarco, GJS Kiosk, Granbury, Grubburr Kiosk, HoneyBakedHam POS, Hooters Hoa, HungerRush POS (Formerly Revention), InfoKING, Itwercs POS, iVend POS, Maitre’D, Marble Kiosk, Marblepos, Micros RES 3700, Micros Simphony, NCR ISS45 POS, NCR kiosk, NCR RPOS, NCR Silver, NCR Silver Essential, NCR Silver Pro, NCR Storepoint, Nextep kiosk, Onetap, PAR, PiZMET, Plum POS, Positouch, PosNet, Proprietary POS, Punchh Kiosk, Punchh Secure, QikServe Kiosk, Quardzilla, QuBeyond POS (Formerly Gusto), QuickServe, Ready (Pay-on-the-GO), Revel, SICOM, SpeedLine, Squirrel, Steak n Shake, TCPOS, Tevalis POS, Toast, Toast V3, Tray POS, Treatware, Verifone, VisualTouch POS, XPO Pay@Table, Xchangexec (Task retail), Xenial Cloud,  Xpient, Xpient (Secure), Zonal POS

  • pos_version
    Type: string
    required

    POS version

  • punchh_key
    Type: string
    required

    Unique Punchh key

  • receipt_amount
    Type: numberFormat: double
    required

    Order amount before taxes, calculated as the sum of all item amounts minus any discounts. This is the amount used to calculate loyalty points/visits. The value of this parameter should match subtotal_amount. For example, if the order amount is $10, both receipt_amount and subtotal_amount will be 10. If a $2 discount is applied, both will be 8.

Responses
  • 200
    Type: object
    • address_line1
      Type: string

      Address of the user

    • age_verified
      Type: boolean

      Age verified or not

    • anniversary
      Type: stringFormat: date

      Anniversary of the user in YYYY-MM-DD format

    • avatar_remote_url
      Type: string

      Avatar URL of the user profile image

    • balance
      Type: Balance (Object)

      Account balance of the user

    • birthday
      Type: stringFormat: date

      Birthday date of the user in YYYY-MM-DD format

    • city
      Type: string

      City of the user

    • created_at
      Type: stringFormat: date-time

      Date/time when the user was created in the system in ISO 8601 format

    • email
      Type: string

      Email address of the user

    • email_verified
      Type: boolean

      Email address verfied or not

    • fb_uid
      Type: string

      Facebook ID of the user

    • first_name
      Type: string

      First name of the user

    • gender
      Type: string

      Gender of the user

    • id
      Type: integer

      Unique ID of the user

    • last_name
      Type: string

      Last name of the user

    • phone
      Type: string

      Phone number of the user

    • points_earned
      Type: integer

      Returns points earned on the check-in

    • privacy_policy
      Type: boolean

      Privacy policy agreed upon or not

    • rewards
      Type: Rewards Object
    • selected_card_number
      Type: string

      This value is set only in single scan flow. This is the gift card the user wants to use to make the payment. If this value is set, use it to make the payment for the order.

    • selected_coupons
      Type: array Selected Coupons (Array Object)[]

      This object is set only in the single scan flow (SSF). The selected_coupons object shows one or more Punchh coupon codes if the user would like to redeem them as part of the single scan flow. The user selects the coupon(s) when generating the single scan code on the mobile application. If this value is set, trigger the redemption flow. See Single Scan Flow

    • selected_discount_amount
      Type: Selected Discount Amount (Object)

      This object is set for the single scan flow (SSF) for users who are on the Banked Rewards loyalty program. The selected_discount_amount object shows the banked currency amount if the user would like to redeem it as part of the single scan flow. The user selects the banked currency when generating the single scan code on the mobile application. If this value is set, trigger the redemption flow. See Single Scan Flow

    • selected_redeemable_cards
      Type: array Selected Redeemable Cards (Array Object)[]

      This object is set for the single scan flow (SSF) for users that are on the Visit-based loyalty program. The selected_redeemable_cards object shows one or more reedemable cards if the user would like to redeem them as part of the single scan flow. The user selects the redeemable cards when generating the single scan code on the mobile application. If this value is set, trigger the redemption flow. See Single Scan Flow

    • selected_redeemables
      Type: array Selected Redeemables (Array Object)[]

      This object is set for the single scan flow (SSF) for users that are on the Points Unlock Redeemables loyalty program. The selected_redeemables object shows one or more redeemables if the user would like to redeem them as part of the single scan flow. The user selects the redeemable(s) when generating the single scan code on the mobile application. If this value is set, trigger the redemption flow. See Single Scan Flow

    • selected_rewards
      Type: array Selected Rewards (Array Object)[]

      This object is set only in the single scan flow (SSF). The selected_rewards object shows one or more user-selected rewards if the user would like to redeem them as part of the single scan flow. The user selects the reward when generating the single scan code on the mobile application. If this value is set, trigger the redemption flow. See Single Scan Flow

    • state
      Type: string

      State in which the user lives

    • updated_at
      Type: stringFormat: date-time

      Date/time when the user was updated in the system in ISO 8601 format

    • user_digest
      Type: string

      User digest token of the user

    • zip_code
      Type: string

      Zip code of the user

post/api/pos/checkins
{
  "address_line1": "string",
  "age_verified": true,
  "anniversary": "2025-12-19",
  "avatar_remote_url": "string",
  "balance": {
    "banked_rewards": "string",
    "expired_membership_level": "string",
    "initial_visits": 1,
    "membership_level": "string",
    "membership_level_id": "string",
    "net_balance": 1,
    "net_debits": 1,
    "pending_points": 1,
    "points_balance": 1,
    "signup_anniversary_day": "string",
    "total_credits": 1,
    "total_debits": "string",
    "total_point_credits": 1,
    "total_redeemable_visits": 1,
    "total_visits": 1,
    "unredeemed_cards": "string"
  },
  "birthday": "2025-12-19",
  "city": "string",
  "created_at": "2025-12-19T16:32:19.137Z",
  "email": "string",
  "email_verified": true,
  "fb_uid": "string",
  "first_name": "string",
  "gender": "string",
  "id": 1,
  "last_name": "string",
  "phone": "string",
  "points_earned": 1,
  "privacy_policy": true,
  "rewards": {
    "rewards": [
      {
        "created_at": "string",
        "description": "string",
        "discount_amount": 1,
        "end_date_tz": "string",
        "id": 1,
        "image": "string",
        "name": "string",
        "points": 1,
        "redeemable_properties": "string",
        "start_date_tz": "string",
        "status": "string",
        "updated_at": "string",
        "type": "string",
        "meta_data": "string"
      }
    ]
  },
  "state": "string",
  "updated_at": "2025-12-19T16:32:19.137Z",
  "user_digest": "string",
  "zip_code": "string",
  "selected_card_number": "string",
  "selected_discount_amount": {
    "banked_currency": "string",
    "discount_type": "string"
  },
  "selected_redeemables": [
    {
      "id": -9007199254740991,
      "name": "string",
      "description": "string",
      "created_at": "YYYY-MM-DDThh:mm:ssZ",
      "count": 1,
      "start_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "end_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "updated_at": "2025-12-19T16:32:19.137Z",
      "image": "string",
      "status": "string",
      "points": 1,
      "discount_amount": 1,
      "discount_type": "string",
      "redeemable_properties": "string"
    }
  ],
  "selected_rewards": [
    {
      "id": -9007199254740991,
      "name": "string",
      "description": "string",
      "created_at": "YYYY-MM-DDThh:mm:ssZ",
      "start_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "end_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "updated_at": "YYYY-MM-DDThh:mm:ssZ",
      "image": "string",
      "status": "string",
      "points": 1,
      "discount_amount": 1,
      "discount_type": "string",
      "redeemable_properties": "string"
    }
  ],
  "selected_redeemable_cards": [
    {
      "id": -9007199254740991,
      "name": "string",
      "description": "string",
      "count": "string",
      "created_at": "YYYY-MM-DDThh:mm:ssZ",
      "start_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "end_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "updated_at": "YYYY-MM-DDThh:mm:ssZ",
      "image": "string",
      "status": "string",
      "points": 1,
      "discount_amount": 1,
      "discount_type": "string",
      "redeemable_properties": "string"
    }
  ],
  "selected_coupons": [
    {
      "code": "string",
      "name": "string",
      "description": "string",
      "start_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "end_date_tz": "YYYY-MM-DDThh:mm:ssZ",
      "image": "string",
      "discount_type": "string"
    }
  ]
}