Removes a specific product line item from an existing subscription contract. Can optionally retain prorated discounts associated with the removed product.
Key Features:
Validation Rules:
Discount Handling:
When removeDiscount=true (default):
Retry Mechanism: The endpoint automatically retries in these scenarios:
Post-Removal Actions:
Authentication: Requires valid X-API-Key header
curl --request PUT \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-remove-line-item \
--header 'X-API-Key: <x-api-key>'{
"id": "gid://shopify/SubscriptionContract/123456789",
"status": "ACTIVE",
"nextBillingDate": "2024-03-01T00:00:00Z",
"customer": {
"id": "gid://shopify/Customer/987654321",
"email": "customer@example.com",
"firstName": "John",
"lastName": "Doe"
},
"billingPolicy": {
"interval": "MONTH",
"intervalCount": 1
},
"deliveryPolicy": {
"interval": "MONTH",
"intervalCount": 1
},
"lines": {
"edges": [
{
"node": {
"id": "gid://shopify/SubscriptionLine/111111",
"quantity": 2,
"variantId": "gid://shopify/ProductVariant/42549172011164",
"currentPrice": {
"amount": "29.99",
"currencyCode": "USD"
},
"sellingPlanId": "gid://shopify/SellingPlan/123456",
"sellingPlanName": "Deliver every month"
}
}
]
},
"discounts": {
"edges": [
{
"node": {
"id": "gid://shopify/SubscriptionManualDiscount/999999",
"title": "10% OFF SUBSCRIPTION",
"targetType": "ALL_LINES",
"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.
API Key for authentication
Subscription contract ID to remove product from. Provide the numeric ID without the gid:// prefix
^[0-9]+$API Key (Deprecated - Use X-API-Key header instead)
Line item ID of the product to remove. Must be the full GraphQL ID including the gid:// prefix
Controls whether to remove discounts that apply only to this line item. When true (default), line-specific discounts are removed. When false, attempts to retain discounts where possible. Note: Discounts that apply to multiple lines are always retained regardless of this setting
Product successfully removed from subscription
ACTIVE, PAUSED, CANCELLED, EXPIRED, FAILED, $UNKNOWN Show child attributes
SUCCEEDED, FAILED, $UNKNOWN Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request PUT \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-remove-line-item \
--header 'X-API-Key: <x-api-key>'{
"id": "gid://shopify/SubscriptionContract/123456789",
"status": "ACTIVE",
"nextBillingDate": "2024-03-01T00:00:00Z",
"customer": {
"id": "gid://shopify/Customer/987654321",
"email": "customer@example.com",
"firstName": "John",
"lastName": "Doe"
},
"billingPolicy": {
"interval": "MONTH",
"intervalCount": 1
},
"deliveryPolicy": {
"interval": "MONTH",
"intervalCount": 1
},
"lines": {
"edges": [
{
"node": {
"id": "gid://shopify/SubscriptionLine/111111",
"quantity": 2,
"variantId": "gid://shopify/ProductVariant/42549172011164",
"currentPrice": {
"amount": "29.99",
"currencyCode": "USD"
},
"sellingPlanId": "gid://shopify/SellingPlan/123456",
"sellingPlanName": "Deliver every month"
}
}
]
},
"discounts": {
"edges": [
{
"node": {
"id": "gid://shopify/SubscriptionManualDiscount/999999",
"title": "10% OFF SUBSCRIPTION",
"targetType": "ALL_LINES",
"value": {
"percentage": 10
}
}
}
]
}
}