<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.pos.html">pos</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="#custombatch">custombatch(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Batches multiple POS-related calls in a single request.</p>
<p class="toc_element">
  <code><a href="#delete">delete(merchantId, targetMerchantId, storeCode, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a store for the given merchant.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, targetMerchantId, storeCode, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves information about the given store.</p>
<p class="toc_element">
  <code><a href="#insert">insert(merchantId, targetMerchantId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a store for the given merchant.</p>
<p class="toc_element">
  <code><a href="#inventory">inventory(merchantId, targetMerchantId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Submit inventory for the given merchant.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, targetMerchantId, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the stores of the target merchant.</p>
<p class="toc_element">
  <code><a href="#sale">sale(merchantId, targetMerchantId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Submit a sale event for the given merchant.</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="custombatch">custombatch(body=None, x__xgafv=None)</code>
  <pre>Batches multiple POS-related calls in a single request.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;entries&quot;: [ # The request entries to be processed in the batch.
    {
      &quot;batchId&quot;: 42, # An entry ID, unique within the batch request.
      &quot;inventory&quot;: { # The absolute quantity of an item available at the given store. # The inventory to submit. This should be set only if the method is `inventory`.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
        &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posInventory`&quot;
        &quot;price&quot;: { # Required. The current price of the item.
          &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;quantity&quot;: &quot;A String&quot;, # Required. The available quantity of the item.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
      },
      &quot;merchantId&quot;: &quot;A String&quot;, # The ID of the POS data provider.
      &quot;method&quot;: &quot;A String&quot;, # The method of the batch entry. Acceptable values are: - &quot;`delete`&quot; - &quot;`get`&quot; - &quot;`insert`&quot; - &quot;`inventory`&quot; - &quot;`sale`&quot;
      &quot;sale&quot;: { # The change of the available quantity of an item at the given store. # The sale information to submit. This should be set only if the method is `sale`.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
        &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posSale`&quot;
        &quot;price&quot;: { # Required. The price of the item.
          &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;quantity&quot;: &quot;A String&quot;, # Required. The relative change of the available quantity. Negative for items returned.
        &quot;saleId&quot;: &quot;A String&quot;, # A unique ID to group items from the same sale event.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
      },
      &quot;store&quot;: { # Store resource. # The store information to submit. This should be set only if the method is `insert`.
        &quot;gcidCategory&quot;: [ # The business type of the store.
          &quot;A String&quot;,
        ],
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
        &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
        &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
        &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
        &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
      },
      &quot;storeCode&quot;: &quot;A String&quot;, # The store code. This should be set only if the method is `delete` or `get`.
      &quot;targetMerchantId&quot;: &quot;A String&quot;, # The ID of the account for which to get/submit data.
    },
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;entries&quot;: [ # The result of the execution of the batch requests.
    {
      &quot;batchId&quot;: 42, # The ID of the request entry to which this entry responds.
      &quot;errors&quot;: { # A list of errors returned by a failed batch entry. # A list of errors defined if, and only if, the request failed.
        &quot;code&quot;: 42, # The HTTP status of the first error in `errors`.
        &quot;errors&quot;: [ # A list of errors.
          { # An error returned by the API.
            &quot;domain&quot;: &quot;A String&quot;, # The domain of the error.
            &quot;message&quot;: &quot;A String&quot;, # A description of the error.
            &quot;reason&quot;: &quot;A String&quot;, # The error code.
          },
        ],
        &quot;message&quot;: &quot;A String&quot;, # The message of the first error in `errors`.
      },
      &quot;inventory&quot;: { # The absolute quantity of an item available at the given store. # The updated inventory information.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
        &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posInventory`&quot;
        &quot;price&quot;: { # Required. The current price of the item.
          &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;quantity&quot;: &quot;A String&quot;, # Required. The available quantity of the item.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posCustomBatchResponseEntry`&quot;
      &quot;sale&quot;: { # The change of the available quantity of an item at the given store. # The updated sale information.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
        &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posSale`&quot;
        &quot;price&quot;: { # Required. The price of the item.
          &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;quantity&quot;: &quot;A String&quot;, # Required. The relative change of the available quantity. Negative for items returned.
        &quot;saleId&quot;: &quot;A String&quot;, # A unique ID to group items from the same sale event.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
      },
      &quot;store&quot;: { # Store resource. # The retrieved or updated store information.
        &quot;gcidCategory&quot;: [ # The business type of the store.
          &quot;A String&quot;,
        ],
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
        &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
        &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
        &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
        &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
        &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
      },
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posCustomBatchResponse`&quot;.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(merchantId, targetMerchantId, storeCode, x__xgafv=None)</code>
  <pre>Deletes a store for the given merchant.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  storeCode: string, A store code that is unique per merchant. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, targetMerchantId, storeCode, x__xgafv=None)</code>
  <pre>Retrieves information about the given store.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  storeCode: string, A store code that is unique per merchant. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Store resource.
  &quot;gcidCategory&quot;: [ # The business type of the store.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
  &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
  &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
  &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
  &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
  &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(merchantId, targetMerchantId, body=None, x__xgafv=None)</code>
  <pre>Creates a store for the given merchant.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  body: object, The request body.
    The object takes the form of:

{ # Store resource.
  &quot;gcidCategory&quot;: [ # The business type of the store.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
  &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
  &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
  &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
  &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
  &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Store resource.
  &quot;gcidCategory&quot;: [ # The business type of the store.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
  &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
  &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
  &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
  &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
  &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
}</pre>
</div>

<div class="method">
    <code class="details" id="inventory">inventory(merchantId, targetMerchantId, body=None, x__xgafv=None)</code>
  <pre>Submit inventory for the given merchant.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
  &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
  &quot;price&quot;: { # Required. The current price of the item.
    &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;quantity&quot;: &quot;A String&quot;, # Required. The available quantity of the item.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
  &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posInventoryResponse`&quot;.
  &quot;price&quot;: { # Required. The current price of the item.
    &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;quantity&quot;: &quot;A String&quot;, # Required. The available quantity of the item.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(merchantId, targetMerchantId, x__xgafv=None)</code>
  <pre>Lists the stores of the target merchant.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  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#posListResponse`&quot;.
  &quot;resources&quot;: [
    { # Store resource.
      &quot;gcidCategory&quot;: [ # The business type of the store.
        &quot;A String&quot;,
      ],
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posStore`&quot;
      &quot;phoneNumber&quot;: &quot;A String&quot;, # The store phone number.
      &quot;placeId&quot;: &quot;A String&quot;, # The Google Place Id of the store location.
      &quot;storeAddress&quot;: &quot;A String&quot;, # Required. The street address of the store.
      &quot;storeCode&quot;: &quot;A String&quot;, # Required. A store identifier that is unique for the given merchant.
      &quot;storeName&quot;: &quot;A String&quot;, # The merchant or store name.
      &quot;websiteUrl&quot;: &quot;A String&quot;, # The website url for the store or merchant.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="sale">sale(merchantId, targetMerchantId, body=None, x__xgafv=None)</code>
  <pre>Submit a sale event for the given merchant.

Args:
  merchantId: string, The ID of the POS or inventory data provider. (required)
  targetMerchantId: string, The ID of the target merchant. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
  &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
  &quot;price&quot;: { # Required. The price of the item.
    &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;quantity&quot;: &quot;A String&quot;, # Required. The relative change of the available quantity. Negative for items returned.
  &quot;saleId&quot;: &quot;A String&quot;, # A unique ID to group items from the same sale event.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number.
  &quot;itemId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#posSaleResponse`&quot;.
  &quot;price&quot;: { # Required. The price of the item.
    &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;quantity&quot;: &quot;A String&quot;, # Required. The relative change of the available quantity. Negative for items returned.
  &quot;saleId&quot;: &quot;A String&quot;, # A unique ID to group items from the same sale event.
  &quot;storeCode&quot;: &quot;A String&quot;, # Required. The identifier of the merchant&#x27;s store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;timestamp&quot;: &quot;A String&quot;, # Required. The inventory timestamp, in ISO 8601 format.
}</pre>
</div>

</body></html>