Contents

Extend a Subscription Renewal Date

Extends the renewal date of a customer’s active subscription using the original transaction identifier.

URL

PUT https://api.storekit.apple.com/inApps/v1/subscriptions/extend/{originalTransactionId}

Sandbox URL

PUT https://api.storekit-sandbox.apple.com/inApps/v1/subscriptions/extend/{originalTransactionId}

Path Parameters

NameTypeDescription
originalTransactionId RequiredoriginalTransactionId

The original transaction identifier of the subscription receiving a renewal date extension.

Response Codes

StatusReasonTypeDescription
200OK
Content-Type: application/json
ExtendRenewalDateResponse

Request succeeded.

400Bad Request
Content-Type: application/json
(InvalidOriginalTransactionIdError | InvalidExtendByDaysError | InvalidExtendReasonCodeError | InvalidRequestIdentifierError)

The request is invalid and can’t be accepted.

401Unauthorized

The JSON Web Token (JWT) in the authorization header is invalid. For more information, see Generating JSON Web Tokens for API requests.

403Forbidden
Content-Type: application/json
(SubscriptionExtensionIneligibleError | SubscriptionMaxExtensionError | FamilySharedSubscriptionExtensionIneligibleError)

The request is invalid and can’t be accepted.

404Not Found
Content-Type: application/json
OriginalTransactionIdNotFoundError

The request is invalid and can’t be accepted.

429
Content-Type: application/json
RateLimitExceededError

The request exceeded the rate limit.

500Internal Server Error
Content-Type: application/json
(GeneralInternalError | GeneralInternalRetryableError)

The request failed. This may be due to a temporary outage. Check the specific error message for further information.

Mentioned in

Discussion

Use this endpoint to compensate your customers for temporary service outages, canceled events, or interruptions to live streamed events by extending the renewal date of their paid, active subscription. This endpoint acts on a single subscription for a transaction identifier that you specify.

To call this endpoint, provide the original transaction identifier of the subscription that experienced the service interruption. In the request body, ExtendRenewalDateRequest, provide the extension duration, the reason code for the extension, and a unique requestIdentifier for each extension request.

When this endpoint extends eligible purchased subscriptions that support Family Sharing, it automatically extends the family members’ subscriptions as well. However, the endpoint doesn’t support requests to extend a family member’s subscription directly.

A successful response with an HTTP 200 status code contains the ExtendRenewalDateResponse object. The response object includes the same unique request identifier you provide in the request, and information you need to determine whether the extension succeeds. For successful extensions, the new subscription expiration date is the effectiveDate. All status codes other than HTTP 200 indicate that the request failed.

After a successful renewal date extension, Apple sends an email to notify the customer of their updated subscription renewal date.

For more information about this and related endpoints, including subscription eligibility, see Extending the renewal date for auto-renewable subscriptions.

HTTP Body

The request body containing subscription-renewal-extension data.

See Also

Subscription-renewal-date extension