Skip to main content
PUT
/
api
/
external
/
v2
/
subscription-contracts-add-discount
Add custom discount to subscription
curl --request PUT \
  --url https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-add-discount \
  --header 'X-API-Key: <x-api-key>'
{
  "id": "gid://shopify/SubscriptionContract/123456789",
  "status": "ACTIVE",
  "nextBillingDate": "2024-04-01T12:00:00Z",
  "customer": {
    "id": "gid://shopify/Customer/987654321",
    "email": "customer@example.com"
  },
  "lines": {
    "edges": [
      {
        "node": {
          "id": "gid://shopify/SubscriptionLine/111111",
          "quantity": 1,
          "variantId": "gid://shopify/ProductVariant/42549172011164",
          "currentPrice": {
            "amount": "29.99",
            "currencyCode": "USD"
          }
        }
      }
    ]
  },
  "discounts": {
    "edges": [
      {
        "node": {
          "id": "gid://shopify/SubscriptionManualDiscount/555555",
          "title": "Loyalty Discount",
          "targetType": "ALL_LINES",
          "type": "MANUAL",
          "recurringCycleLimit": 3,
          "value": {
            "percentage": 10
          }
        }
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://appstleinc-aeca3e0a.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Headers

X-API-Key
string
required

API Key for authentication

Query Parameters

contractId
integer<int64>
required

Subscription contract ID to apply discount to. Provide the numeric ID without the gid:// prefix

Required range: x >= 1
api_key
string

API Key (Deprecated - Use X-API-Key header instead)

percentage
integer

Discount percentage (1-100). Required when discountType is PERCENTAGE

Required range: 1 <= x <= 100
discountTitle
string

Custom title for the discount. If not provided, a default title will be generated

Maximum string length: 255
recurringCycleLimit
integer

Number of billing cycles the discount applies to. Leave null for unlimited duration

Required range: 1 <= x <= 9999
appliesOnEachItem
boolean
default:false

Application method: true = apply to each line item individually, false = apply to order subtotal

amount
number<double>

Fixed discount amount in store currency. Required when discountType is FIXED or PRICE

Required range: 0.01 <= x <= 999999.99
discountType
enum<string>

Type of discount to apply

Available options:
PERCENTAGE,
FIXED,
PRICE

Response

Discount successfully added

get__typename
string
id
string
createdAt
object
updatedAt
object
nextBillingDate
object
status
enum<string>
Available options:
ACTIVE,
PAUSED,
CANCELLED,
EXPIRED,
FAILED,
$UNKNOWN
deliveryPrice
object
lastPaymentStatus
enum<string>
Available options:
SUCCEEDED,
FAILED,
$UNKNOWN
billingPolicy
object
deliveryPolicy
object
lines
object
customerPaymentMethod
object
deliveryMethod
object
originOrder
object
customer
object
discounts
object
note
string
customAttributes
object[]
billingAttempts
object