Contents

Send Consumption Information V1

Send consumption information about a consumable In-App Purchase or auto-renewable subscription to the App Store after your server receives a consumption request notification.

URL

PUT https://api.storekit.apple.com/inApps/v1/transactions/consumption/{transactionId}

Sandbox URL

PUT https://api.storekit-sandbox.apple.com/inApps/v1/transactions/consumption/{transactionId}

Path Parameters

NameTypeDescription
transactionId RequiredtransactionId

The transaction identifier for which you’re providing consumption information. You receive this identifier in the CONSUMPTION_REQUEST notification the App Store sends to your server’s App Store Server Notifications V2 endpoint.

Response Codes

StatusReasonTypeDescription
202Accepted

The App Store server received the consumption information.

400Bad Request
Content-Type: application/json
(InvalidAccountTenureError | InvalidAppAccountTokenError | InvalidConsumptionStatusError | InvalidCustomerConsentedError | InvalidDeliveryStatusError | InvalidLifetimeDollarsPurchasedError | InvalidLifetimeDollarsRefundedError | InvalidPlatformError | InvalidPlayTimeError | InvalidSampleContentProvidedError | InvalidUserStatusError | InvalidRefundPreferenceError | InvalidTransactionTypeNotSupportedError)

Invalid request. See the error code for more information. If there’s no error code, the request is malformed.

401Unauthorized

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

404Not Found
Content-Type: application/json
TransactionIdNotFoundError

The transaction identifier wasn’t found.

429
Content-Type: application/json
RateLimitExceededError

The request exceeded the rate limit. For more information, see Identifying rate limits.

500Internal Server Error
Content-Type: application/json
GeneralInternalError

Server error. Try again later.

Mentioned in

Discussion

The App Store uses a variety of factors to determine if a refund request is approved or denied. To help inform and improve the refund process, you can send information about a customer’s consumption of the In-App Purchase to the App Store when the customer requests a refund. The App Store uses the consumption information you provide to inform its refund decisions.

When a customer initiates a refund request for a consumable In-App Purchase or auto-renewable subscription, the App Store sends a CONSUMPTION_REQUEST notificationType to your server through your App Store Server Notifications V2 endpoint. If the customer provided consent, respond by calling this API and sending the consumption data in the ConsumptionRequestV1 to the App Store. If not, don’t respond to the CONSUMPTION_REQUEST notification.

Respond within 12 hours of receiving the CONSUMPTION_REQUEST notification.

For information about configuring your server to receive App Store server notifications, see Enabling App Store Server Notifications. For information about initiating refund requests in an app, see any of the refund request methods, including beginRefundRequest(in:), beginRefundRequest(for:in:), beginRefundRequest(in:), and beginRefundRequest(for:in:).

You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information V1 API. You, the developer, are solely responsible for obtaining valid consent because you’re sharing with Apple the data that you collected from the customer.

The requirements to obtain valid consent vary under applicable law, and Apple can’t advise you on specific ways to obtain valid consent. Developers are responsible for determining specific compliance with applicable laws. If your app violates Apple’s guidelines, App Review will reach out and work with you to address any concerns.

Here are some general guidelines to keep in mind for obtaining valid consent:

  • Valid consent is freely given, specific, informed, and unambiguous as to a customer’s wishes with respect to their personal data.

  • As an example, when requesting consent, you may include: clear language that conveys to a customer that you will provide Apple with some of their personal data to assist with reviewing the customer’s app refund requests; clear language that conveys to customers that they can withdraw their consent at any time; and a method for customers to give their affirmative consent.

  • Opt-in consent is a higher standard for consent than offering an opt-out. Generally, if you don’t offer an individual the opportunity to opt out, it can be difficult to show that consent is freely given.

  • After you’ve obtained consent, if there is a change in circumstances causing you to conclude that the customer’s consent is no longer valid — for example, due to a change in the way you use or share data, or if the customer withdraws consent for this purpose — you should update the customerConsented flag and not send any further data from that customer.

The data you share with Apple through the Send Consumption Information V1 API isn’t used for tracking. You must separately obtain consent from customers when sharing data with Apple using the Send Consumption Information V1 API.

Disclose data usage

If you adopt the Send Consumption Information V1 API, answer the app privacy questions to disclose in your labels any data you collect from your customers and what you’re using it for. For more information about app privacy labels, see App privacy details on the App Store.

Apple uses and protects the data you share through the Send Consumption Information V1 API in accordance with Apple’s Privacy Policy. For additional information about how Apple protects data, see Apple Platform Security Guide. Apple retains the data you provide through the Send Consumption Information V1 API for the period necessary to fulfill the purpose for which the data was collected, which is to improve the refund process by obtaining data that assists with reviewing the customer’s refund request. Apple may share the data you provide through the Send Consumption Information V1 API with service providers who act on our behalf, our partners, or others at your direction. Apple will not share the data with third parties for their own marketing purposes. For more information, see App Store & Privacy.

Handle requests to access or delete consumption data

If your customers request access to or deletion of their personal data related to consumption information, inform them that they may submit requests directly to Apple by visiting privacy.apple.com. If your app stores data in CloudKit on behalf of your customers, see Responding to Requests to Delete Data, Providing User Access to CloudKit Data, and Changing Access Controls on User Data for more information.

HTTP Body

The request body.

See Also

Deprecated