Comprehensive API documentation for managing subscriptions, payments, and related operations. These APIs allow you to programmatically manage subscription lifecycles, handle payments, configure products, and integrate subscription functionality into your applications.
- Update minimum cycles for a subscription contract
External APIs (0.0.1)
Request
Updates the order note that will be added to all future orders generated by this subscription. Order notes help merchants track special instructions, customer preferences, or internal information about the subscription.
Key Features:
- Note is automatically added to all future recurring orders
- Visible in both merchant portal and customer portal
- Appears in Shopify order details for easy reference
- Changes apply to future orders only (existing orders unchanged) Common Use Cases:
- Customer preferences: "No nuts - severe allergy"
- Delivery instructions: "Leave package at side door"
- Gift messages: "Happy Birthday from Mom!"
- Internal notes: "VIP customer - priority handling"
- Processing instructions: "Include sample with each order"
Important Notes:
- Empty string clears the existing note
- No character limit imposed by API (check Shopify limits)
- HTML is not rendered - stored as plain text
- Updates are logged in activity history
- Note persists until explicitly changed
Order Generation: When Appstle creates recurring orders:
- Retrieves current order note from subscription
- Adds note to new Shopify order
- Note appears in order details immediately
- Merchants can still edit individual order notes
Authentication: Requires valid X-API-Key header
Note text to be added to all future orders. Can include special instructions, preferences, or internal notes. Pass empty string to clear existing note. HTML tags are not rendered - stored as plain text.
Delivery Instruction
Internal Note
Gift Message
Allergy Note
Clear Note
- https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-order-note/{contractId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-order-note/123456789?orderNote=string&api_key=string' \
-H 'X-API-Key: sk_live_1234567890abcdef'true
Request
Updates the minimum number of billing cycles (orders) that a customer must complete before they can cancel their subscription. This creates a commitment period that helps with customer retention and business predictability.
What are Minimum Cycles? Minimum cycles represent a commitment period where:
- Customers must complete a specified number of orders
- Cancellation is blocked until the minimum is met
- Often tied to special pricing or promotional offers
- Counted from the subscription start date
Key Features:
- Updates commitment period for existing subscriptions
- Can increase or decrease minimum cycles
- Setting to null removes the minimum commitment
- Preserves all other subscription settings
- Automatically handles invalid discount codes
- Updates future billing queue after change
Common Use Cases:
- Promotional Offers: '3-month minimum for 50% off'
- Hardware Subsidies: '12-month commitment with free device'
- Loyalty Programs: Reduce minimum after customer proves loyalty
- Seasonal Campaigns: Temporary commitment requirements
- Contract Adjustments: Customer service exceptions
Impact on Customers:
- Cannot cancel via portal until minimum cycles complete
- Pause/resume typically still allowed (check settings)
- Shows commitment status in customer portal
- No automatic notification sent (consider sending separately)
Cycle Counting:
- Only successful billing attempts count toward minimum
- Failed payments don't increment the cycle count
- Skipped orders (if allowed) don't count
- Current cycle = successful past orders + 1
Interaction with Max Cycles:
- Min cycles must be less than or equal to max cycles
- If max cycles exist, subscription auto-cancels after maximum
- Common pattern: 3 min cycles, 12 max cycles
Best Practices:
- Clearly communicate commitment terms upfront
- Consider grandfathering existing customers
- Use reasonable minimums (typically 3-12 cycles)
- Document reason for changes in activity logs
- Send customer notification for transparency
Important Notes:
- Changes apply immediately to cancellation logic
- Doesn't affect past or in-progress orders
- Customer portal respects this setting automatically
- Activity log tracks old and new values
- Consider legal requirements in your jurisdiction
Authentication: Requires valid X-API-Key header
- https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-min-cycles
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-min-cycles?contractId=0&api_key=string&minCycles=6' \
-H 'X-API-Key: string'{ "id": "gid://shopify/SubscriptionContract/123456789", "status": "ACTIVE", "nextBillingDate": "2024-04-01T00:00:00Z", "createdAt": "2024-01-01T00:00:00Z", "customer": { "id": "gid://shopify/Customer/987654321", "email": "customer@example.com", "displayName": "John Doe" }, "billingPolicy": { "interval": "MONTH", "intervalCount": 1, "minCycles": 6, "maxCycles": null, "anchors": [ … ] }, "deliveryPolicy": { "interval": "MONTH", "intervalCount": 1 }, "customerPaymentMethod": { "id": "gid://shopify/CustomerPaymentMethod/123456", "instrument": { … } }, "lines": { "edges": [ … ] } }
Request
Updates the maximum number of billing cycles (orders) after which a subscription will automatically terminate. This creates a fixed-duration subscription that ends after a specific number of orders.
What are Maximum Cycles? Maximum cycles define subscription duration limits where:
- Subscription automatically cancels after the specified number of orders
- No further orders are generated once maximum is reached
- Useful for fixed-term offers, trials, or seasonal subscriptions
- Customer is notified before final order (if configured)
Key Features:
- Cannot set below current cycle count (prevents immediate cancellation)
- Setting to null creates an indefinite subscription
- Automatically reschedules order queue based on new limit
- Preserves all other subscription settings
- Validates against current subscription progress
Current Cycle Calculation:
- Current cycle = Successful billing attempts + 1
- Failed payments don't count toward maximum
- First order is cycle 1, second is cycle 2, etc.
- System prevents setting max below current position
Common Use Cases:
- Trial Subscriptions: '3-box trial' that auto-ends
- Seasonal Programs: '6-month summer subscription'
- Limited Series: '12-issue magazine subscription'
- Promotional Offers: 'First 5 boxes at special price'
- Gift Subscriptions: Fixed duration gifts that don't renew
What Happens at Maximum: When a subscription reaches its maximum cycles:
- Final order is processed normally
- Subscription status changes to CANCELLED
- No future orders are scheduled
- Customer receives cancellation notification
- Cannot be reactivated (new subscription required)
Interaction with Min Cycles:
- Can have both min and max (e.g., 3 min, 12 max)
- Min cycles enforces commitment period
- Max cycles enforces termination
- Common pattern: Commitment with defined end
Queue Management: After updating max cycles:
- System recalculates future order schedule
- Removes orders beyond the new maximum
- Adjusts upcoming order notifications
- Updates subscription end date projections
Important Notes:
- Validation prevents accidental immediate cancellation
- Changes apply to future billing cycles only
- Activity log tracks old and new values
- Consider customer communication for changes
- Setting null removes any duration limit
Authentication: Requires valid X-API-Key header
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
- https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://subscription-admin.appstle.com/api/external/v2/subscription-contracts-update-max-cycles?contractId=0&api_key=string&maxCycles=12' \
-H 'X-API-Key: string'{ "id": "gid://shopify/SubscriptionContract/123456789", "status": "ACTIVE", "nextBillingDate": "2024-04-01T00:00:00Z", "createdAt": "2024-01-01T00:00:00Z", "customer": { "id": "gid://shopify/Customer/987654321", "email": "customer@example.com", "displayName": "John Doe" }, "billingPolicy": { "interval": "MONTH", "intervalCount": 1, "minCycles": 3, "maxCycles": 12, "anchors": [ … ] }, "deliveryPolicy": { "interval": "MONTH", "intervalCount": 1 }, "lastBillingAttemptDate": "2024-03-01T00:00:00Z", "orders": { "edges": [ … ] }, "lines": { "edges": [ … ] } }