<!--
{
  "availability" : [
    "App Store Server API: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppStoreServerAPI",
  "identifier" : "/documentation/AppStoreServerAPI/ConsumptionRequestV1",
  "metadataVersion" : "0.1.0",
  "role" : "Object",
  "symbol" : {
    "kind" : "Object",
    "modules" : [
      "App Store Server API"
    ],
    "preciseIdentifier" : "data:app_store_server_api:ConsumptionRequestV1"
  },
  "title" : "ConsumptionRequestV1"
}
-->

# ConsumptionRequestV1

The request body containing consumption information.

```
object ConsumptionRequestV1
```

## Overview> Important:
> For App Store In-App Purchases that don’t use the Advanced Commerce API, use ``doc://com.apple.appstoreserverapi/documentation/AppStoreServerAPI/ConsumptionRequest`` with the ``doc://com.apple.appstoreserverapi/documentation/AppStoreServerAPI/Send-Consumption-Information`` endpoint instead.

## Discussion

Use `ConsumptionRequestV1` to provide information about the customer’s consumable in-app purchase or auto-renewable subscription when you call the [`Send Consumption Information V1`](/documentation/AppStoreServerAPI/Send-Consumption-Information-V1) endpoint.

To create a valid request and avoid an `HTTP 400 Bad Request` error, [`ConsumptionRequestV1`](/documentation/AppStoreServerAPI/ConsumptionRequestV1) must contain all the required fields with proper data types and valid values. However, you can choose whether or not to provide information for most fields. Most fields have a valid option if you choose not to provide the information.

> Note:
> Use the field value for *undeclared*, where available, if you choose not to provide information.

For example, if you choose not to provide information for the [`accountTenure`](/documentation/AppStoreServerAPI/accountTenure) field, set [`accountTenure`](/documentation/AppStoreServerAPI/accountTenure) to `0`. If you choose not to provide information for the [`appAccountToken`](/documentation/AppStoreServerAPI/appAccountToken) field, set its value to an empty string. Refer to each field’s documentation for the list of valid values, including the undeclared value where available.

The App Store server rejects requests that have a [`customerConsented`](/documentation/AppStoreServerAPI/customerConsented) value other than `true` by returning an `HTTP 400` error with an [`InvalidCustomerConsentedError`](/documentation/AppStoreServerAPI/InvalidCustomerConsentedError).

### Provide the app account token in a consumption request

The [`ConsumptionRequestV1`](/documentation/AppStoreServerAPI/ConsumptionRequestV1) request body requires that you set the `appAccountToken` to a valid value of either a UUID or an empty string. Set the `appAccountToken` value to the value you received in the `CONSUMPTION_REQUEST` notification, or, if you choose not to provide this information, set the value to an empty string.

If you receive a `CONSUMPTION_REQUEST` notification for a transaction, find its associated `appAccountToken` value as follows:

- If you receive <doc://com.apple.documentation/documentation/AppStoreServerNotifications/App-Store-Server-Notifications-V2>, the `appAccountToken` value is in <doc://com.apple.documentation/documentation/AppStoreServerNotifications/JWSTransactionDecodedPayload>.
- If you receive <doc://com.apple.documentation/documentation/AppStoreServerNotifications/app-store-server-notifications-version-1>, the `appAccountToken` value is in <doc://com.apple.documentation/documentation/AppStoreServerNotifications/unified_receipt/Latest_receipt_info-data.dictionary>.

The `appAccountToken` value may be an empty string if your app doesn’t use app account tokens.

For more information about App Store Server Notifications versions, see <doc://com.apple.documentation/documentation/AppStoreServerNotifications/app-store-server-notifications-changelog>.

## Topics

### Consumption data types

[`accountTenure`](/documentation/AppStoreServerAPI/accountTenure)

The age of the customer’s account.

[`appAccountToken`](/documentation/AppStoreServerAPI/appAccountToken)

The UUID that you generate to associate a customer’s In-App Purchase with its resulting App Store transaction.

[`consumptionStatus`](/documentation/AppStoreServerAPI/consumptionStatus)

A value that indicates the extent to which the customer consumed the In-App Purchase.

[`customerConsented`](/documentation/AppStoreServerAPI/customerConsented)

A Boolean value that indicates whether the customer consented to provide consumption data to the App Store.

[`deliveryStatusV1`](/documentation/AppStoreServerAPI/deliveryStatusV1)

A value that indicates whether the app successfully delivered an In-App Purchase that works properly.

[`lifetimeDollarsPurchased`](/documentation/AppStoreServerAPI/lifetimeDollarsPurchased)

A value that indicates the dollar amount of in-app purchases the customer has made in your app, since purchasing the app, across all platforms.

[`lifetimeDollarsRefunded`](/documentation/AppStoreServerAPI/lifetimeDollarsRefunded)

A value that indicates the dollar amount of refunds the customer has received in your app, since purchasing the app, across all platforms.

[`platform`](/documentation/AppStoreServerAPI/platform)

The platform on which the customer consumed the in-app purchase.

[`playTime`](/documentation/AppStoreServerAPI/playTime)

A value that indicates the amount of time that the customer used the app.

[`refundPreferenceV1`](/documentation/AppStoreServerAPI/refundPreferenceV1)

A value that indicates your preferred outcome for the refund request.

[`sampleContentProvided`](/documentation/AppStoreServerAPI/sampleContentProvided)

A Boolean value that indicates whether you provided, prior to its purchase, a free sample or trial of the content, or information about its functionality.

[`userStatus`](/documentation/AppStoreServerAPI/userStatus)

The status of a customer’s account within your app.



---

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)