<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="androidpublisher_v3.html">Google Play Android Developer API</a> . <a href="androidpublisher_v3.purchases.html">purchases</a> . <a href="androidpublisher_v3.purchases.voidedpurchases.html">voidedpurchases</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(packageName, maxResults=None, startIndex=None, endTime=None, type=None, startTime=None, token=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the purchases that were canceled, refunded or charged-back.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(packageName, maxResults=None, startIndex=None, endTime=None, type=None, startTime=None, token=None, x__xgafv=None)</code>
  <pre>Lists the purchases that were canceled, refunded or charged-back.

Args:
  packageName: string, The package name of the application for which voided purchases need to be returned (for example, &#x27;com.some.thing&#x27;). (required)
  maxResults: integer, Defines how many results the list operation should return. The default number depends on the resource collection.
  startIndex: integer, Defines the index of the first element to return. This can only be used if indexed paging is enabled.
  endTime: string, 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.
  startTime: string, 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.
  token: string, Defines the token of the page to return, usually taken from TokenPagination. This can only be used if token paging is enabled.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for the voidedpurchases.list API.
    &quot;voidedPurchases&quot;: [
      { # A VoidedPurchase resource indicates a purchase that was either canceled/refunded/charged-back.
        &quot;purchaseToken&quot;: &quot;A String&quot;, # The token which uniquely identifies a one-time purchase or subscription. To uniquely identify subscription renewals use order_id (available starting from version 3 of the API).
        &quot;orderId&quot;: &quot;A String&quot;, # The order id which uniquely identifies a one-time purchase, subscription purchase, or subscription renewal.
        &quot;voidedSource&quot;: 42, # The initiator of voided purchase, possible values are: 0. User 1. Developer 2. Google
        &quot;voidedReason&quot;: 42, # The reason why the purchase was voided, possible values are: 0. Other 1. Remorse 2. Not_received 3. Defective 4. Accidental_purchase 5. Fraud 6. Friendly_fraud 7. Chargeback
        &quot;kind&quot;: &quot;A String&quot;, # This kind represents a voided purchase object in the androidpublisher service.
        &quot;voidedTimeMillis&quot;: &quot;A String&quot;, # The time at which the purchase was canceled/refunded/charged-back, in milliseconds since the epoch (Jan 1, 1970).
        &quot;purchaseTimeMillis&quot;: &quot;A String&quot;, # The time at which the purchase was made, in milliseconds since the epoch (Jan 1, 1970).
      },
    ],
    &quot;pageInfo&quot;: { # Information about the current page. List operations that supports paging return only one &quot;page&quot; of results. This protocol buffer message describes the page that has been returned. # General pagination information.
      &quot;totalResults&quot;: 42, # Total number of results available on the backend ! The total number of results in the result set.
      &quot;startIndex&quot;: 42, # Index of the first result returned in the current page.
      &quot;resultPerPage&quot;: 42, # Maximum number of results returned in one page. ! The number of results included in the API response.
    },
    &quot;tokenPagination&quot;: { # Pagination information returned by a List operation when token pagination is enabled. List operations that supports paging return only one &quot;page&quot; of results. This protocol buffer message describes the page that has been returned. When using token pagination, clients should use the next/previous token to get another page of the result. The presence or absence of next/previous token indicates whether a next/previous page is available and provides a mean of accessing this page. ListRequest.page_token should be set to either next_page_token or previous_page_token to access another page. # Pagination information for token pagination.
      &quot;nextPageToken&quot;: &quot;A String&quot;, # Tokens to pass to the standard list field &#x27;page_token&#x27;. Whenever available, tokens are preferred over manipulating start_index.
      &quot;previousPageToken&quot;: &quot;A String&quot;,
    },
  }</pre>
</div>

</body></html>