Redeem Swag

The Swag Redemption API allows an authenticated loyalty member to redeem saved loyalty points for a branded swag item. The API handles the full redemption flow end-to-end — including eligibility checks, point deduction, inventory decrement, reward creation, and optional shipping detail capture.

See Get User's Save Points for Swag Settings and Balance, Fetch Available User's Swag, Update User's Save Points for Swag Settings, and Get Swag Shipping Details.

Headers
  • Authorization
    Type: string
    required

    Used to authorize the request with access_token. It should be supplied as Bearer ACCESS_TOKEN_GOES_HERE.

  • 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

  • Accept-Language
    Type: string

    Preferred language

Body
application/json
  • client
    Type: string
    required

    OAuth client ID assigned to the business

  • fulfillment_method
    Type: string enum
    required

    Delivery method. Possible values: STORE_PICKUP or HOME_DELIVERY (case-insensitive)

    values
    • STORE_PICKUP
    • HOME_DELIVERY
  • swag_id
    Type: integer
    required

    ID of the swag item to redeem

  • location_id
    Type: string

    ID of the store location. If not provided, the business's primary location is used.

  • shipping_info
    Type: object

    Required when fulfillment_method is HOME_DELIVERY. Ignored when fulfillment_method is STORE_PICKUP.

Responses
  • application/json
  • 400

    Bad Request

    • Missing location_id — "Required parameter missing or the value is empty: location_id"
  • 401

    Unauthorized

    • Missing or invalid access token — "You need to sign in or sign up before continuing."
  • 404

    Not Found

    • Item not available as swag (redeemable ID passed) — "Swag item not found."
    • Invalid/Deactivated swag ID — "Swag item not found."
    • Unknown or cross-business location_id — "Location not found."
  • 422

    Unprocessable Entity

    • Save Points for Swag feature disabled — "Your current configuration does not support this feature. Please connect with your Customer Success representative for resolution of the issue."
    • Per-member redemption limit exceeded — "Redemption limit reached for the member."
    • Insufficient saved points — "Insufficient points to redeem this SWAG."
    • Item out of stock (quantity = 0 or NULL) — "Item is currently out of stock."
    • Invalid fulfillment method value — "Invalid fulfilment type specified."
    • Missing required field(s) — "Missing required field(s): {field_name}."
Request Example for post/api2/mobile/swag_redemptions
curl https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/swag_redemptions \
  --request POST \
  --header 'Authorization: Bearer ACCESS_TOKEN_GOES_HERE' \
  --header 'x-pch-digest: {{$$.env.signature}}' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
  "swag_id": 73072,
  "location_id": "353291",
  "fulfillment_method": "HOME_DELIVERY",
  "shipping_info": {
    "full_name": "NAME_GOES_HERE",
    "email": "test@example.com",
    "phone_number": "1111111111",
    "address_line_1": "Street 1",
    "address_line_2": "Street 2",
    "delivery_instructions": "please deliver it asap",
    "city": "New York",
    "state": "USA",
    "zipcode": "12344"
  }
}'
{
  "message": "Swag redeemed successfully."
}