Create Online Redemption (Redemptions 1.0)

Redeems a card, reward, redeemable, or discount specified in the discount_type parameter against a receipt.

Punchh evaluates eligibility during the Possible Redemptions call using the receipt details provided (item name, price, quantity, identifiers, etc.). During the Create Online Redemption API call, Punchh revalidates the same receipt to ensure the qualifying conditions are still met before honoring the redemption.

If any item attributes change between the two calls, Punchh may be unable to match the qualifying items, which can cause the Create Online Redemption API call to fail or return a different result—even if the Possible Redemptions call was successful.

NOTE: When processing a redemption, DO NOT include the query parameter in the API request. Use this parameter only to check for possible redemptions.

Headers
  • x-pch-digest
    Type: string
    required

    The signature for the API call

  • Content-Type
    Type: string
    required

    Set this header to application/json.

  • Accept
    Type: string
    required

    Advertises which content types the client is able to understand

  • Authorization
    Type: string
    required

    You may pass the access_token instead of the authentication_token in Online Ordering endpoints to authorize the request. It must be supplied as Bearer ACCESS_TOKEN_GOES_HERE.

  • User-Agent
    Type: string
    required

    For details, see User Agent.

Body
application/json
  • client
    Type: string
    required

    Client key of the business

  • discount_type
    Type: stringenum
    required

    Any one of these values: card_completion || reward || redeemable || discount_amount || redemption_code || subscription. For details, see Getting Started With Online Ordering APIs.

    values
    • reward
    • card_completion
    • redeemable
    • discount_amount
    • redemption_code
    • subscription
  • 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.

  • receipt_datetime
    Type: string
    required

    Timestamp of receipt as per ISO 8601, in YYYY-MM-DDThh:mm:ssZ format

  • store_number
    Type: string
    required

    The location where the redemption must be redeemed

  • subtotal_amount
    Type: numberFormat: double
    required

    Order amount before taxes (sum of all item amounts minus any discounts). Same as receipt_amount. For historical reasons, include this parameter along with receipt_amount in the API request.

  • transaction_no
    Type: string
    required

    Receipt number or transaction number on the receipt

  • authentication_token
    Type: string

    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.

  • cc_last4
    Type: string

    Last 4 digits of credit card number

  • channel
    Type: stringenum

    Channel through which the redemption was requested. Possible values are: online_order, pos, web, mobile, dashboard, chatbot, and kiosk.

    values
    • pos
    • web
    • online_order
    • mobile
    • dashboard
    • chatbot
    • kiosk
  • email
    Type: string

    Email address of the user (required to be sent only in case of coupons and promos)

  • employee_id
    Type: string

    Employee ID

Responses
  • application/json
  • 401

    Sending invalid credentials

  • 412

    Sending invalid Signature

  • application/json
Request Example for post/api/auth/redemptions/online_order
curl https://SERVER_NAME_GOES_HERE.punchh.com/api/auth/redemptions/online_order \
  --request POST \
  --header 'x-pch-digest: SIGNATURE_GOES_HERE' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer ACCESS_TOKEN_GOES_HERE' \
  --header 'User-Agent: Punchh/OnlineOrder/1.0/Web/BrowserVersion/OS_Type' \
  --data '{
  "authentication_token": "",
  "query": true,
  "cc_last4": "",
  "employee_id": "",
  "employee_name": "",
  "store_number": "",
  "menu_items": [
    {
      "item_name": "",
      "item_qty": 1,
      "item_amount": 1,
      "menu_item_type": "",
      "menu_item_id": "",
      "menu_family": "",
      "menu_major_group": "",
      "serial_number": ""
    }
  ],
  "receipt_amount": 1,
  "subtotal_amount": 1,
  "receipt_datetime": "",
  "transaction_no": "",
  "external_uid": "",
  "client": "",
  "channel": "pos",
  "state": "",
  "discount_type": "reward",
  "reward_id": 1,
  "redeemable_id": "",
  "redeemed_points": "",
  "redemption_code": "",
  "subscription_id": "",
  "email": ""
}'
{
  "status": "Redeemed at Feb 26, 2026 10:49 by FIRST_NAME_GOES_HERE LAST_NAME_GOES_HERE at Naperville. Please HONOR it.",
  "redemption_amount": 8,
  "category": "redeemable",
  "qualified_menu_items": [
    {
      "item_name": "Sandwich",
      "item_qty": 1,
      "item_amount": 5,
      "menu_item_type": "M",
      "menu_item_id": "102000",
      "menu_family": "Sandwich",
      "menu_major_group": "Sandwich",
      "serial_number": "1.0"
    },
    {
      "item_name": "Coke",
      "item_qty": 1,
      "item_amount": 7,
      "menu_item_type": "M",
      "menu_item_id": "102000",
      "menu_family": "Coke",
      "menu_major_group": "Coke",
      "serial_number": "2.0"
    }
  ],
  "discount_distribution_items": [
    {
      "item_name": "Sandwich DISCOUNT",
      "item_qty": 1,
      "item_amount": -3,
      "menu_item_type": "R",
      "menu_item_id": "102000",
      "menu_family": "Sandwich",
      "menu_major_group": "Sandwich",
      "serial_number": 1
    },
    {
      "item_name": "Coke DISCOUNT",
      "item_qty": 1,
      "item_amount": -5,
      "menu_item_type": "R",
      "menu_item_id": "102000",
      "menu_family": "Coke",
      "menu_major_group": "Coke",
      "serial_number": 2
    }
  ],
  "max_applicable_quantity": 1,
  "campaign_name": "Mass Campaign Offer",
  "redemption_id": 21762,
  "redemption_code": "REDEMPTION_CODE_GOES_HERE"
}