Skip to main content
PUT
/
api
/
external
/
v2
/
subscription-contracts-add-discount
Create and add custom discount to subscription
curl --request PUT \
  --url https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount
import requests

url = "https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount"

response = requests.put(url)

print(response.text)
const options = {method: 'PUT'};

fetch('https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
const url = 'https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount';
const options = {method: 'PUT'};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount"

	req, _ := http.NewRequest("PUT", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://membership-admin.appstle.com/api/external/v2/subscription-contracts-add-discount")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
{
  "billingAttempts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "completedAt": {},
        "createdAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "idempotencyKey": "<string>",
        "ready": true
      }
    ]
  },
  "billingPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123,
    "maxCycles": 123,
    "minCycles": 123
  },
  "createdAt": {},
  "customAttributes": [
    {
      "get__typename": "<string>",
      "key": "<string>",
      "value": "<string>"
    }
  ],
  "customer": {
    "displayName": "<string>",
    "email": "<string>",
    "firstName": "<string>",
    "get__typename": "<string>",
    "id": "<string>",
    "lastName": "<string>",
    "phone": "<string>"
  },
  "customerPaymentMethod": {
    "get__typename": "<string>",
    "id": "<string>",
    "instrument": {
      "get__typename": "<string>"
    },
    "revokedAt": {}
  },
  "deliveryMethod": {
    "additionalInformation": {
      "get__typename": "<string>",
      "instructions": "<string>"
    },
    "brandedPromise": {
      "get__typename": "<string>",
      "handle": "<string>",
      "name": "<string>"
    },
    "get__typename": "<string>",
    "id": "<string>",
    "maxDeliveryDateTime": {},
    "minDeliveryDateTime": {},
    "serviceCode": "<string>"
  },
  "deliveryPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123
  },
  "deliveryPrice": {
    "amount": {},
    "get__typename": "<string>"
  },
  "discounts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "createdAt": {},
        "deliveredAt": {},
        "estimatedDeliveryAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "inTransitAt": {},
        "name": "<string>",
        "requiresShipping": true,
        "service": {
          "get__typename": "<string>",
          "handle": "<string>",
          "serviceName": "<string>"
        },
        "trackingInfo": [
          {
            "company": "<string>",
            "get__typename": "<string>",
            "number": "<string>",
            "url": {}
          }
        ]
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "get__typename": "<string>",
  "id": "<string>",
  "lines": {
    "get__typename": "<string>",
    "nodes": [
      {
        "get__typename": "<string>"
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "nextBillingDate": {},
  "note": "<string>",
  "originOrder": {
    "fulfillmentOrders": {
      "get__typename": "<string>",
      "nodes": [
        {
          "get__typename": "<string>"
        }
      ],
      "pageInfo": {
        "endCursor": "<string>",
        "get__typename": "<string>",
        "hasNextPage": true,
        "hasPreviousPage": true,
        "startCursor": "<string>"
      }
    },
    "get__typename": "<string>",
    "id": "<string>",
    "name": "<string>"
  },
  "updatedAt": {}
}
{
  "billingAttempts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "completedAt": {},
        "createdAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "idempotencyKey": "<string>",
        "ready": true
      }
    ]
  },
  "billingPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123,
    "maxCycles": 123,
    "minCycles": 123
  },
  "createdAt": {},
  "customAttributes": [
    {
      "get__typename": "<string>",
      "key": "<string>",
      "value": "<string>"
    }
  ],
  "customer": {
    "displayName": "<string>",
    "email": "<string>",
    "firstName": "<string>",
    "get__typename": "<string>",
    "id": "<string>",
    "lastName": "<string>",
    "phone": "<string>"
  },
  "customerPaymentMethod": {
    "get__typename": "<string>",
    "id": "<string>",
    "instrument": {
      "get__typename": "<string>"
    },
    "revokedAt": {}
  },
  "deliveryMethod": {
    "additionalInformation": {
      "get__typename": "<string>",
      "instructions": "<string>"
    },
    "brandedPromise": {
      "get__typename": "<string>",
      "handle": "<string>",
      "name": "<string>"
    },
    "get__typename": "<string>",
    "id": "<string>",
    "maxDeliveryDateTime": {},
    "minDeliveryDateTime": {},
    "serviceCode": "<string>"
  },
  "deliveryPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123
  },
  "deliveryPrice": {
    "amount": {},
    "get__typename": "<string>"
  },
  "discounts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "createdAt": {},
        "deliveredAt": {},
        "estimatedDeliveryAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "inTransitAt": {},
        "name": "<string>",
        "requiresShipping": true,
        "service": {
          "get__typename": "<string>",
          "handle": "<string>",
          "serviceName": "<string>"
        },
        "trackingInfo": [
          {
            "company": "<string>",
            "get__typename": "<string>",
            "number": "<string>",
            "url": {}
          }
        ]
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "get__typename": "<string>",
  "id": "<string>",
  "lines": {
    "get__typename": "<string>",
    "nodes": [
      {
        "get__typename": "<string>"
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "nextBillingDate": {},
  "note": "<string>",
  "originOrder": {
    "fulfillmentOrders": {
      "get__typename": "<string>",
      "nodes": [
        {
          "get__typename": "<string>"
        }
      ],
      "pageInfo": {
        "endCursor": "<string>",
        "get__typename": "<string>",
        "hasNextPage": true,
        "hasPreviousPage": true,
        "startCursor": "<string>"
      }
    },
    "get__typename": "<string>",
    "id": "<string>",
    "name": "<string>"
  },
  "updatedAt": {}
}
{
  "billingAttempts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "completedAt": {},
        "createdAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "idempotencyKey": "<string>",
        "ready": true
      }
    ]
  },
  "billingPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123,
    "maxCycles": 123,
    "minCycles": 123
  },
  "createdAt": {},
  "customAttributes": [
    {
      "get__typename": "<string>",
      "key": "<string>",
      "value": "<string>"
    }
  ],
  "customer": {
    "displayName": "<string>",
    "email": "<string>",
    "firstName": "<string>",
    "get__typename": "<string>",
    "id": "<string>",
    "lastName": "<string>",
    "phone": "<string>"
  },
  "customerPaymentMethod": {
    "get__typename": "<string>",
    "id": "<string>",
    "instrument": {
      "get__typename": "<string>"
    },
    "revokedAt": {}
  },
  "deliveryMethod": {
    "additionalInformation": {
      "get__typename": "<string>",
      "instructions": "<string>"
    },
    "brandedPromise": {
      "get__typename": "<string>",
      "handle": "<string>",
      "name": "<string>"
    },
    "get__typename": "<string>",
    "id": "<string>",
    "maxDeliveryDateTime": {},
    "minDeliveryDateTime": {},
    "serviceCode": "<string>"
  },
  "deliveryPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123
  },
  "deliveryPrice": {
    "amount": {},
    "get__typename": "<string>"
  },
  "discounts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "createdAt": {},
        "deliveredAt": {},
        "estimatedDeliveryAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "inTransitAt": {},
        "name": "<string>",
        "requiresShipping": true,
        "service": {
          "get__typename": "<string>",
          "handle": "<string>",
          "serviceName": "<string>"
        },
        "trackingInfo": [
          {
            "company": "<string>",
            "get__typename": "<string>",
            "number": "<string>",
            "url": {}
          }
        ]
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "get__typename": "<string>",
  "id": "<string>",
  "lines": {
    "get__typename": "<string>",
    "nodes": [
      {
        "get__typename": "<string>"
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "nextBillingDate": {},
  "note": "<string>",
  "originOrder": {
    "fulfillmentOrders": {
      "get__typename": "<string>",
      "nodes": [
        {
          "get__typename": "<string>"
        }
      ],
      "pageInfo": {
        "endCursor": "<string>",
        "get__typename": "<string>",
        "hasNextPage": true,
        "hasPreviousPage": true,
        "startCursor": "<string>"
      }
    },
    "get__typename": "<string>",
    "id": "<string>",
    "name": "<string>"
  },
  "updatedAt": {}
}
{
  "billingAttempts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "completedAt": {},
        "createdAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "idempotencyKey": "<string>",
        "ready": true
      }
    ]
  },
  "billingPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123,
    "maxCycles": 123,
    "minCycles": 123
  },
  "createdAt": {},
  "customAttributes": [
    {
      "get__typename": "<string>",
      "key": "<string>",
      "value": "<string>"
    }
  ],
  "customer": {
    "displayName": "<string>",
    "email": "<string>",
    "firstName": "<string>",
    "get__typename": "<string>",
    "id": "<string>",
    "lastName": "<string>",
    "phone": "<string>"
  },
  "customerPaymentMethod": {
    "get__typename": "<string>",
    "id": "<string>",
    "instrument": {
      "get__typename": "<string>"
    },
    "revokedAt": {}
  },
  "deliveryMethod": {
    "additionalInformation": {
      "get__typename": "<string>",
      "instructions": "<string>"
    },
    "brandedPromise": {
      "get__typename": "<string>",
      "handle": "<string>",
      "name": "<string>"
    },
    "get__typename": "<string>",
    "id": "<string>",
    "maxDeliveryDateTime": {},
    "minDeliveryDateTime": {},
    "serviceCode": "<string>"
  },
  "deliveryPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123
  },
  "deliveryPrice": {
    "amount": {},
    "get__typename": "<string>"
  },
  "discounts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "createdAt": {},
        "deliveredAt": {},
        "estimatedDeliveryAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "inTransitAt": {},
        "name": "<string>",
        "requiresShipping": true,
        "service": {
          "get__typename": "<string>",
          "handle": "<string>",
          "serviceName": "<string>"
        },
        "trackingInfo": [
          {
            "company": "<string>",
            "get__typename": "<string>",
            "number": "<string>",
            "url": {}
          }
        ]
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "get__typename": "<string>",
  "id": "<string>",
  "lines": {
    "get__typename": "<string>",
    "nodes": [
      {
        "get__typename": "<string>"
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "nextBillingDate": {},
  "note": "<string>",
  "originOrder": {
    "fulfillmentOrders": {
      "get__typename": "<string>",
      "nodes": [
        {
          "get__typename": "<string>"
        }
      ],
      "pageInfo": {
        "endCursor": "<string>",
        "get__typename": "<string>",
        "hasNextPage": true,
        "hasPreviousPage": true,
        "startCursor": "<string>"
      }
    },
    "get__typename": "<string>",
    "id": "<string>",
    "name": "<string>"
  },
  "updatedAt": {}
}
{
  "billingAttempts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "completedAt": {},
        "createdAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "idempotencyKey": "<string>",
        "ready": true
      }
    ]
  },
  "billingPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123,
    "maxCycles": 123,
    "minCycles": 123
  },
  "createdAt": {},
  "customAttributes": [
    {
      "get__typename": "<string>",
      "key": "<string>",
      "value": "<string>"
    }
  ],
  "customer": {
    "displayName": "<string>",
    "email": "<string>",
    "firstName": "<string>",
    "get__typename": "<string>",
    "id": "<string>",
    "lastName": "<string>",
    "phone": "<string>"
  },
  "customerPaymentMethod": {
    "get__typename": "<string>",
    "id": "<string>",
    "instrument": {
      "get__typename": "<string>"
    },
    "revokedAt": {}
  },
  "deliveryMethod": {
    "additionalInformation": {
      "get__typename": "<string>",
      "instructions": "<string>"
    },
    "brandedPromise": {
      "get__typename": "<string>",
      "handle": "<string>",
      "name": "<string>"
    },
    "get__typename": "<string>",
    "id": "<string>",
    "maxDeliveryDateTime": {},
    "minDeliveryDateTime": {},
    "serviceCode": "<string>"
  },
  "deliveryPolicy": {
    "anchors": [
      {
        "cutoffDay": 123,
        "day": 123,
        "get__typename": "<string>",
        "month": 123
      }
    ],
    "get__typename": "<string>",
    "intervalCount": 123
  },
  "deliveryPrice": {
    "amount": {},
    "get__typename": "<string>"
  },
  "discounts": {
    "get__typename": "<string>",
    "nodes": [
      {
        "createdAt": {},
        "deliveredAt": {},
        "estimatedDeliveryAt": {},
        "get__typename": "<string>",
        "id": "<string>",
        "inTransitAt": {},
        "name": "<string>",
        "requiresShipping": true,
        "service": {
          "get__typename": "<string>",
          "handle": "<string>",
          "serviceName": "<string>"
        },
        "trackingInfo": [
          {
            "company": "<string>",
            "get__typename": "<string>",
            "number": "<string>",
            "url": {}
          }
        ]
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "get__typename": "<string>",
  "id": "<string>",
  "lines": {
    "get__typename": "<string>",
    "nodes": [
      {
        "get__typename": "<string>"
      }
    ],
    "pageInfo": {
      "endCursor": "<string>",
      "get__typename": "<string>",
      "hasNextPage": true,
      "hasPreviousPage": true,
      "startCursor": "<string>"
    }
  },
  "nextBillingDate": {},
  "note": "<string>",
  "originOrder": {
    "fulfillmentOrders": {
      "get__typename": "<string>",
      "nodes": [
        {
          "get__typename": "<string>"
        }
      ],
      "pageInfo": {
        "endCursor": "<string>",
        "get__typename": "<string>",
        "hasNextPage": true,
        "hasPreviousPage": true,
        "startCursor": "<string>"
      }
    },
    "get__typename": "<string>",
    "id": "<string>",
    "name": "<string>"
  },
  "updatedAt": {}
}

Headers

X-API-Key
string

Query Parameters

contractId
integer<int64>
required

Subscription contract ID to add discount to

api_key
string

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

percentage
integer<int32>

Percentage discount value (use with discountType=PERCENTAGE)

discountTitle
string

Display title for the discount

recurringCycleLimit
integer<int32>

Number of billing cycles discount applies (null for unlimited)

appliesOnEachItem
boolean

Apply discount to each item individually (true) or entire order (false)

amount
number<double>

Fixed amount discount value (use with discountType=FIXED_AMOUNT)

discountType
string

Discount type: PERCENTAGE or FIXED_AMOUNT

Response

Discount successfully created and applied to subscription

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