- [Resource: ProductPurchase](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products#ProductPurchase)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products#ProductPurchase.SCHEMA_REPRESENTATION)
- [Methods](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products#METHODS_SUMMARY)

## Resource: ProductPurchase

A ProductPurchase resource indicates the status of a user's inapp product purchase.

| JSON representation |
|---|
| ``` { "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } ``` |

| Fields ||
|---|---|
| `kind` | `string` This kind represents an inappPurchase object in the androidpublisher service. |
| `purchaseTimeMillis` | `string (https://developers.google.com/discovery/v1/type-format format)` The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970). |
| `purchaseState` | `integer` The purchase state of the order. Possible values are: 0. Purchased 1. Canceled 2. Pending |
| `consumptionState` | `integer` The consumption state of the inapp product. Possible values are: 0. Yet to be consumed 1. Consumed |
| `developerPayload` | `string` A developer-specified string that contains supplemental information about an order. |
| `orderId` | `string` The order id associated with the purchase of the inapp product. |
| `purchaseType` | `integer` The type of purchase of the inapp product. This field is only set if this purchase was not made using the standard in-app billing flow. Possible values are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased using a promo code). Does not include Play Points purchases. 2. Rewarded (i.e. from watching a video ad instead of paying) |
| `acknowledgementState` | `integer` The acknowledgement state of the inapp product. Possible values are: 0. Yet to be acknowledged 1. Acknowledged |
| `purchaseToken` | `string` The purchase token generated to identify this purchase. May not be present. |
| `productId` | `string` The inapp product SKU. May not be present. |
| `quantity` | `integer` The quantity associated with the purchase of the inapp product. If not present, the quantity is 1. |
| `obfuscatedExternalAccountId` | `string` An obfuscated version of the id that is uniquely associated with the user's account in your app. Only present if specified using <https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid> when the purchase was made. |
| `obfuscatedExternalProfileId` | `string` An obfuscated version of the id that is uniquely associated with the user's profile in your app. Only present if specified using <https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid> when the purchase was made. |
| `regionCode` | `string` ISO 3166-1 alpha-2 billing region code of the user at the time the product was granted. |
| `refundableQuantity` | `integer` The quantity eligible for refund, i.e. quantity that hasn't been refunded. The value reflects quantity-based partial refunds and full refunds. |

| ## Methods ||
|---|---|
| ### `https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/acknowledge` | Acknowledges a purchase of an inapp item. |
| ### `https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/consume` | Consumes a purchase for an inapp item. |
| ### `https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/get` | Checks the purchase and consumption status of an inapp item. |

## Error codes

The operations of this resource, return the following HTTP error codes:

| Error code | Reason | Description | Resolution |
|---|---|---|---|