<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;`issueRelatedRefundAndReplacementAmountDescription`&quot; - &quot;`refundFromMerchant`&quot; - &quot;`returnLabelShippingFee`&quot; - &quot;`lumpSumCorrection`&quot; - &quot;`pspFee`&quot; - &quot;`principalRefundDoesNotFit`&quot; - &quot;`principalRefundOrderedWrongItem`&quot; - &quot;`principalRefundQualityNotExpected`&quot; - &quot;`principalRefundBetterPriceFound`&quot; - &quot;`principalRefundNoLongerNeeded`&quot; - &quot;`principalRefundChangedMind`&quot; - &quot;`principalRefundReceivedTooLate`&quot; - &quot;`principalRefundIncorrectItemReceived`&quot; - &quot;`principalRefundDamagedOrDefectiveItem`&quot; - &quot;`principalRefundDidNotMatchDescription`&quot; - &quot;`principalRefundExpiredItem`&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;`lumpSumCorrectionAmount`&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; - &quot;`lumpSumCorrectionTransaction`&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>