Purchase Subscription

This API supports the purchase of a subscription plan created in the Punchh platform.

If the Single Use setting is enabled for the subscription plan, and if you send auto_renewal as true in the Purchase Subscription API, then the API returns an error: This is a single use subscription and cannot be renewed automatically. Please check the request to send auto_renewal as false.

Headers
  • Accept
    Type: string
    required

    Advertises which content types the client can understand

  • Content-Type
    Type: string
    required

    Set this header to application/json

  • x-pch-digest
    Type: string
    required

    Signature generated using the request path, body, and OAuth secret provided by the business. For details, see signature.

  • Authorization
    Type: string
    required

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

  • Accept-Language
    Type: string

    Preferred language

  • User-Agent
    Type: string
    required

    Used to identify the software, device, and application initiating the request, providing information about the client to the server. For details, see User Agent.

Body
application/json
  • auto_renewal
    Type: boolean
    required

    A guest’s preference of having a newly purchased subscription plan get automatically renewed per the plan's schedule. Third parties where auto renewal is considered default should send this value as "true". The mobile application uses the value in the auto_renewing response parameter in the Fetch Active Purchasable Subscription Plans API to determine if the auto-renewal of a subscription should be sent as true or false during the subscription purchase.

  • client
    Type: string
    required

    OAuth client ID provided by the business

  • end_time
    Type: string
    min length:  
    1
    Format: date-time
    required

    Date and time (in ISO 8601 format) until which the subscription being issued will remain active

  • location_id
    Type: integer
    required

    ID of the location where the subscription plan is purchased. It identifies the origin of the subscription purchase for the loyalty guest. If an invalid or missing location_id is passed, the API returns a 400 Bad Request error with the message "Invalid or missing location_id".

  • plan_id
    Type: integer
    required

    System-generated unique ID of a subscription plan created in the Punchh platform. A subscription based on this plan ID will be issued to the guest when a purchase call is made.

  • purchase_price
    Type: numberFormat: float
    required

    Price at which one unit of the subscription plan is purchased

  • start_time
    Type: string
    min length:  
    1
    Format: date-time
    required

    Date and time (in ISO 8601 format) from which the subscription being issued will become active

  • external_plan_identifier
    Type: string

    UPC/SKU of the subscription plan as present on third-party applications of enterprise businesses and is configured on this subscription plan. This will be stored in the database, and the business can use it for analytics purposes. This value can be used to make the purchase of the subscription plan instead of using the “plan_id”.

  • payment_card_uuid
    Type: string

    Unique digital identifier/token of the user's credit card can be referred to as the uuid of the saved payment card, required if a saved payment card is used for payments. The transaction token is issued by a payment processor used by a business.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api2/mobile/subscriptions
curl https://SERVER_NAME_GOES_HERE.punchh.com/api2/mobile/subscriptions \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'x-pch-digest: ' \
  --header 'Authorization: Bearer ACCESS_TOKEN_GOES_HERE' \
  --header 'Accept-Language: en' \
  --header 'User-Agent: AppName/AppVersion/BuildNumber (OS; Model; MANUFACTURER; MODEL; OS Version)' \
  --data '{
  "client": "CLIENT_GOES_HERE",
  "plan_id": 23,
  "start_time": "2021-04-28T13:59:47+05:30",
  "end_time": "2021-04-28T13:59:47+05:30",
  "purchase_price": "23.09",
  "auto_renewal": true,
  "payment_card_uuid": "PAYMENT_CARD_UUID_GOES_HERE",
  "external_plan_identifier": "EXTERNAL_PLAN_IDENTIFIER_GOES_HERE",
  "location_id": 12345
}'
{
  "subscription_id": 23,
  "start_time": "2021-04-28T13:59:47+05:30",
  "end_time": "2021-04-28T13:59:47+05:30",
  "external_plan_identifier": "EXTERNAL_PLAN_IDENTIFIER_GOES_HERE",
  "location_id": 12345
}