Skip to main content
PUT
/
api
/
external
/
v2
/
subscription-contracts-update-max-cycles
Update maximum cycles for a subscription contract
curl --request PUT \
  --url https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles
import requests

url = "https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles"

response = requests.put(url)

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

fetch('https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
const url = 'https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles';
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://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles",
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://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles"

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://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles")

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
{
  "billingPolicy": {
    "anchors": [
      {
        "day": 15,
        "type": "MONTHDAY"
      }
    ],
    "interval": "MONTH",
    "intervalCount": 1,
    "maxCycles": 12,
    "minCycles": 3
  },
  "createdAt": "2024-01-01T00:00:00Z",
  "customer": {
    "displayName": "John Doe",
    "email": "customer@example.com",
    "id": "gid://shopify/Customer/987654321"
  },
  "deliveryPolicy": {
    "interval": "MONTH",
    "intervalCount": 1
  },
  "id": "gid://shopify/SubscriptionContract/123456789",
  "lastBillingAttemptDate": "2024-03-01T00:00:00Z",
  "lines": {
    "edges": [
      {
        "node": {
          "currentPrice": {
            "amount": "39.99",
            "currencyCode": "USD"
          },
          "id": "gid://shopify/SubscriptionLine/111111",
          "quantity": 1,
          "title": "12-Month Subscription Box",
          "variantId": "gid://shopify/ProductVariant/42549172011164"
        }
      }
    ]
  },
  "nextBillingDate": "2024-04-01T00:00:00Z",
  "orders": {
    "edges": [
      {
        "node": {
          "createdAt": "2024-03-01T00:00:00Z",
          "financialStatus": "PAID",
          "fulfillmentStatus": "FULFILLED",
          "id": "gid://shopify/Order/5678901234"
        }
      },
      {
        "node": {
          "createdAt": "2024-02-01T00:00:00Z",
          "financialStatus": "PAID",
          "fulfillmentStatus": "FULFILLED",
          "id": "gid://shopify/Order/5678901233"
        }
      },
      {
        "node": {
          "createdAt": "2024-01-01T00:00:00Z",
          "financialStatus": "PAID",
          "fulfillmentStatus": "FULFILLED",
          "id": "gid://shopify/Order/5678901232"
        }
      }
    ]
  },
  "status": "ACTIVE"
}

Headers

X-API-Key
string

Query Parameters

contractId
integer<int64>
required

Contract ID

api_key
string

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

maxCycles
integer | null
required

Maximum Cycles. The total number of orders after which the subscription will automatically terminate. Must be greater than or equal to the current cycle count and any configured minimum cycles. Common values:

  • 3: Three-order trial
  • 6: Six-month seasonal subscription
  • 12: Annual subscription
  • 24: Two-year commitment
  • null: Ongoing subscription with no end date
Required range: 1 <= x <= 9999

Response

Maximum cycles updated successfully

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