<!--
{
  "documentType" : "article",
  "framework" : "AppStoreServerAPI",
  "identifier" : "/documentation/AppStoreServerAPI/app-store-server-api-changelog",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "App Store Server API changelog"
}
-->

# App Store Server API changelog

Learn about new features and updates in the App Store Server API.

## Discussion

Use this changelog to learn about feature updates, deprecations, and removals for the App Store Server API.

### Server update  — 2026/05/05

Updated recommended domain from `api.storekit.itunes.apple.com` to `api.storekit.apple.com`, and `api.storekit-sandbox.itunes.apple.com` to `api.storekit-sandbox.apple.com`. The previous domains will continue to be supported.

### 1.21 - 2026/04/27

**New features**

- Added the following fields in [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload) to support monthly subscriptions with a 12-month commitment: [`TransactionCommitmentInfo`](/documentation/AppStoreServerAPI/TransactionCommitmentInfo) and [`billingPlanType`](/documentation/AppStoreServerAPI/billingPlanType); and the following fields in [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload):   [`RenewalCommitmentInfo`](/documentation/AppStoreServerAPI/RenewalCommitmentInfo) and [`renewalBillingPlanType`](/documentation/AppStoreServerAPI/renewalBillingPlanType).

### 1.20 - 2026/04/13

**New features**

- Added the [`Finish Transaction`](/documentation/AppStoreServerAPI/Finish-Transaction) endpoint.
- Defined a new type, [`anyTransactionId`](/documentation/AppStoreServerAPI/anyTransactionId). The endpoints that previously used the [`transactionId`](/documentation/AppStoreServerAPI/transactionId) type now use [`anyTransactionId`](/documentation/AppStoreServerAPI/anyTransactionId), but the functionality is unchanged.

### 1.19 - 2025/12/10

**New features**

- Added the [`Send Consumption Information`](/documentation/AppStoreServerAPI/Send-Consumption-Information) endpoint.
- Added the [`revocationType`](/documentation/AppStoreServerAPI/revocationType) and [`revocationPercentage`](/documentation/AppStoreServerAPI/revocationPercentage) fields to the [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload).
- Added the [`advancedCommercePriceIncreaseInfo`](/documentation/AppStoreServerAPI/advancedCommercePriceIncreaseInfo) object, and [`advancedCommercePriceIncreaseInfoDependentSKU`](/documentation/AppStoreServerAPI/advancedCommercePriceIncreaseInfoDependentSKU), [`advancedCommercePriceIncreaseInfoStatus`](/documentation/AppStoreServerAPI/advancedCommercePriceIncreaseInfoStatus), [`advancedCommercePriceIncreaseInfoPrice`](/documentation/AppStoreServerAPI/advancedCommercePriceIncreaseInfoPrice), fields to the [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload).
- Use the new [`Send Consumption Information`](/documentation/AppStoreServerAPI/Send-Consumption-Information) endpoint for App Store In-App Purchases that don’t use the Advanced Commerce API.

### 1.18 - 2025/10/29

**New features**

- Added the `ONE_TIME` value to [`offerDiscountType`](/documentation/AppStoreServerAPI/offerDiscountType) to indicate In-App Purchase offer codes.

### 1.17 - 2025/10/16

**New features**

- Added the [`Get App Transaction Info`](/documentation/AppStoreServerAPI/Get-App-Transaction-Info) endpoint and [`AppTransactionInfoResponse`](/documentation/AppStoreServerAPI/AppTransactionInfoResponse) response object.

### 1.16 - 2025/06/09

**New features**

- Added the [`Set App Account Token`](/documentation/AppStoreServerAPI/Set-App-Account-Token) endpoint and [`UpdateAppAccountTokenRequest`](/documentation/AppStoreServerAPI/UpdateAppAccountTokenRequest) request object, and related error codes:  [`TransactionIdIsNotOriginalTransactionIdError`](/documentation/AppStoreServerAPI/TransactionIdIsNotOriginalTransactionIdError), [`FamilyTransactionNotSupportedError`](/documentation/AppStoreServerAPI/FamilyTransactionNotSupportedError), and [`InvalidAppAccountTokenUUIDError`](/documentation/AppStoreServerAPI/InvalidAppAccountTokenUUIDError).

### 1.15 - 2025/02/21

**New features**

- Updated the [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) and [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload) to include the new [`appTransactionId`](/documentation/AppStoreServerAPI/appTransactionId) and [`offerPeriod`](/documentation/AppStoreServerAPI/offerPeriod) fields.
- Updated the [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) to include the [`appAccountToken`](/documentation/AppStoreServerAPI/appAccountToken) field.
- Added the [`AppTransactionIdNotSupportedError`](/documentation/AppStoreServerAPI/AppTransactionIdNotSupportedError) error object.

### 1.14 - 2025/01/17

**New features**

- Added support for <doc://com.apple.documentation/documentation/AdvancedCommerceAPI>.

### 1.13 — 2024/07/08

**New features**

- Updated the [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) to include the new [`eligibleWinBackOfferIds`](/documentation/AppStoreServerAPI/eligibleWinBackOfferIds) field.
- Added the win-back offer type in [`offerType`](/documentation/AppStoreServerAPI/offerType).

### 1.12 — 2024/06/10

**New features**

- Added the endpoint [`Get Transaction History`](/documentation/AppStoreServerAPI/Get-Transaction-History), which provides transaction history for all In-App Purchases, including consumable In-App Purchases in a finished state.
- Added the fields [`renewalPrice`](/documentation/AppStoreServerAPI/renewalPrice), [`currency`](/documentation/AppStoreServerAPI/currency) and [`offerDiscountType`](/documentation/AppStoreServerAPI/offerDiscountType) to the [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload).

**Deprecations**

- The [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1) endpoint is deprecated. Use the new [`Get Transaction History`](/documentation/AppStoreServerAPI/Get-Transaction-History) endpoint instead.

### 1.11  — 2024/04/11

New features

- Added the [`refundPreferenceV1`](/documentation/AppStoreServerAPI/refundPreferenceV1) field to the  [`ConsumptionRequestV1`](/documentation/AppStoreServerAPI/ConsumptionRequestV1) request body.
- [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1) added  support for receiving information for auto-renewable subscriptions.
- Added the [`InvalidTransactionTypeNotSupportedError`](/documentation/AppStoreServerAPI/InvalidTransactionTypeNotSupportedError) error object.

**Deprecations**

- The system no longer sends the [`InvalidTransactionNotConsumableError`](/documentation/AppStoreServerAPI/InvalidTransactionNotConsumableError) error object. It uses [`InvalidTransactionTypeNotSupportedError`](/documentation/AppStoreServerAPI/InvalidTransactionTypeNotSupportedError) instead.

### 1.10.1  — 2024/03/12

- The type of the <doc://com.apple.documentation/documentation/AppStoreServerNotifications/price> field changed from `int32` to `int64`.

### Server update  — 2024/02/29

**New features**

- The [`Get Notification History`](/documentation/AppStoreServerAPI/Get-Notification-History) endpoint adds support for the new notification type for unreported external purchase tokens.

### 1.10 — 2023/10/26

New features

- Added the following new properties in the decoded transaction payload [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload): [`price`](/documentation/AppStoreServerAPI/price), [`currency`](/documentation/AppStoreServerAPI/currency), and [`offerDiscountType`](/documentation/AppStoreServerAPI/offerDiscountType).

### 1.9 — 2023/09/27

New features

- Updated the error format of the [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1) endpoint to match that of other endpoints. The endpoint now returns a JSON body that can contain an error code.
- New error codes for the [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1) endpoint include: [`InvalidAccountTenureError`](/documentation/AppStoreServerAPI/InvalidAccountTenureError), [`InvalidAppAccountTokenError`](/documentation/AppStoreServerAPI/InvalidAppAccountTokenError), [`InvalidConsumptionStatusError`](/documentation/AppStoreServerAPI/InvalidConsumptionStatusError), [`InvalidCustomerConsentedError`](/documentation/AppStoreServerAPI/InvalidCustomerConsentedError), [`InvalidDeliveryStatusError`](/documentation/AppStoreServerAPI/InvalidDeliveryStatusError), [`InvalidLifetimeDollarsPurchasedError`](/documentation/AppStoreServerAPI/InvalidLifetimeDollarsPurchasedError), [`InvalidLifetimeDollarsRefundedError`](/documentation/AppStoreServerAPI/InvalidLifetimeDollarsRefundedError), [`InvalidPlatformError`](/documentation/AppStoreServerAPI/InvalidPlatformError), [`InvalidPlayTimeError`](/documentation/AppStoreServerAPI/InvalidPlayTimeError), [`InvalidSampleContentProvidedError`](/documentation/AppStoreServerAPI/InvalidSampleContentProvidedError), [`InvalidTransactionNotConsumableError`](/documentation/AppStoreServerAPI/InvalidTransactionNotConsumableError), [`InvalidUserStatusError`](/documentation/AppStoreServerAPI/InvalidUserStatusError).

### 1.8 — 2023/06/05

New features

- Added a new endpoint [`Get Transaction Info`](/documentation/AppStoreServerAPI/Get-Transaction-Info) with its response  [`TransactionInfoResponse`](/documentation/AppStoreServerAPI/TransactionInfoResponse), which provides information about a single transaction.
- The [`Get Notification History`](/documentation/AppStoreServerAPI/Get-Notification-History) endpoint adds a new filter parameter, [`onlyFailures`](/documentation/AppStoreServerAPI/onlyFailures). When you set it to `true`, the endpoint returns only the notifications that failed to reach the developer’s server.
- The following endpoints changed their path parameters from [`originalTransactionId`](/documentation/AppStoreServerAPI/originalTransactionId) to [`transactionId`](/documentation/AppStoreServerAPI/transactionId): [`Get All Subscription Statuses`](/documentation/AppStoreServerAPI/Get-All-Subscription-Statuses), [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1), [`Get Refund History`](/documentation/AppStoreServerAPI/Get-Refund-History), and [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1). These endpoints now accept any transaction identifier, including original transaction identifiers.
- The [`Get Notification History`](/documentation/AppStoreServerAPI/Get-Notification-History) endpoint now accepts a [`transactionId`](/documentation/AppStoreServerAPI/transactionId) instead of requiring an original transaction identifier ([`originalTransactionId`](/documentation/AppStoreServerAPI/originalTransactionId)) in the [`NotificationHistoryRequest`](/documentation/AppStoreServerAPI/NotificationHistoryRequest) body.
- The [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1) endpoint adds a new filter parameter, `revoked`, that filters the response to return only revoked transactions or only nonrevoked transactions.
- The [`Get All Subscription Statuses`](/documentation/AppStoreServerAPI/Get-All-Subscription-Statuses) endpoint adds a new filter parameter, `status`, that enables you to request subscriptions with the status values you specify.
- Added the [`storefront`](/documentation/AppStoreServerAPI/storefront), [`storefrontId`](/documentation/AppStoreServerAPI/storefrontId), and [`transactionReason`](/documentation/AppStoreServerAPI/transactionReason) fields to the [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload) object.
- Added the [`renewalDate`](/documentation/AppStoreServerAPI/renewalDate) field to the  [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) object.
- Added the `sendAttempts` field to the  [`CheckTestNotificationResponse`](/documentation/AppStoreServerAPI/CheckTestNotificationResponse) and the [`notificationHistoryResponseItem`](/documentation/AppStoreServerAPI/notificationHistoryResponseItem) of the [`NotificationHistoryResponse`](/documentation/AppStoreServerAPI/NotificationHistoryResponse) to provide information about all the send attempts for App Store Server Notifications.
- Added the error codes [`FamilySharedSubscriptionExtensionIneligibleError`](/documentation/AppStoreServerAPI/FamilySharedSubscriptionExtensionIneligibleError), [`StatusRequestNotFoundError`](/documentation/AppStoreServerAPI/StatusRequestNotFoundError), [`InvalidStatusError`](/documentation/AppStoreServerAPI/InvalidStatusError), [`InvalidRevokedError`](/documentation/AppStoreServerAPI/InvalidRevokedError), [`InvalidTransactionIdError`](/documentation/AppStoreServerAPI/InvalidTransactionIdError), [`TransactionIdNotFoundError`](/documentation/AppStoreServerAPI/TransactionIdNotFoundError),  and [`RateLimitExceededError`](/documentation/AppStoreServerAPI/RateLimitExceededError).
- All endpoints are subject to a rate limit and can return a [`RateLimitExceededError`](/documentation/AppStoreServerAPI/RateLimitExceededError) with an HTTP 429 error code. For more information, see [Identifying rate limits](/documentation/AppStoreServerAPI/identifying-rate-limits).

**Deprecations**

- The `excludeRevoked` filter in [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1) is deprecated. Use the new `revoked` filter instead.
- The `firstSendAttemptResult` field is deprecated in the [`CheckTestNotificationResponse`](/documentation/AppStoreServerAPI/CheckTestNotificationResponse) and [`notificationHistoryResponseItem`](/documentation/AppStoreServerAPI/notificationHistoryResponseItem) objects. Use the first [`sendAttemptItem`](/documentation/AppStoreServerAPI/sendAttemptItem) in the `sendAttempts` array instead.

### 1.7 — 2023/01/30

New features

- The new endpoint [`Extend Subscription Renewal Dates for All Active Subscribers`](/documentation/AppStoreServerAPI/Extend-Subscription-Renewal-Dates-for-All-Active-Subscribers) takes a subscription product identifier and extends the renewal date for all eligible subscribers. It responds with [`MassExtendRenewalDateResponse`](/documentation/AppStoreServerAPI/MassExtendRenewalDateResponse). For more information, see [Extending the renewal date for auto-renewable subscriptions](/documentation/AppStoreServerAPI/extending-the-renewal-date-for-auto-renewable-subscriptions). For information about new App Store server notifications related to this endpoint, see the <doc://com.apple.documentation/documentation/AppStoreServerNotifications/app-store-server-notifications-changelog>.
- The new endpoint [`Get Status of Subscription Renewal Date Extensions`](/documentation/AppStoreServerAPI/Get-Status-of-Subscription-Renewal-Date-Extensions) checks the status of a subscription-renewal-date extension, and responds with the [`MassExtendRenewalDateStatusResponse`](/documentation/AppStoreServerAPI/MassExtendRenewalDateStatusResponse).

### 1.6 — 2022/08/08

New features

- The new version 2 endpoint [`Get Refund History`](/documentation/AppStoreServerAPI/Get-Refund-History) returns a paginated list of refunded transactions in the [`RefundHistoryResponse`](/documentation/AppStoreServerAPI/RefundHistoryResponse).

Deprecations

- The endpoint [`Get Refund History V1`](/documentation/AppStoreServerAPI/Get-Refund-History-V1) and its response [`RefundLookupResponse`](/documentation/AppStoreServerAPI/RefundLookupResponse) are deprecated.
- In `firstSendAttemptResult`, the `SSL_ISSUE` value is deprecated and replaced with `TLS_ISSUE`.

### 1.5 — 2022/06/06

New features

- The API has two new endpoints to support testing how your server receives App Store Server Notifications. The endpoints are: [`Request a Test Notification`](/documentation/AppStoreServerAPI/Request-a-Test-Notification) and [`Get Test Notification Status`](/documentation/AppStoreServerAPI/Get-Test-Notification-Status).
- The API adds the new [`Get Notification History`](/documentation/AppStoreServerAPI/Get-Notification-History) endpoint.
- The [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1) endpoint is enhanced with new parameters to support filtering and sorting functionality.
- The [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) now includes the [`recentSubscriptionStartDate`](/documentation/AppStoreServerAPI/recentSubscriptionStartDate) field.

### 1.4

This version doesn’t contain any public changes.

### 1.3

This version doesn’t contain any public changes.

### Server update — 2022/03/17

Removals

- The [`JWSDecodedHeader`](/documentation/AppStoreServerAPI/JWSDecodedHeader) object no longer includes the `kid` field.

### 1.2 — 2022/02/24

New features

- The [`JWSTransactionDecodedPayload`](/documentation/AppStoreServerAPI/JWSTransactionDecodedPayload) and [`JWSRenewalInfoDecodedPayload`](/documentation/AppStoreServerAPI/JWSRenewalInfoDecodedPayload) objects now include the [`environment`](/documentation/AppStoreServerAPI/environment) field.

### Server update — 2022/02/23

- The [`Get Refund History V1`](/documentation/AppStoreServerAPI/Get-Refund-History-V1) endpoint now returns a maximum of 50 refunded transactions.

### 1.1 — 2022/10/21

New features

- The API adds three endpoints: [`Look Up Order ID`](/documentation/AppStoreServerAPI/Look-Up-Order-ID), [`Get Refund History V1`](/documentation/AppStoreServerAPI/Get-Refund-History-V1), and [`Extend a Subscription Renewal Date`](/documentation/AppStoreServerAPI/Extend-a-Subscription-Renewal-Date).

### Server update — 2021/09/20

The API is now available in the production environment, using the following base URL:

```other
https://api.storekit.apple.com/inApps/
```

### 1.0b1 — 2021/06/07

Initial version of the App Store Server API.

New features

- This API has three endpoints, available in the sandbox environment: [`Get Transaction History V1`](/documentation/AppStoreServerAPI/Get-Transaction-History-V1), [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1), and [`Get All Subscription Statuses`](/documentation/AppStoreServerAPI/Get-All-Subscription-Statuses).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)