<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="content_v2_1.html">Content API for Shopping</a> . <a href="content_v2_1.settlementtransactions.html">settlementtransactions</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(merchantId, settlementId, maxResults=None, pageToken=None, transactionIds=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of transactions for the settlement.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</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(merchantId, settlementId, maxResults=None, pageToken=None, transactionIds=None, x__xgafv=None)</code>
  <pre>Retrieves a list of transactions for the settlement.

Args:
  merchantId: string, The Merchant Center account to list transactions for. (required)
  settlementId: string, The Google-provided ID of the settlement. (required)
  maxResults: integer, The maximum number of transactions to return in the response, used for paging. The default value is 200 transactions per page, and the maximum allowed value is 5000 transactions per page.
  pageToken: string, The token returned by the previous request.
  transactionIds: string, The list of transactions to return. If not set, all transactions will be returned. (repeated)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;content#settlementtransactionsListResponse&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The token for the retrieval of the next page of returns.
  &quot;resources&quot;: [
    { # Settlement transactions give a detailed breakdown of the settlement report.
      &quot;amount&quot;: { # The amount for the transaction.
        &quot;commission&quot;: {
          &quot;category&quot;: &quot;A String&quot;, # The category of the commission. Acceptable values are: - &quot;`animalsAndPetSupplies`&quot; - &quot;`dogCatFoodAndCatLitter`&quot; - &quot;`apparelAndAccessories`&quot; - &quot;`shoesHandbagsAndSunglasses`&quot; - &quot;`costumesAndAccessories`&quot; - &quot;`jewelry`&quot; - &quot;`watches`&quot; - &quot;`hobbiesArtsAndCrafts`&quot; - &quot;`homeAndGarden`&quot; - &quot;`entertainmentCollectibles`&quot; - &quot;`collectibleCoins`&quot; - &quot;`sportsCollectibles`&quot; - &quot;`sportingGoods`&quot; - &quot;`toysAndGames`&quot; - &quot;`musicalInstruments`&quot; - &quot;`giftCards`&quot; - &quot;`babyAndToddler`&quot; - &quot;`babyFoodWipesAndDiapers`&quot; - &quot;`businessAndIndustrial`&quot; - &quot;`camerasOpticsAndPhotography`&quot; - &quot;`consumerElectronics`&quot; - &quot;`electronicsAccessories`&quot; - &quot;`personalComputers`&quot; - &quot;`videoGameConsoles`&quot; - &quot;`foodAndGrocery`&quot; - &quot;`beverages`&quot; - &quot;`tobaccoProducts`&quot; - &quot;`furniture`&quot; - &quot;`hardware`&quot; - &quot;`buildingMaterials`&quot; - &quot;`tools`&quot; - &quot;`healthAndPersonalCare`&quot; - &quot;`beauty`&quot; - &quot;`householdSupplies`&quot; - &quot;`kitchenAndDining`&quot; - &quot;`majorAppliances`&quot; - &quot;`luggageAndBags`&quot; - &quot;`media`&quot; - &quot;`officeSupplies`&quot; - &quot;`softwareAndVideoGames`&quot; - &quot;`vehiclePartsAndAccessories`&quot; - &quot;`vehicleTiresAndWheels`&quot; - &quot;`vehicles`&quot; - &quot;`everythingElse`&quot;
          &quot;rate&quot;: &quot;A String&quot;, # Rate of the commission in percentage.
        },
        &quot;description&quot;: &quot;A String&quot;, # The description of the event. Acceptable values are: - &quot;`taxWithhold`&quot; - &quot;`principal`&quot; - &quot;`principalAdjustment`&quot; - &quot;`shippingFee`&quot; - &quot;`merchantRemittedSalesTax`&quot; - &quot;`googleRemittedSalesTax`&quot; - &quot;`merchantCoupon`&quot; - &quot;`merchantCouponTax`&quot; - &quot;`merchantRemittedDisposalTax`&quot; - &quot;`googleRemittedDisposalTax`&quot; - &quot;`merchantRemittedRedemptionFee`&quot; - &quot;`googleRemittedRedemptionFee`&quot; - &quot;`eeeEcoFee`&quot; - &quot;`furnitureEcoFee`&quot; - &quot;`copyPrivateFee`&quot; - &quot;`eeeEcoFeeCommission`&quot; - &quot;`furnitureEcoFeeCommission`&quot; - &quot;`copyPrivateFeeCommission`&quot; - &quot;`principalRefund`&quot; - &quot;`principalRefundTax`&quot; - &quot;`itemCommission`&quot; - &quot;`adjustmentCommission`&quot; - &quot;`shippingFeeCommission`&quot; - &quot;`commissionRefund`&quot; - &quot;`damaged`&quot; - &quot;`damagedOrDefectiveItem`&quot; - &quot;`expiredItem`&quot; - &quot;`faultyItem`&quot; - &quot;`incorrectItemReceived`&quot; - &quot;`itemMissing`&quot; - &quot;`qualityNotExpected`&quot; - &quot;`receivedTooLate`&quot; - &quot;`storePackageMissing`&quot; - &quot;`transitPackageMissing`&quot; - &quot;`unsuccessfulDeliveryUndeliverable`&quot; - &quot;`wrongChargeInStore`&quot; - &quot;`wrongItem`&quot; - &quot;`returns`&quot; - &quot;`undeliverable`&quot; - &quot;`refundFromMerchant`&quot; - &quot;`returnLabelShippingFee`&quot;
        &quot;transactionAmount&quot;: { # The amount that contributes to the line item price.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;type&quot;: &quot;A String&quot;, # The type of the amount. Acceptable values are: - &quot;`itemPrice`&quot; - &quot;`orderPrice`&quot; - &quot;`refund`&quot; - &quot;`earlyRefund`&quot; - &quot;`courtesyRefund`&quot; - &quot;`returnRefund`&quot; - &quot;`returnLabelShippingFeeAmount`&quot;
      },
      &quot;identifiers&quot;: { # Identifiers of the transaction.
        &quot;adjustmentId&quot;: &quot;A String&quot;, # The identifier of the adjustments, if it is available.
        &quot;merchantOrderId&quot;: &quot;A String&quot;, # The merchant provided order ID.
        &quot;orderItemId&quot;: &quot;A String&quot;, # The identifier of the item.
        &quot;settlementEntryId&quot;: &quot;A String&quot;, # The unique ID of the settlement transaction entry.
        &quot;shipmentIds&quot;: [ # The shipment ids for the item.
          &quot;A String&quot;,
        ],
        &quot;transactionId&quot;: &quot;A String&quot;, # The Google transaction ID.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#settlementTransaction`&quot;
      &quot;transaction&quot;: { # Details of the transaction.
        &quot;postDate&quot;: &quot;A String&quot;, # The time on which the event occurred in ISO 8601 format.
        &quot;type&quot;: &quot;A String&quot;, # The type of the transaction that occurred. Acceptable values are: - &quot;`order`&quot; - &quot;`reversal`&quot; - &quot;`orderRefund`&quot; - &quot;`reversalRefund`&quot; - &quot;`issueRelatedRefundAndReplacement`&quot; - &quot;`returnLabelShippingFeeTransaction`&quot; - &quot;`reversalIssueRelatedRefundAndReplacement`&quot; - &quot;`reversalReturnLabelShippingFeeTransaction`&quot;
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>