# Appstle: Subscriptions

## Subscriptions

### Get Started

- [Appstle Subscriptions: Recurring Revenue for Shopify](https://developers.appstle.com/subscription/introduction.md): Learn how Appstle Subscriptions works, when to use the Admin API vs. the Storefront API, and what you can build with each interface.
- [Authenticate with the Appstle Subscriptions API](https://developers.appstle.com/subscription/authentication.md): Create and manage API keys in the Appstle dashboard, pass the X-API-Key header on every Admin API request, and connect third-party products through the Partner Integration Framework.
- [Get started with Appstle Subscriptions API](https://developers.appstle.com/subscription/quickstart.md): Create your Appstle API key, make your first authenticated request, and retrieve a customer's subscriptions in under five minutes with working curl examples.

### Guides

- [Appstle Subscriptions integration guide](https://developers.appstle.com/subscription/integration-guide.md): Integrate with Appstle Subscriptions: authentication, base URL, subscription management, product operations, discounts, shipping, past orders, and partner connections.
- [Build your own subscription frontend](https://developers.appstle.com/subscription/build-your-own-frontend.md): Use Appstle's Storefront APIs and JavaScript events to build a fully custom subscription UI — from rendering selling plans on product pages to managing subscriptions in a customer portal.
- [Automate subscriptions with Shopify Flow](https://developers.appstle.com/subscription/shopify-flow.md): Use Appstle's Shopify Flow triggers and actions to automate subscription workflows without API tokens — everything runs in Shopify's authenticated context.
- [JavaScript events for the Appstle storefront widget](https://developers.appstle.com/subscription/javascript-hooks.md): Listen to DOM events fired by the Appstle subscription widget, cart, customer portal, and Build-a-Box to add analytics, custom UI, and storefront integrations.
- [Shopify metafields and tags for Appstle Subscriptions](https://developers.appstle.com/subscription/metafields-and-tags.md): Reference for all Appstle Subscriptions metafields (namespace, keys, types) and customer/order tags, including Liquid template support for dynamic tag values.

### Partner Integration

- [Partner Integration Framework overview](https://developers.appstle.com/subscription/partner-framework-overview.md): How the Appstle Subscriptions Partner Integration Framework works — one handshake per merchant, a scoped API token, no API plan required, automatic revocation.
- [Partner Integration Framework](https://developers.appstle.com/subscription/partner-integration.md): Build a zero-configuration integration between your app and Appstle Subscriptions, with scoped API tokens per merchant.

### Webhooks

- [Appstle Subscriptions webhook events and setup](https://developers.appstle.com/subscription/webhooks.md): Configure webhook endpoints to receive real-time subscription events, verify Svix signatures, handle retries, and troubleshoot delivery failures.

### Admin API

#### Operations & Settings

- [Get/Search activity logs](https://developers.appstle.com/subscription-admin-api/operations-&-settings/getsearch-activity-logs.md): Retrieves activity logs for all subscription-related events and changes in the authenticated shop. Activity logs provide a comprehensive audit trail of all subscription activities, changes, and system events.
- [Bulk update subscription billing interval](https://developers.appstle.com/subscription-admin-api/operations-&-settings/bulk-update-subscription-billing-interval.md): Updates the billing interval configuration for subscription contracts in bulk.
- [Bulk update subscription delivery method](https://developers.appstle.com/subscription-admin-api/operations-&-settings/bulk-update-subscription-delivery-method.md): Updates the delivery method configuration for subscription contracts in bulk.
- [Bulk update subscription delivery price](https://developers.appstle.com/subscription-admin-api/operations-&-settings/bulk-update-subscription-delivery-price.md): Updates the delivery price for subscription contracts in bulk.
- [Hide subscriptions in bulk](https://developers.appstle.com/subscription-admin-api/operations-&-settings/hide-subscriptions-in-bulk.md): Hides multiple subscription contracts from customer view in bulk. This operation allows merchants to quickly hide subscriptions from appearing in the customer portal without canceling or deleting them.
- [Replace products in subscriptions in bulk](https://developers.appstle.com/subscription-admin-api/operations-&-settings/replace-products-in-subscriptions-in-bulk.md): Replaces old product variants with new product variants across multiple subscription contracts in bulk. This powerful operation allows merchants to update products in active subscriptions when products are discontinued, reformulated, or repackaged.
- [Get cancellation management configuration](https://developers.appstle.com/subscription-admin-api/operations-&-settings/get-cancellation-management-configuration.md): Retrieves the cancellation management and retention settings for the authenticated shop. These settings control the subscription cancellation flow, retention strategies, and customer feedback collection when subscribers attempt to cancel their subscriptions.
- [Create a new shipping/delivery profile](https://developers.appstle.com/subscription-admin-api/operations-&-settings/create-a-new-shippingdelivery-profile.md): Creates a new shipping or delivery profile for subscription orders. This endpoint allows you to configure custom shipping rates, delivery methods, and shipping zones for your subscription products. Delivery profiles control how subscription products are shipped to customers.
- [Create a new shipping/delivery profile (V2)](https://developers.appstle.com/subscription-admin-api/operations-&-settings/create-a-new-shippingdelivery-profile-v2.md): Creates a new shipping or delivery profile for subscription orders using the V2 request format. This version provides enhanced configuration options for delivery methods, zones, and pricing.
- [Create a new shipping/delivery profile (V3)](https://developers.appstle.com/subscription-admin-api/operations-&-settings/create-a-new-shippingdelivery-profile-v3.md): Creates a new shipping or delivery profile for subscription orders using the V3 request format. This is the latest version with the most comprehensive delivery profile configuration capabilities.

#### Subscription Contracts

- [Associate external payment gateway customer with Shopify customer](https://developers.appstle.com/subscription-admin-api/subscription-contracts/associate-external-payment-gateway-customer-with-shopify-customer.md): Links a customer's payment profile from an external payment gateway (Stripe, Braintree, PayPal, Authorize.Net) to their Shopify customer account. This enables Shopify subscription billing to charge payment methods stored in external gateways, which is essential for migrating existing subscriptions o…
- [Retrieve raw Shopify GraphQL response for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/retrieve-raw-shopify-graphql-response-for-a-subscription-contract.md): Fetches the complete, unprocessed JSON response directly from Shopify's GraphQL API for the specified subscription contract. This endpoint returns the full subscription data structure as provided by Shopify, including all nested objects and relationships.
- [Generate customer portal authentication token](https://developers.appstle.com/subscription-admin-api/subscription-contracts/generate-customer-portal-authentication-token.md): Generates a secure, time-limited authentication token that grants access to the customer portal. Supports lookup by either Shopify customer ID or customer email address, making it flexible for various integration patterns.
- [Retrieve subscription contracts](https://developers.appstle.com/subscription-admin-api/subscription-contracts/retrieve-subscription-contracts.md): Retrieves a paginated list of subscription contracts with powerful filtering capabilities. This endpoint enables complex queries to find specific subscriptions based on various criteria including dates, customer information, product details, and subscription characteristics.
- [Add custom discount to subscription](https://developers.appstle.com/subscription-admin-api/subscription-contracts/add-custom-discount-to-subscription.md): Creates and applies a custom manual discount to an existing subscription contract. This powerful endpoint supports multiple discount types and configurations for flexible pricing strategies.
- [Apply discount code to subscription](https://developers.appstle.com/subscription-admin-api/subscription-contracts/apply-discount-code-to-subscription.md): Applies a Shopify discount code to an existing subscription contract. The discount will be applied to future orders generated by this subscription.
- [Replace all line item attributes in bulk across subscription contracts](https://developers.appstle.com/subscription-admin-api/subscription-contracts/replace-all-line-item-attributes-in-bulk-across-subscription-contracts.md): This API replaces all existing attributes for the specified line items within subscription contracts. Use carefully, as any attributes not included in the request will be removed.
- [Send magic link email to customer for portal access](https://developers.appstle.com/subscription-admin-api/subscription-contracts/send-magic-link-email-to-customer-for-portal-access.md): Sends an automated email to a customer containing a secure magic link for accessing their subscription management portal. The email is sent using the shop's configured email template and includes a time-limited authentication token.
- [Remove discount from subscription](https://developers.appstle.com/subscription-admin-api/subscription-contracts/remove-discount-from-subscription.md): Removes a specific discount from a subscription contract based on the discount ID. This will affect the pricing of all future orders generated by the subscription.
- [Update next billing date for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-next-billing-date-for-a-subscription-contract.md): Reschedules the next billing date for an active subscription contract. This endpoint allows you to change when the next order will be created and processed.
- [Update billing interval for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-billing-interval-for-a-subscription-contract.md): Updates the billing frequency (how often the customer is charged) for a subscription contract. This comprehensive operation recalculates billing dates, adjusts pricing, updates selling plans, and may also modify delivery intervals.
- [Update Subscription contract frequency by compatible selling-plan frequency](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-subscription-contract-frequency-by-compatible-selling-plan-frequency.md): Strict compatible frequency update. Use frequencyKey from /api/data/external/v2/compatible-selling-plan-frequencies or a sellingPlanId that belongs to one compatible frequency option. The existing /api/external/v2/subscription-contracts-update-frequency-by-selling-plan endpoint remains legacy for ba…
- [Update Subscription contract frequency by selling plan](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-subscription-contract-frequency-by-selling-plan.md)
- [Update line item attributes for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-line-item-attributes-for-a-subscription-contract.md): Updates the custom attributes for a specific line item within a subscription contract. This endpoint accepts a contract ID, a line item ID, and a list of attribute objects (each containing key/value pairs) to update. It uses the underlying service to perform validation (such as contract existence, f…
- [Update multiple line item attributes for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/update-multiple-line-item-attributes-for-a-subscription-contract.md): Updates custom attributes for multiple line items within a subscription contract. The request body must be a JSON object where each key is a line item identifier (as a String) and each value is a list of AttributeInfo objects containing attribute key/value pairs. For example: { "gid://shopify/Subscr…
- [Cancel a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-contracts/cancel-a-subscription-contract.md): Cancels an existing subscription contract. This operation terminates all future billing and delivery cycles for the subscription. The cancellation takes effect immediately.

#### Build-a-Box & Bundles

- [Update an existing Build-A-Box subscription bundle](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/update-an-existing-build-a-box-subscription-bundle.md): Updates an existing Build-A-Box subscription bundle with new configuration settings, product selections, pricing rules, or other bundle attributes. This endpoint allows you to modify any aspect of a previously created bundle while maintaining its unique identifier and shop association.
- [Create a new Build-A-Box subscription bundle](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/create-a-new-build-a-box-subscription-bundle.md): Creates a new subscription bundle (Build-A-Box) allowing customers to select and customize products for recurring deliveries. Build-A-Box enables a flexible subscription model where customers can create personalized product boxes.
- [Retrieve Build-A-Box bundle details by handle for customer storefront](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/retrieve-build-a-box-bundle-details-by-handle-for-customer-storefront.md): Fetches comprehensive Build-A-Box bundle configuration using a user-friendly handle (URL slug) instead of numeric ID. This endpoint is specifically designed for customer-facing storefronts and integration scenarios where you want to reference bundles by their human-readable handles rather than datab…
- [Retrieve a Build-A-Box bundle by ID](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/retrieve-a-build-a-box-bundle-by-id.md): Fetches the complete configuration and details of a specific Build-A-Box subscription bundle using its unique identifier. This endpoint returns all bundle settings including products, pricing, rules, and delivery options.
- [Delete a Build-A-Box subscription bundle](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/delete-a-build-a-box-subscription-bundle.md): Permanently removes a Build-A-Box subscription bundle from your shop. This operation is irreversible and will prevent new customers from subscribing to this bundle. However, existing subscriptions using this bundle will remain active.
- [Get subscription bundle settings (Build-a-Box configuration)](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/get-subscription-bundle-settings-build-a-box-configuration.md): Retrieves the configuration settings for subscription bundles (also known as Build-a-Box or customizable subscription boxes). This endpoint returns all settings that control how customers can create and manage their custom subscription bundles.
- [Update subscription bundling configuration](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/update-subscription-bundling-configuration.md): Updates the configuration for one or more subscription bundles (Build-a-Box). This endpoint allows bulk updates to bundle product selections, quantities, and configurations.
- [Generate discount code for bundle](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/generate-discount-code-for-bundle.md): Generates a discount code for a subscription bundle. This endpoint creates a Shopify discount code that can be applied to bundle subscriptions, typically used during the checkout process.
- [Get bundle details by handle](https://developers.appstle.com/subscription-admin-api/build-a-box-&-bundles/get-bundle-details-by-handle.md): Retrieves complete details for a subscription bundle using its unique handle. This endpoint returns the bundle configuration, included products, pricing, and available subscription options.

#### Customization

- [Get customer portal settings](https://developers.appstle.com/subscription-admin-api/customization/get-customer-portal-settings.md): Retrieves the customer portal configuration and settings for the authenticated shop. The customer portal is the self-service interface where subscribers can manage their subscriptions, update payment methods, modify delivery addresses, and more.
- [Get custom CSS for customer portal](https://developers.appstle.com/subscription-admin-api/customization/get-custom-css-for-customer-portal.md): Retrieves the custom CSS styling configuration for the customer portal. This endpoint returns all custom CSS rules that have been configured to customize the appearance, layout, and branding of the subscription customer portal.
- [Regenerate subscription widget scripts](https://developers.appstle.com/subscription-admin-api/customization/regenerate-subscription-widget-scripts.md): Triggers regeneration and deployment of subscription widget JavaScript files for the authenticated shop. This endpoint rebuilds the widget scripts that power subscription functionality on your storefront and deploys them to CDN.

#### Customer Retention

- [Get customer retention activities](https://developers.appstle.com/subscription-admin-api/customer-retention/get-customer-retention-activities.md): Retrieves a paginated, filterable list of customer retention activities for the authenticated shop. A retention activity is recorded whenever a customer goes through the cancellation or pause flow and either accepts a retention offer (discount, pause, frequency change, product swap, etc.) or proceed…

#### Subscription Data

- [Get delivery options for subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-data/get-delivery-options-for-subscription-contract.md): Retrieves all valid delivery methods available for a specific subscription contract. Returns shipping profiles and delivery options based on the contract's delivery address and product characteristics.

#### Customers

- [Generate customer portal access link by customer ID or email](https://developers.appstle.com/subscription-admin-api/customers/generate-customer-portal-access-link-by-customer-id-or-email.md): Generates a secure, time-limited magic link that allows customers to access their subscription management portal. This endpoint supports lookup by either customer ID or email address, making it flexible for different integration scenarios.
- [Generate customer portal link](https://developers.appstle.com/subscription-admin-api/customers/generate-customer-portal-link.md): Generates a secure, time-limited link that allows customers to access their subscription management portal. This link provides customers with self-service capabilities to manage their subscriptions without requiring login credentials.
- [Retrieve customers with subscriptions](https://developers.appstle.com/subscription-admin-api/customers/retrieve-customers-with-subscriptions.md): Returns a paginated list of customers who have subscription contracts. Supports filtering by customer name, email, and subscription count.
- [Get customer payment methods from Shopify](https://developers.appstle.com/subscription-admin-api/customers/get-customer-payment-methods-from-shopify.md): Retrieves all payment methods associated with a customer directly from Shopify's payment API. This endpoint returns detailed information about stored payment instruments including credit/debit cards, digital wallets, and other payment methods that the customer can use for subscription billing.
- [Get detailed subscription information for a customer](https://developers.appstle.com/subscription-admin-api/customers/get-detailed-subscription-information-for-a-customer.md): Retrieves comprehensive subscription contract details for a specific customer, including subscription status, products, billing information, delivery schedules, and more. This endpoint returns full subscription objects with all associated data, making it ideal for displaying subscription management…
- [Sync customer subscription details from Shopify](https://developers.appstle.com/subscription-admin-api/customers/sync-customer-subscription-details-from-shopify.md): Synchronizes customer subscription information from Shopify to the Appstle subscription system. This endpoint fetches the latest customer data from Shopify and updates the local database to ensure data consistency across platforms.
- [Get valid subscription contract IDs for a customer](https://developers.appstle.com/subscription-admin-api/customers/get-valid-subscription-contract-ids-for-a-customer.md): Retrieves a set of all valid (active, paused, or otherwise non-deleted) subscription contract IDs for a specific customer. This endpoint returns only the contract IDs without detailed subscription information, making it ideal for quick lookups and validation checks.
- [Get customer details with subscriptions](https://developers.appstle.com/subscription-admin-api/customers/get-customer-details-with-subscriptions.md): Retrieves comprehensive customer information including their subscription contracts. This endpoint provides customer profile data along with a paginated list of their active and historical subscriptions.

#### Product Catalog

- [Get all product swaps for a shop](https://developers.appstle.com/subscription-admin-api/product-catalog/get-all-product-swaps-for-a-shop.md): Retrieves all configured product swap automations for the authenticated shop. Product swaps allow automatic replacement of products in subscription orders based on billing cycles or recurring schedules.
- [Update an existing product swap automation](https://developers.appstle.com/subscription-admin-api/product-catalog/update-an-existing-product-swap-automation.md): Updates an existing product swap automation rule for the authenticated shop. Use this endpoint to modify swap configurations, change source/destination products, adjust timing, or update discount handling.
- [Create a new product swap automation](https://developers.appstle.com/subscription-admin-api/product-catalog/create-a-new-product-swap-automation.md): Creates a new product swap automation rule for the authenticated shop. Product swaps automatically replace products in subscription orders based on billing cycles or recurring schedules.
- [Get product swap variant groups for a contract](https://developers.appstle.com/subscription-admin-api/product-catalog/get-product-swap-variant-groups-for-a-contract.md): Retrieves product swap variant groups for the next 10 billing cycles of a specific subscription contract. This endpoint calculates and returns which products will be swapped to in future billing cycles based on configured swap automations.
- [Get a specific product swap by ID](https://developers.appstle.com/subscription-admin-api/product-catalog/get-a-specific-product-swap-by-id.md): Retrieves detailed information about a specific product swap automation configuration. This endpoint returns complete details about the source products, destination products, swap triggers, and all associated settings.
- [Delete a product swap automation](https://developers.appstle.com/subscription-admin-api/product-catalog/delete-a-product-swap-automation.md): Permanently deletes a product swap automation configuration. Once deleted, the swap will no longer be applied to any subscription orders. Existing subscriptions that have already had products swapped are not affected.

#### Subscription Management

- [List quick checkout links](https://developers.appstle.com/subscription-admin-api/subscription-management/list-quick-checkout-links.md)
- [Get subscription contract analytics and revenue metrics](https://developers.appstle.com/subscription-admin-api/subscription-management/get-subscription-contract-analytics-and-revenue-metrics.md): Retrieves comprehensive analytics for a specific subscription contract, including total revenue generated, number of successful orders, and formatted revenue display. This endpoint provides key performance metrics for understanding the financial impact of individual subscriptions.
- [Get available billing intervals for selling plan(s)](https://developers.appstle.com/subscription-admin-api/subscription-management/get-available-billing-intervals-for-selling-plans.md): Retrieves all available billing frequency options configured for specific Shopify selling plan(s). Returns the complete set of billing intervals that customers can choose from, including frequency, interval type, and any associated discounts or pricing policies.
- [Create a new subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/create-a-new-subscription-contract.md): Creates a new subscription contract for a customer with specified products, billing frequency, and delivery details. This endpoint allows you to programmatically create subscriptions with custom pricing, delivery schedules, and multiple line items. The subscription will be created in Shopify and syn…
- [Get current billing cycle number for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/get-current-billing-cycle-number-for-a-subscription-contract.md): Retrieves the current billing cycle number for a specific subscription contract. The cycle number represents how many successful billing attempts have occurred for this subscription, starting from 1 for the initial order.
- [Replace product variants in a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/replace-product-variants-in-a-subscription-contract.md): Replaces existing product variants with new ones in a subscription contract. This endpoint supports both regular subscription products and one-time products, allowing you to swap products, update quantities, and manage the product mix in a subscription.
- [Split or duplicate an existing subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/split-or-duplicate-an-existing-subscription-contract.md): Creates a new subscription contract by either splitting (moving) or duplicating selected line items from an existing contract. This endpoint allows you to divide a subscription into multiple contracts or create a copy with specific products.
- [Get subscription fulfillment details for latest order](https://developers.appstle.com/subscription-admin-api/subscription-management/get-subscription-fulfillment-details-for-latest-order.md): Retrieves fulfillment information for the most recent successful order associated with a subscription contract. This includes tracking details, shipment status, delivery estimates, and fulfillment line items from Shopify.
- [Update delivery interval for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/update-delivery-interval-for-a-subscription-contract.md): Updates the delivery interval for the specified subscription contract. This endpoint allows external API consumers to change the delivery interval count and type (of type SellingPlanInterval) used for scheduling deliveries.
- [Update subscription delivery method](https://developers.appstle.com/subscription-admin-api/subscription-management/update-subscription-delivery-method.md): Updates the delivery method for a subscription contract, supporting standard shipping, local delivery, and customer pickup options. The delivery method determines how future orders will be fulfilled.
- [Update delivery price for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/update-delivery-price-for-a-subscription-contract.md): Updates the fixed delivery price for all future orders in a subscription contract. This allows manual override of calculated shipping rates with a custom delivery fee.
- [Update maximum cycles for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/update-maximum-cycles-for-a-subscription-contract.md): 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.
- [Update minimum cycles for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/update-minimum-cycles-for-a-subscription-contract.md): 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.
- [Update order note for subscription](https://developers.appstle.com/subscription-admin-api/subscription-management/update-order-note-for-subscription.md): 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.
- [Update subscription delivery address and method](https://developers.appstle.com/subscription-admin-api/subscription-management/update-subscription-delivery-address-and-method.md): Updates the shipping address or delivery method for a subscription contract. Supports standard shipping, local delivery, and pickup options with comprehensive address validation.
- [Update subscription contract status](https://developers.appstle.com/subscription-admin-api/subscription-management/update-subscription-contract-status.md): Updates the status of a subscription contract to ACTIVE, PAUSED, or CANCELLED. This endpoint manages the lifecycle of subscriptions with automatic state tracking and notifications.
- [Get raw Shopify GraphQL contract response](https://developers.appstle.com/subscription-admin-api/subscription-management/get-raw-shopify-graphql-contract-response.md): Retrieves the complete, unprocessed subscription contract data directly from Shopify's GraphQL API. This endpoint returns the full Shopify subscription contract object exactly as Shopify provides it, including all nested fields, relationships, and GraphQL metadata.
- [Update custom attributes on a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-management/update-custom-attributes-on-a-subscription-contract.md): Updates or replaces custom key-value attributes on a subscription contract. These attributes are stored with the subscription and can be used to track custom data, preferences, or metadata that's important for your business processes.

#### Billing & Payments

- [Update subscription billing attempt](https://developers.appstle.com/subscription-admin-api/billing-&-payments/update-subscription-billing-attempt.md): Updates an existing subscription billing attempt. This endpoint allows modification of billing attempt details such as billing date, order note, and other attributes.
- [Update order note for a billing attempt](https://developers.appstle.com/subscription-admin-api/billing-&-payments/update-order-note-for-a-billing-attempt.md): Updates the order note (customer note) for a billing attempt. This note will be included when the order is created in Shopify.
- [Trigger immediate billing for an order](https://developers.appstle.com/subscription-admin-api/billing-&-payments/trigger-immediate-billing-for-an-order.md): Immediately processes a billing attempt, creating an order in Shopify. This bypasses the scheduled billing date and processes the order right away.
- [Get past orders](https://developers.appstle.com/subscription-admin-api/billing-&-payments/get-past-orders.md): Retrieves paginated list of past (processed) billing attempts for a subscription contract or customer. Includes successful orders, failed attempts, and skipped orders.
- [Get past orders report with detailed filtering](https://developers.appstle.com/subscription-admin-api/billing-&-payments/get-past-orders-report-with-detailed-filtering.md): Retrieves a detailed report of past billing attempts with advanced filtering options. This endpoint provides comprehensive data for analytics, troubleshooting, and reporting purposes.
- [Reschedule a billing attempt to a new date](https://developers.appstle.com/subscription-admin-api/billing-&-payments/reschedule-a-billing-attempt-to-a-new-date.md): Changes the scheduled billing date for a billing attempt. This allows customers to adjust when their next order will be processed.
- [Skip a specific order](https://developers.appstle.com/subscription-admin-api/billing-&-payments/skip-a-specific-order.md): Skips a specific billing attempt by ID. The order will not be processed on its scheduled date. This is useful when customers want to skip a particular delivery without canceling their subscription.
- [Skip the next upcoming order for a subscription](https://developers.appstle.com/subscription-admin-api/billing-&-payments/skip-the-next-upcoming-order-for-a-subscription.md): Skips the next scheduled billing attempt for a subscription contract without requiring the billing attempt ID. Automatically finds and skips the earliest QUEUED billing attempt.
- [Get upcoming orders (top orders)](https://developers.appstle.com/subscription-admin-api/billing-&-payments/get-upcoming-orders-top-orders.md): Retrieves upcoming (queued) billing attempts for a subscription contract or customer. Returns the next scheduled orders that have not yet been processed.
- [Unskip a previously skipped order](https://developers.appstle.com/subscription-admin-api/billing-&-payments/unskip-a-previously-skipped-order.md): Reverses a skip action on a billing attempt. The order will be restored to QUEUED status and will be processed on its scheduled date.

#### Subscription Products

- [Add product with custom price to subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/add-product-with-custom-price-to-subscription.md): Adds a new product line item with a custom price override to an existing subscription contract. This endpoint bypasses standard pricing and selling plans to set an exact price.
- [Add product to subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/add-product-to-subscription.md): Adds a new product line item to an existing subscription contract. Can add either recurring products that will appear in each order or one-time products that appear only in the next order.
- [Add multiple products to subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/add-multiple-products-to-subscription.md): Adds multiple product line items to an existing subscription contract in a single request. This batch operation is more efficient than making multiple individual requests and ensures all products are added with consistent processing.
- [Remove product from subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/remove-product-from-subscription.md): Removes a specific product line item from an existing subscription contract. Can optionally retain prorated discounts associated with the removed product.
- [Remove multiple products from subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/remove-multiple-products-from-subscription.md): Removes multiple product line items from an existing subscription contract in a single request. Products are removed sequentially, allowing partial success if errors occur.
- [Update multiple properties of a subscription line item](https://developers.appstle.com/subscription-admin-api/subscription-products/update-multiple-properties-of-a-subscription-line-item.md): Comprehensive endpoint for updating a subscription line item's quantity, price, product variant, and/or selling plan in a single API call. Changes are applied intelligently - only modified values trigger updates.
- [Update product line item price](https://developers.appstle.com/subscription-admin-api/subscription-products/update-product-line-item-price.md): Updates the base price of a specific product line item within a subscription contract. This endpoint intelligently handles pricing updates while preserving existing discount structures.
- [Update line item pricing policy with cycle-based discounts](https://developers.appstle.com/subscription-admin-api/subscription-products/update-line-item-pricing-policy-with-cycle-based-discounts.md): Sets up advanced pricing rules for a subscription line item that change based on the number of successful orders (cycles). This powerful feature enables loyalty discounts, promotional pricing tiers, and subscribe-and-save models.
- [Update product line item quantity in subscription](https://developers.appstle.com/subscription-admin-api/subscription-products/update-product-line-item-quantity-in-subscription.md): Updates the quantity of a specific product line item within a subscription contract. This comprehensive operation handles quantity validation, discount recalculation, and special Build-a-Box constraints.
- [Update selling plan for a subscription line item](https://developers.appstle.com/subscription-admin-api/subscription-products/update-selling-plan-for-a-subscription-line-item.md): Updates the selling plan associated with a specific product line item in a subscription contract. Selling plans define the delivery schedule, pricing rules, and billing policies for subscription products.

#### Subscription One-Time Products

- [Get all one-time products for a subscription contract](https://developers.appstle.com/subscription-admin-api/subscription-one-time-products/get-all-one-time-products-for-a-subscription-contract.md): Retrieves all one-time products (add-ons) associated with a specific subscription contract across all billing attempts. One-time products are additional items that customers can add to their subscription orders on a non-recurring basis. Each one-time product is tied to a specific billing attempt and…
- [Add one-time product to subscription order](https://developers.appstle.com/subscription-admin-api/subscription-one-time-products/add-one-time-product-to-subscription-order.md): **Discontinued.** One-time products are no longer applied to the generated order or cleaned up afterward — this endpoint now always returns 400 and creates nothing. Do not build new integrations against it.
- [Remove one-time product from subscription order](https://developers.appstle.com/subscription-admin-api/subscription-one-time-products/remove-one-time-product-from-subscription-order.md): Removes a previously added one-time product from a specific subscription order. This permanently deletes the one-time product from the specified billing attempt. The operation is idempotent - attempting to delete a non-existent product will succeed without error.
- [Get one-time products for next upcoming order](https://developers.appstle.com/subscription-admin-api/subscription-one-time-products/get-one-time-products-for-next-upcoming-order.md): Retrieves one-time products that will be included in the next scheduled order for a subscription contract. This endpoint specifically returns products associated with the earliest queued billing attempt, making it ideal for showing customers what additional items will be in their next delivery.

#### Subscription Payments

- [Update subscription payment method](https://developers.appstle.com/subscription-admin-api/subscription-payments/update-subscription-payment-method.md): Updates the payment method for an existing subscription contract to use a different existing payment method. The new payment method must already be associated with the customer in Shopify.
- [Send payment method update email to customer](https://developers.appstle.com/subscription-admin-api/subscription-payments/send-payment-method-update-email-to-customer.md): Triggers Shopify to send an email to the subscription customer with a secure link to update their payment method. This endpoint initiates Shopify's native payment update flow without requiring direct payment handling.

#### Subscription Plans

- [Get all subscription groups](https://developers.appstle.com/subscription-admin-api/subscription-plans/get-all-subscription-groups.md): Retrieves a list of all subscription groups (selling plan groups) configured in the store. This endpoint provides a complete overview of all subscription offerings available.
- [Update subscription group details and product assignments](https://developers.appstle.com/subscription-admin-api/subscription-plans/update-subscription-group-details-and-product-assignments.md): Updates an existing subscription group (selling plan group) including its name, selling plans configuration, and optionally manages product/variant assignments. This endpoint provides comprehensive update capabilities for both the subscription group structure and its product associations.
- [Create a new subscription group (selling plan group)](https://developers.appstle.com/subscription-admin-api/subscription-plans/create-a-new-subscription-group-selling-plan-group.md): Creates a new subscription group with one or more selling plans in Shopify. A subscription group is a container for selling plans that can be applied to products and variants. Each group can contain multiple plans with different frequencies, discounts, and delivery schedules.
- [Get all selling plans across all subscription groups](https://developers.appstle.com/subscription-admin-api/subscription-plans/get-all-selling-plans-across-all-subscription-groups.md): Retrieves a flattened list of all selling plans from all subscription groups in the store. This endpoint provides a consolidated view of every subscription plan available, regardless of which group it belongs to.
- [Remove products or variants from ALL subscription groups](https://developers.appstle.com/subscription-admin-api/subscription-plans/remove-products-or-variants-from-all-subscription-groups.md): Removes specified products and/or variants from ALL subscription groups in the store. This is a powerful bulk operation that affects every subscription group simultaneously.
- [Add products or variants to an existing subscription group (async)](https://developers.appstle.com/subscription-admin-api/subscription-plans/add-products-or-variants-to-an-existing-subscription-group-async.md): Same JSON body as the v2 bulk-add-products endpoint, but returns immediately with a 202 and processes the update in the background via an AWS Step Function worker instead of within the HTTP request. Use this for large batches (hundreds to thousands of IDs) that would otherwise risk hitting request/g…
- [Check status of an async add-products job](https://developers.appstle.com/subscription-admin-api/subscription-plans/check-status-of-an-async-add-products-job.md): Polls the status of a bulk add-products job started via POST .../add-products (v3 async endpoint). Only one such job runs per shop at a time; check 'subscriptionGroupId' and 'matchesRequestedGroup' in the response to confirm it's reporting on the group you submitted, in case a newer job for a differ…
- [Get subscription group by ID](https://developers.appstle.com/subscription-admin-api/subscription-plans/get-subscription-group-by-id.md): Retrieves detailed information about a specific subscription group (selling plan group) by its ID. This endpoint provides complete configuration details for a single subscription group.
- [Add products or variants to an existing subscription group](https://developers.appstle.com/subscription-admin-api/subscription-plans/add-products-or-variants-to-an-existing-subscription-group.md): Adds one or more products and/or product variants to an existing subscription group (selling plan group). This endpoint provides a simple way to expand the product catalog eligible for subscription without modifying the group's configuration or existing product assignments.
- [Bulk add products or variants to an existing subscription group](https://developers.appstle.com/subscription-admin-api/subscription-plans/bulk-add-products-or-variants-to-an-existing-subscription-group.md): Adds multiple products and/or product variants to an existing subscription group (selling plan group) using a JSON request body. This endpoint is ideal for adding large numbers of products/variants that would exceed URL length limits in the query parameter version.
- [Remove products or variants from a subscription group](https://developers.appstle.com/subscription-admin-api/subscription-plans/remove-products-or-variants-from-a-subscription-group.md): Removes specified products and/or variants from an existing subscription group (selling plan group). This endpoint allows selective removal of products without affecting the group's configuration or other product assignments.

### Storefront API

#### Billing & Payments

- [Get backup payment recovery opt-in status](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-backup-payment-recovery-opt-in-status.md)
- [Update backup payment recovery opt-in status](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/update-backup-payment-recovery-opt-in-status.md)
- [Update subscription billing attempt](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/update-subscription-billing-attempt.md): Updates an existing subscription billing attempt. This endpoint allows modification of billing attempt details such as billing date, order note, and other attributes.
- [Trigger immediate billing for an order](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/trigger-immediate-billing-for-an-order.md): Immediately processes a billing attempt, creating an order in Shopify. This bypasses the scheduled billing date and processes the order right away.
- [Recover a billing attempt stuck in progress](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/recover-a-billing-attempt-stuck-in-progress.md)
- [Get past orders](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-past-orders.md): Retrieves paginated list of past (processed) billing attempts for a subscription contract or customer. Includes successful orders, failed attempts, and skipped orders.
- [Get past orders report with detailed filtering](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-past-orders-report-with-detailed-filtering.md): Retrieves a detailed report of past billing attempts with advanced filtering options. This endpoint provides comprehensive data for analytics, troubleshooting, and reporting purposes.
- [Process refund for subscription order](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/process-refund-for-subscription-order.md): Processes a refund for a fulfilled subscription order. This creates a refund in Shopify and returns the money to the customer's original payment method.
- [Calculate refund amount preview](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/calculate-refund-amount-preview.md): Calculates the refund amount that would be issued if a specific subscription order fulfillment were refunded. This provides a preview without actually processing the refund.
- [Reschedule a billing attempt to a new date](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/reschedule-a-billing-attempt-to-a-new-date.md): Changes the scheduled billing date for a billing attempt. This allows customers to adjust when their next order will be processed.
- [Retry a failed billing attempt](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/retry-a-failed-billing-attempt.md)
- [Get URL for 3DS / SCA security challenge](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-url-for-3ds-sca-security-challenge.md)
- [Skip a failed billing attempt's order](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/skip-a-failed-billing-attempts-order.md)
- [Skip a specific order](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/skip-a-specific-order.md): Skips a specific billing attempt by ID. The order will not be processed on its scheduled date. This is useful when customers want to skip a particular delivery without canceling their subscription.
- [Skip the next upcoming order for a subscription](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/skip-the-next-upcoming-order-for-a-subscription.md): Skips the next scheduled billing attempt for a subscription contract without requiring the billing attempt ID. Automatically finds and skips the earliest QUEUED billing attempt.
- [Get upcoming orders (top orders)](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-upcoming-orders-top-orders.md): Retrieves upcoming (queued) billing attempts for a subscription contract or customer. Returns the next scheduled orders that have not yet been processed.
- [Unskip a previously skipped order](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/unskip-a-previously-skipped-order.md): Reverses a skip action on a billing attempt. The order will be restored to QUEUED status and will be processed on its scheduled date.
- [Get subscription payment info for a contract](https://developers.appstle.com/subscription-storefront-api/billing-&-payments/get-subscription-payment-info-for-a-contract.md)

#### Product Catalog

- [List discount rules applicable to bundles](https://developers.appstle.com/subscription-storefront-api/product-catalog/list-discount-rules-applicable-to-bundles.md)
- [Get variant data for a list of variant IDs](https://developers.appstle.com/subscription-storefront-api/product-catalog/get-variant-data-for-a-list-of-variant-ids.md)
- [Get product swap variant groups for a contract](https://developers.appstle.com/subscription-storefront-api/product-catalog/get-product-swap-variant-groups-for-a-contract.md): Retrieves product swap variant groups for the next 10 billing cycles of a specific subscription contract. This endpoint calculates and returns which products will be swapped to in future billing cycles based on configured swap automations.
- [Proxy a Shopify Storefront GraphQL request from the customer portal](https://developers.appstle.com/subscription-storefront-api/product-catalog/proxy-a-shopify-storefront-graphql-request-from-the-customer-portal.md)

#### Campaigns

- [List applicable customer portal campaigns](https://developers.appstle.com/subscription-storefront-api/campaigns/list-applicable-customer-portal-campaigns.md)
- [List applicable customer portal campaigns for multiple contracts in one call](https://developers.appstle.com/subscription-storefront-api/campaigns/list-applicable-customer-portal-campaigns-for-multiple-contracts-in-one-call.md)
- [Get campaign landing details](https://developers.appstle.com/subscription-storefront-api/campaigns/get-campaign-landing-details.md)
- [Redeem a campaign offer](https://developers.appstle.com/subscription-storefront-api/campaigns/redeem-a-campaign-offer.md)
- [Track a campaign banner event](https://developers.appstle.com/subscription-storefront-api/campaigns/track-a-campaign-banner-event.md)

#### cancellation-flow-customer-portal-resource

- [Get subscriptionscpapicancellation flowspublished](https://developers.appstle.com/subscription-storefront-api/cancellation-flow-customer-portal-resource/get-subscriptionscpapicancellation-flowspublished.md)

#### Customer Retention

- [Get cancellation management configuration](https://developers.appstle.com/subscription-storefront-api/customer-retention/get-cancellation-management-configuration.md)
- [Record a customer retention activity](https://developers.appstle.com/subscription-storefront-api/customer-retention/record-a-customer-retention-activity.md)
- [Get subscriptionscpapicustomer retention activitieslatest discount usage](https://developers.appstle.com/subscription-storefront-api/customer-retention/get-subscriptionscpapicustomer-retention-activitieslatest-discount-usage.md)
- [Get win-back offer landing details](https://developers.appstle.com/subscription-storefront-api/customer-retention/get-win-back-offer-landing-details.md)
- [Reactivate a subscription from a win-back offer](https://developers.appstle.com/subscription-storefront-api/customer-retention/reactivate-a-subscription-from-a-win-back-offer.md)

#### Subscription Contracts

- [Execute a configured cancellation retention offer and record the retention activity](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/execute-a-configured-cancellation-retention-offer-and-record-the-retention-activity.md)
- [Get currently logged-in customer ID](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-currently-logged-in-customer-id.md): Returns the customer ID of the currently authenticated customer from their Shopify session. This endpoint is used by the customer portal UI to identify which customer is logged in.
- [Skip or unskip a product line item for next order](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/skip-or-unskip-a-product-line-item-for-next-order.md)
- [Update subscription contract details](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-subscription-contract-details.md)
- [Get current billing cycle for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-current-billing-cycle-for-a-subscription-contract.md)
- [Get order note for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-order-note-for-a-subscription-contract.md)
- [Merge an existing contract into another](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/merge-an-existing-contract-into-another.md)
- [Replace contract variants in bulk (v2)](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/replace-contract-variants-in-bulk-v2.md)
- [Get current customer's saved Shopify payment methods](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-current-customers-saved-shopify-payment-methods.md)
- [Reschedule a planned subscription fulfillment](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/reschedule-a-planned-subscription-fulfillment.md)
- [List Shopify fulfillments for a specific order](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/list-shopify-fulfillments-for-a-specific-order.md)
- [List Shopify fulfillments for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/list-shopify-fulfillments-for-a-subscription-contract.md)
- [Swap a product within a Build-a-Box subscription](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/swap-a-product-within-a-build-a-box-subscription.md)
- [Get subscription contract as a flattened map](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-subscription-contract-as-a-flattened-map.md)
- [Apply a discount code to a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/apply-a-discount-code-to-a-subscription-contract.md)
- [Apply a cancellation-flow discount to a contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/apply-a-cancellation-flow-discount-to-a-contract.md)
- [Edit custom attributes on a single line item](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/edit-custom-attributes-on-a-single-line-item.md)
- [Email customer portal magic link to subscriber](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/email-customer-portal-magic-link-to-subscriber.md)
- [Read freeze (skip-billing) status of a contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/read-freeze-skip-billing-status-of-a-contract.md)
- [Read freeze (skip-billing) status of a contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/read-freeze-skip-billing-status-of-a-contract-1.md)
- [Check whether anchor day overwrite is enabled](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/check-whether-anchor-day-overwrite-is-enabled.md)
- [Update product-level custom attributes on a contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-product-level-custom-attributes-on-a-contract.md)
- [Remove a discount from a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/remove-a-discount-from-a-subscription-contract.md)
- [Remove a line item from a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/remove-a-line-item-from-a-subscription-contract.md)
- [Update next billing date for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-next-billing-date-for-a-subscription-contract.md): Reschedules the next billing date for an active subscription contract. This endpoint allows you to change when the next order will be created and processed.
- [Update billing interval for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-billing-interval-for-a-subscription-contract.md): Updates the billing frequency (how often the customer is charged) for a subscription contract. This comprehensive operation recalculates billing dates, adjusts pricing, updates selling plans, and may also modify delivery intervals.
- [Update delivery method on a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-delivery-method-on-a-subscription-contract.md)
- [Set existing Shopify payment method on contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/set-existing-shopify-payment-method-on-contract.md)
- [Change contract frequency by selecting a compatible selling-plan frequency](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/change-contract-frequency-by-selecting-a-compatible-selling-plan-frequency.md)
- [Change contract frequency by selecting a new selling plan](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/change-contract-frequency-by-selecting-a-new-selling-plan.md)
- [Update custom attributes on contract line items](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-custom-attributes-on-contract-line-items.md)
- [Update line item quantity on a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-line-item-quantity-on-a-subscription-contract.md)
- [Update order note on a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-order-note-on-a-subscription-contract.md)
- [Trigger payment method re-collection email](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/trigger-payment-method-re-collection-email.md)
- [Get raw Shopify subscription contracts for multiple contracts in one call](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-raw-shopify-subscription-contracts-for-multiple-contracts-in-one-call.md)
- [Get raw Shopify subscription contract (external view)](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-raw-shopify-subscription-contract-external-view.md)
- [Get raw Shopify subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-raw-shopify-subscription-contract.md)
- [Sync shipping price on contract from delivery profile](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/sync-shipping-price-on-contract-from-delivery-profile.md)
- [Cancel and delete a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/cancel-and-delete-a-subscription-contract.md)
- [Get current customer's subscription profile](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-current-customers-subscription-profile.md)
- [Get valid subscription contracts for a customer](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/get-valid-subscription-contracts-for-a-customer.md)
- [List a customer's valid subscription contract IDs](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/list-a-customers-valid-subscription-contract-ids.md)
- [Update line item quantities for a classic Build-a-Box subscription](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-line-item-quantities-for-a-classic-build-a-box-subscription.md)
- [Update subscription contract order note](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/update-subscription-contract-order-note.md)
- [Add a fixed pricing bundle line item, with its child products, to a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/add-a-fixed-pricing-bundle-line-item-with-its-child-products-to-a-subscription-contract.md)
- [Add a line item to a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/add-a-line-item-to-a-subscription-contract.md)
- [Add a line item to a specific section of a contract](https://developers.appstle.com/subscription-storefront-api/subscription-contracts/add-a-line-item-to-a-specific-section-of-a-contract.md)

#### Customer Portal

- [Proxy GraphQL queries to Shopify Customer Account API](https://developers.appstle.com/subscription-storefront-api/customer-portal/proxy-graphql-queries-to-shopify-customer-account-api.md): Executes GraphQL queries against Shopify's Customer Account API on behalf of the authenticated customer. This endpoint handles token management, refresh, and authentication automatically.
- [Initiate Customer Account API OAuth flow](https://developers.appstle.com/subscription-storefront-api/customer-portal/initiate-customer-account-api-oauth-flow.md): Initiates the OAuth 2.0 authorization flow for Shopify's Customer Account API. This endpoint is used when a customer wants to grant the subscription app access to their Shopify customer account data.
- [Logout from Customer Account API](https://developers.appstle.com/subscription-storefront-api/customer-portal/logout-from-customer-account-api.md): Logs out the customer from the Customer Account API session. This can be initiated either by the customer clicking logout in the customer portal, or by Shopify's end session callback.
- [Handle OAuth callback from Shopify](https://developers.appstle.com/subscription-storefront-api/customer-portal/handle-oauth-callback-from-shopify.md): OAuth 2.0 callback endpoint that receives the authorization code from Shopify after customer authorization. This endpoint is called automatically by Shopify after the customer authorizes the app.
- [Check Customer Account API authentication status](https://developers.appstle.com/subscription-storefront-api/customer-portal/check-customer-account-api-authentication-status.md): Checks whether the current customer has valid Customer Account API tokens stored. Used by the customer portal to determine if the customer needs to authenticate.
- [Get shop info for the currently signed-in shop](https://developers.appstle.com/subscription-storefront-api/customer-portal/get-shop-info-for-the-currently-signed-in-shop.md)

#### Customization

- [Get customer portal settings](https://developers.appstle.com/subscription-storefront-api/customization/get-customer-portal-settings.md): Retrieves the customer portal configuration and settings for the authenticated shop. The customer portal is the self-service interface where subscribers can manage their subscriptions, update payment methods, modify delivery addresses, and more.
- [Get customer portal label translations for locale](https://developers.appstle.com/subscription-storefront-api/customization/get-customer-portal-label-translations-for-locale.md)
- [Get shop customization CSS by category](https://developers.appstle.com/subscription-storefront-api/customization/get-shop-customization-css-by-category.md)
- [Get custom CSS for customer portal](https://developers.appstle.com/subscription-storefront-api/customization/get-custom-css-for-customer-portal.md): Retrieves the custom CSS styling configuration for the customer portal. This endpoint returns all custom CSS rules that have been configured to customize the appearance, layout, and branding of the subscription customer portal.
- [Get widget label translations for locale](https://developers.appstle.com/subscription-storefront-api/customization/get-widget-label-translations-for-locale.md)

#### Subscription Data

- [Get delivery options for subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-delivery-options-for-subscription-contract.md): Retrieves all valid delivery methods available for a specific subscription contract. Returns shipping profiles and delivery options based on the contract's delivery address and product characteristics.
- [List live carrier-quoted shipping rates for a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-live-carrier-quoted-shipping-rates-for-a-subscription-contract.md)
- [Get single product data by ID](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-single-product-data-by-id.md): Retrieves detailed information for a specific product by its Shopify product ID. Returns complete product details including all variants, images, and selling plan associations.
- [List product handles for the shop](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-product-handles-for-the-shop.md)
- [Get products data with pagination](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-products-data-with-pagination.md): Retrieves paginated product catalog data from Shopify, optionally filtered by search term, selling plans, or subscription contracts. This endpoint provides access to your store's product catalog with subscription-specific information.
- [Get selling plans for products](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-selling-plans-for-products.md): Retrieves all selling plans (subscription plans) associated with a set of products. This endpoint is useful for determining which subscription options are available for specific products.
- [Search subscription-enabled products with pagination](https://developers.appstle.com/subscription-storefront-api/subscription-data/search-subscription-enabled-products-with-pagination.md)
- [List subscription products filtered by selling plans](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-subscription-products-filtered-by-selling-plans.md)
- [List delivery options available for the shop](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-delivery-options-available-for-the-shop.md)
- [List subscription products available to the customer](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-subscription-products-available-to-the-customer.md)
- [Get compatible selling-plan frequencies](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-compatible-selling-plan-frequencies.md): Get compatible selling-plan frequency options for a subscription contract
- [List products with their selling plans (v2)](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-products-with-their-selling-plans-v2.md)
- [Get variant contextual pricing](https://developers.appstle.com/subscription-storefront-api/subscription-data/get-variant-contextual-pricing.md): Retrieves contextual pricing information for a product variant based on currency and country. This endpoint provides localized pricing data for international subscriptions and multi-currency support.
- [List saved addresses for the current customer](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-saved-addresses-for-the-current-customer.md)
- [List supported shipping countries](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-supported-shipping-countries.md)
- [List enabled presentment currencies for the shop](https://developers.appstle.com/subscription-storefront-api/subscription-data/list-enabled-presentment-currencies-for-the-shop.md)

#### Delivery & Shipping

- [List delivery profile locations](https://developers.appstle.com/subscription-storefront-api/delivery-&-shipping/list-delivery-profile-locations.md)
- [Get a page of order events (paginated)](https://developers.appstle.com/subscription-storefront-api/delivery-&-shipping/get-a-page-of-order-events-paginated.md)
- [Get the live fulfillment status for an order](https://developers.appstle.com/subscription-storefront-api/delivery-&-shipping/get-the-live-fulfillment-status-for-an-order.md)

#### Loyalty Integration

- [Get customer loyalty points and rewards data](https://developers.appstle.com/subscription-storefront-api/loyalty-integration/get-customer-loyalty-points-and-rewards-data.md): Retrieves the loyalty/rewards program data for the currently logged-in customer. This includes points balance, tier status, and available rewards.
- [Get available ways to earn loyalty points](https://developers.appstle.com/subscription-storefront-api/loyalty-integration/get-available-ways-to-earn-loyalty-points.md): Returns all active point earning campaigns and rules that the customer can participate in. This shows customers how they can earn more points.
- [Redeem loyalty points for a reward](https://developers.appstle.com/subscription-storefront-api/loyalty-integration/redeem-loyalty-points-for-a-reward.md): Allows a customer to redeem their loyalty points for a specific reward option. This deducts points from their balance and generates a discount code or applies the reward.
- [Get available loyalty point redemption options](https://developers.appstle.com/subscription-storefront-api/loyalty-integration/get-available-loyalty-point-redemption-options.md): Returns all available rewards that the customer can redeem their loyalty points for. This shows customers what they can spend their points on.

#### Store Pickup

- [List eligible pickup dates](https://developers.appstle.com/subscription-storefront-api/store-pickup/list-eligible-pickup-dates.md)
- [Get the first eligible pickup date](https://developers.appstle.com/subscription-storefront-api/store-pickup/get-the-first-eligible-pickup-date.md)
- [List eligible pickup times for a date](https://developers.appstle.com/subscription-storefront-api/store-pickup/list-eligible-pickup-times-for-a-date.md)
- [List eligible pickup times for a date](https://developers.appstle.com/subscription-storefront-api/store-pickup/list-eligible-pickup-times-for-a-date-1.md)
- [List available pickup locations](https://developers.appstle.com/subscription-storefront-api/store-pickup/list-available-pickup-locations.md)
- [Update pickup and delivery details on a subscription contract](https://developers.appstle.com/subscription-storefront-api/store-pickup/update-pickup-and-delivery-details-on-a-subscription-contract.md)

#### Subscription Actions

- [Execute a server-authoritative next-order delay](https://developers.appstle.com/subscription-storefront-api/subscription-actions/execute-a-server-authoritative-next-order-delay.md): Re-reads the recorded billing attempt, recomputes delayDays 7 or 14 in the shop IANA timezone, re-runs every eligibility guard, and returns a typed outcome. The client never supplies an authoritative target date.
- [Preview a server-authoritative next-order delay](https://developers.appstle.com/subscription-storefront-api/subscription-actions/preview-a-server-authoritative-next-order-delay.md): Accepts contractId, optional billingAttemptId, and delayDays 7 or 14. Returns shop-local current and target dates without mutating. reasonCode is one of the SubscriptionActionReasonCode enum values.

#### Build-a-Box & Bundles

- [Get subscription bundle settings by ID](https://developers.appstle.com/subscription-storefront-api/build-a-box-&-bundles/get-subscription-bundle-settings-by-id.md)
- [Get a subscription bundling configuration by token](https://developers.appstle.com/subscription-storefront-api/build-a-box-&-bundles/get-a-subscription-bundling-configuration-by-token.md)
- [List single-product Build-a-Box bundlings for the shop](https://developers.appstle.com/subscription-storefront-api/build-a-box-&-bundles/list-single-product-build-a-box-bundlings-for-the-shop.md)
- [Get public Build-a-Box bundle details by handle (v3)](https://developers.appstle.com/subscription-storefront-api/build-a-box-&-bundles/get-public-build-a-box-bundle-details-by-handle-v3.md)

#### Subscription Management

- [Replace product variants in a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-management/replace-product-variants-in-a-subscription-contract.md): Replaces existing product variants with new ones in a subscription contract. This endpoint supports both regular subscription products and one-time products, allowing you to swap products, update quantities, and manage the product mix in a subscription.
- [Split or duplicate an existing subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-management/split-or-duplicate-an-existing-subscription-contract.md): Creates a new subscription contract by either splitting (moving) or duplicating selected line items from an existing contract. This endpoint allows you to divide a subscription into multiple contracts or create a copy with specific products.
- [Update subscription delivery address and method](https://developers.appstle.com/subscription-storefront-api/subscription-management/update-subscription-delivery-address-and-method.md): Updates the shipping address or delivery method for a subscription contract. Supports standard shipping, local delivery, and pickup options with comprehensive address validation.
- [Update subscription contract status](https://developers.appstle.com/subscription-storefront-api/subscription-management/update-subscription-contract-status.md): Updates the status of a subscription contract to ACTIVE, PAUSED, or CANCELLED. This endpoint manages the lifecycle of subscriptions with automatic state tracking and notifications.
- [Update custom attributes on a subscription contract](https://developers.appstle.com/subscription-storefront-api/subscription-management/update-custom-attributes-on-a-subscription-contract.md): Updates or replaces custom key-value attributes on a subscription contract. These attributes are stored with the subscription and can be used to track custom data, preferences, or metadata that's important for your business processes.

#### Subscription One-Time Products

- [List one-time add-on products for a contract](https://developers.appstle.com/subscription-storefront-api/subscription-one-time-products/list-one-time-add-on-products-for-a-contract.md)
- [Save a one-time add-on for a billing attempt](https://developers.appstle.com/subscription-storefront-api/subscription-one-time-products/save-a-one-time-add-on-for-a-billing-attempt.md): Discontinued — one-time products are no longer applied to the generated order. This endpoint now always returns 400.
- [Delete a one-time add-on from a billing attempt](https://developers.appstle.com/subscription-storefront-api/subscription-one-time-products/delete-a-one-time-add-on-from-a-billing-attempt.md)
- [Update quantity of a one-time add-on](https://developers.appstle.com/subscription-storefront-api/subscription-one-time-products/update-quantity-of-a-one-time-add-on.md)
- [Get one-time add-ons for the next upcoming order](https://developers.appstle.com/subscription-storefront-api/subscription-one-time-products/get-one-time-add-ons-for-the-next-upcoming-order.md)

#### Subscription Plans

- [List all selling plans available to the customer](https://developers.appstle.com/subscription-storefront-api/subscription-plans/list-all-selling-plans-available-to-the-customer.md)

#### upcoming-order-reward-resource

- [Get subscriptionscpapiupcoming order rewards](https://developers.appstle.com/subscription-storefront-api/upcoming-order-reward-resource/get-subscriptionscpapiupcoming-order-rewards.md)

### Resources

- [Appstle Subscriptions frequently asked questions](https://developers.appstle.com/subscription/faq.md): Answers to common questions about widget customization, detecting subscription orders, customer portal setup, API authentication, and data privacy.

## OpenAPI Specs

- [admin-api-swagger](/subscription/admin-api-swagger.json)
- [storefront-api-swagger](/subscription/storefront-api-swagger.json)
