Billing cycle contracts inherit the contract lines, pricing policy, and delivery policy from the billing cycle's source subscription contract. However, you might want to edit the contract information on a billing cycle when you need to make a temporary change to a customer's subscription contract. For example, you might remove a product that's out of stock and replace it with a similar product for a single billing cycle. This tutorial shows you how to edit the contract information on a billing cycle. ## What you'll learn In this tutorial, you'll learn how to do the following tasks: - Retrieve a draft of the most up-to-date contract information for a subscription billing cycle - Remove a line item from the contract draft - Add a line item to the contract draft - Commit the edited contract information - Fetch the edited contract information on a subscription billing cycle - Create an order for a subscription billing cycle ## Requirements > Note: > > - Most subscriptions, pre-order and try before you buy apps need to request API access through the [Partner Dashboard](/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant#ask-for-permission). We give API access to apps that are designed according to our [principles for subscriptions, pre-order and TBYB apps] (/docs/apps/selling-strategies/purchase-options#shopifys-principles). > - Public apps that use subscriptions, pre-order or TBYB need to meet [specific requirements](/docs/apps/launch/app-requirements-checklist#purchase-option-apps) to be published on the Shopify App Store. > - Custom apps [created in the Shopify admin](/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin) can't use subscriptions, pre-order or TBYB because these apps can't use extensions or request access to protected scopes. If you're building a solution for a single store, then build your custom app in the Partner Dashboard. - Your app can make [authenticated requests](/docs/api/admin-graphql#authentication) to the GraphQL Admin API. - Your app has the `read_own_subscription_contracts` and `write_own_subscription_contracts` [access scopes](/docs/api/usage/access-scopes). Learn how to [configure your access scopes using Shopify CLI](/docs/apps/build/cli-for-apps/app-configuration). - You've created [products](/docs/api/admin-graphql/latest/mutations/productcreate) and [product variants](/docs/api/admin-graphql/latest/mutations/productvariantcreate) in your development store. - You've created an active [subscription contract](/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract) with a recurring billing and delivery policy. - You've familiarized yourself with the concept of [billing cycles](/docs/apps/build/purchase-options/subscriptions/billing-cycles). ## Step 1: Create a subscription draft You can use the [`subscriptionBillingCycleContractEdit`](/docs/api/admin-graphql/latest/mutations/subscriptionbillingcyclecontractedit) mutation to create a subscription draft with the most up-to-date contract information on a specified billing cycle. Pass the contract ID and either the index or a date belonging to the billing cycle to specify the billing cycle. Make note of the subscription contract draft ID and line ID in the response. You'll use it to update the draft data in [the next step](#step-2-update-the-subscription-draft).