After a prepaid subscription has been billed for, the merchant or customer might want to make changes to the subscription contract or order. For example, they might want to reschedule a shipment or refund one of the scheduled fulfillments.
This guide shows how to manage and make changes to scheduled fulfillments for prepaid subscriptions.
## 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 `merchant_managed_fulfillment_orders` and `third_party_fulfillment_orders` [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're familiar with [how prepaid subscriptions work](/docs/apps/build/purchase-options/subscriptions/fulfillments).
- You have a prepaid subscription order that has scheduled fulfillment orders.
## Manually open a fulfillment order
Merchants can opt to **Fulfill early** for scheduled fulfillments in the Shopify admin. For scheduled fulfillment orders, this changes the fulfillment order's status to `OPEN` ahead of the `fulfillAt` date.
You can also use the [`fulfillmentOrderOpen`](/docs/api/admin-graphql/latest/mutations/fulfillmentorderopen) mutation to set a fulfillment order's status to `OPEN`, as demonstrated in the following example:
## Skip a fulfillment order
A customer might want to skip a scheduled fulfillment of a product. For example, in the case of a three-month prepaid coffee subscription, a customer might decide to skip fulfillment because they already have enough coffee that month.
To skip a fulfillment order, you need to reschedule the fulfillment order and change the subscription contract's renewal date if applicable.
### Reschedule a fulfillment order
Pass a new `fulfillAt` date to the [`fulfillmentOrderReschedule`](/docs/api/admin-graphql/latest/mutations/fulfillmentorderreschedule) mutation to reschedule a fulfillment order. In this example, the fulfillment order is rescheduled from Feb 15 to Apr 15.
### Change the contract renewal date
To change the contract renewal date, you can use the [`subscriptionContractSetNextBillingDate`](/docs/api/admin-graphql/latest/mutations/subscriptioncontractsetnextbillingdate) mutation. Because the previous example rescheduled a fulfillment order from Feb 15 to Apr 15, the renewal date is changed to May 15 for the following example:
## Refund a scheduled fulfillment
> Caution:
> When you refund fulfillment orders, it doesn't automatically cancel the renewal that's associated with the subscription contract. To cancel the renewal, you also need to [update the subscription contract](/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract).
A customer might want to refund one or more of their scheduled fulfillments. Fulfillment order cancellations and refunds are processed [in reverse chronological order](/docs/apps/build/purchase-options/subscriptions/fulfillments#how-refunds-work). You can pass the `quantity` to the [`refundCreate`](/docs/api/admin-graphql/latest/mutations/refundcreate) mutation to determine how many subscription cycles should be cancelled.
The following example cancels the last four months of a six-month prepaid subscription:
## Next steps
- Learn how to [manage orders for prepaid subscriptions](/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions) by keeping subscription contract and order information in sync.