# Method: purchases.voidedpurchases.list

- [HTTP request](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.request_body)
- [Response body](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.response_body)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.VoidedPurchasesListResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#body.aspect)
- [PageSelection](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#PageSelection)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#PageSelection.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list#try-it)

Lists the purchases that were canceled, refunded or charged-back.

### HTTP request

`GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `packageName` | `string` The package name of the application for which voided purchases need to be returned (for example, 'com.some.thing'). |

### Query parameters

| Parameters ||
|---|---|
| `pageSelection.maxResults` | `integer (https://developers.google.com/discovery/v1/type-format format)` Defines how many results the list operation should return. The default number depends on the resource collection. |
| `pageSelection.startIndex` | `integer (https://developers.google.com/discovery/v1/type-format format)` Defines the index of the first element to return. This can only be used if indexed paging is enabled. |
| `pageSelection.token` | `string` Defines the token of the page to return, usually taken from TokenPagination. This can only be used if token paging is enabled. |
| `startTime` | `string (https://developers.google.com/discovery/v1/type-format format)` The time, in milliseconds since the Epoch, of the oldest voided purchase that you want to see in the response. The value of this parameter cannot be older than 30 days and is ignored if a pagination token is set. Default value is current time minus 30 days. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response. |
| `endTime` | `string (https://developers.google.com/discovery/v1/type-format format)` The time, in milliseconds since the Epoch, of the newest voided purchase that you want to see in the response. The value of this parameter cannot be greater than the current time and is ignored if a pagination token is set. Default value is current time. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response. |
| `type` | `integer` The type of voided purchases that you want to see in the response. Possible values are: 0. Only voided in-app product purchases will be returned in the response. This is the default value. 1. Both voided in-app purchases and voided subscription purchases will be returned in the response. Note: Before requesting to receive voided subscription purchases, you must switch to use orderId in the response which uniquely identifies one-time purchases and subscriptions. Otherwise, you will receive multiple subscription orders with the same PurchaseToken, because subscription renewal orders share the same PurchaseToken. |
| `includeQuantityBasedPartialRefund` | `boolean` Optional. Whether to include voided purchases of quantity-based partial refunds, which are applicable only to multi-quantity purchases. If true, additional voided purchases may be returned with voidedQuantity that indicates the refund quantity of a quantity-based partial refund. The default value is false. |

### Request body

The request body must be empty.

### Response body

Response for the voidedpurchases.list API.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "pageInfo": { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/PageInfo`) }, "tokenPagination": { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/TokenPagination`) }, "voidedPurchases": [ { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases#VoidedPurchase`) } ] } ``` |

| Fields ||
|---|---|
| `pageInfo` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/PageInfo`)`` General pagination information. |
| `tokenPagination` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/TokenPagination`)`` Pagination information for token pagination. |
| `voidedPurchases[]` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases#VoidedPurchase`)`` |

### Sample

The following is a sample request:

```json
curl -X GET \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.some.thing/purchases/voidedpurchases?endTime=1678886400000&includeQuantityBasedPartialRefund=true&maxResults=10&startIndex=0&startTime=1676208000000&token=SAMPLE_PAGINATION_TOKEN&type=1'
```

The following is a sample response:

```json
{
  "pageInfo": {
    "resultPerPage": 10,
    "startIndex": 0,
    "totalResults": 25
  },
  "tokenPagination": {
    "nextPageToken": "c3RhdGVfZm9yX3BhZ2VfMg==",
    "previousPageToken": null
  },
  "voidedPurchases": [
    {
      "kind": "androidpublisher#voidedPurchase",
      "orderId": "GPA.3315-1234-5678-90123",
      "purchaseTimeMillis": "1678886400000",
      "purchaseToken": "aebkhenchpfeidbefgkcjmfi.AO-J1OykGjJh9r_V7_v0kI6bA4v88e5c44f4e0c4b4a8e0e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z",
      "voidedQuantity": 1,
      "voidedReason": 1,
      "voidedSource": 0,
      "voidedTimeMillis": "1678972800000"
    },
    {
      "kind": "androidpublisher#voidedPurchase",
      "orderId": "GPA.3377-9876-5432-10987.0",
      "purchaseTimeMillis": "1678713600000",
      "purchaseToken": "fkgdjdmfgmcmflekdgmdncj.AO-J1OyU6sXvB9LqRt3jD2wZ_pE8gXyF5hT3mN1zK0aP7bV4qL9cO6iR2sD0kM7oU1bL8jI3sF5tY9vU4wO1eP2g",
      "voidedQuantity": 1,
      "voidedReason": 7,
      "voidedSource": 2,
      "voidedTimeMillis": "1678800000000"
    }
  ]
}
```

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/androidpublisher`

## PageSelection

Type of the pageSelection request parameter that defines which and how many results a voidedpurchases.list operation should return.

| JSON representation |
|---|
| ``` { "maxResults": integer, "startIndex": integer, "token": string } ``` |

| Fields ||
|---|---|
| `maxResults` | `integer (https://developers.google.com/discovery/v1/type-format format)` Defines how many results the list operation should return. The default number depends on the resource collection. |
| `startIndex` | `integer (https://developers.google.com/discovery/v1/type-format format)` Defines the index of the first element to return. This can only be used if indexed paging is enabled. |
| `token` | `string` Defines the token of the page to return, usually taken from TokenPagination. This can only be used if token paging is enabled. |