Subscription orders

A subscription order allows an authenticated loyalty member to:

NOTE

A subscription order cannot be used to purchase tickets, food and beverage items, or gift shop items. See order types for more info.

Subscription purchase order

A subscription purchase order is used to used to purchase a new subscription or purchase a future non-recurring subscription.

Subscription purchase order flow

Create subscription purchase order
Add voucher (optional)
Set subscription
Payment and completion

Create subscription purchase order

Use the CreateSubscriptionOrder endpoint with the Purchase action to create a subscription purchase order:

Copy
Copied
{
  "action": "Purchase"
}

Add voucher (optional)

When purchasing a subscription, a suitable voucher can be added to the order to discount the subscription billing option.

IMPORTANT

To discount a recurring subscription billing option, the AllowRecurringSubscriptionVoucher system setting must be enabled, and the voucher cannot discount the entirety of the subscription price.

Use the AddVoucher endpoint to add a Subscription voucher to the order.

Copy
Copied
{
  "type": "Subscription",
  "credentials": {
    "barcode": "string",
    "pin": "string"
  }
}

This endpoint returns the details of the added voucher, including an id that can be used when setting the subscription.

Copy
Copied
{
  "voucher": {
    "id": "string",
    "type": "Subscription",
    "maskedBarcode": "string",
    "voucherTypeCode": "string",
    "voucherTypeDescription": {
      "text": "string",
      "translations": [
        {
          "languageTag": "string",
          "text": "string"
        }
      ]
    }
  },
  "availableRedemptions": 0
}

Set subscription

Use the SetSubscriptionForOrder endpoint to set the subscription billing option being purchased.

When using a subscription voucher, set the relevant discountId and voucherId for the discounted billing option price.

Copy
Copied
{
  "subscriptionBillingOptionId": "string",
  "discountId": "string",
  "voucherId": "string"
}

Payment and completion

Use the GetWebPaymentMethods endpoint with the ?orderType=Subscription query parameter to get the list of available web payment methods for the subscription order.

Copy
Copied
{
  "webPaymentMethods": [
    {
      "type": "Embedded",
      "isDefault": true,
      "id": 0,
      "name": {
        "text": "string",
        "translations": [
          {
            "languageTag": "string",
            "text": "string"
          }
        ]
      },
      "displayPriority": 0,
      "isRecurringBillingSupported": true
    }
  ]
}
IMPORTANT

When purchasing a recurring subscription, filter the web payment methods based on the isRecurringBillingSupported property.

Subscription reactivation order

A subscription reactivation order is used to used to reactivate a frozen recurring subscription.

Subscription reactivation order flow

Create subscription reactivation order
Payment and completion

Create subscription reactivation order

Use the CreateSubscriptionOrder endpoint with the Reactivate action to create a subscription reactivation order:

Copy
Copied
{
  "action": "Reactivate"
}

This endpoint will return a subscription reactivation order with the subscription and totalPrice automatically populated to reflect the cost of reactivating the frozen subscription.

Copy
Copied
{
  "order": {
    "id": "string",
    "type": "Subscription",
    "action": "Reactivate",
    "status": "InProgress",
    "totalPrice": {
      "valueIncludingTax": 0.1,
      "valueExcludingTax": 0.1,
      "tax": 0.1
    },
    "subscription": {
      "subscriptionId": 0,
      "subscriptionBillingOptionId": "string",
      "price": {
        "valueIncludingTax": 0.1,
        "valueExcludingTax": 0.1,
        "tax": 0.1
      }
    }
  }
}
NOTE

Some properties have been omitted from the code snippet above for brevity.

Payment and completion

A subscription reactivation order must be paid via a payment method that supports recurring billing, as the payment method used will be stored as the recurring subscription payment card for subsequent billing periods.

Use the GetWebPaymentMethods endpoint with the ?orderType=Subscription query parameter to get the list of available web payment methods, and filter them based on the isRecurringBillingSupported property.