<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.html">Content API for Shopping</a> . <a href="content_v2.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, dryRun=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, dryRun=None, 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, dryRun=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, dryRun=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, dryRun=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, dryRun=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 via the API or the code of the store in Google My Business.
        &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 via the API or the code of the store in Google My Business.
        &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.
    },
  ],
}

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
  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 via the API or the code of the store in Google My Business.
        &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 via the API or the code of the store in Google My Business.
        &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, dryRun=None, 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)
  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
  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, dryRun=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.
}

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
  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, dryRun=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 via the API or the code of the store in Google My Business.
  &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.
}

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
  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 via the API or the code of the store in Google My Business.
  &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, dryRun=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 via the API or the code of the store in Google My Business.
  &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.
}

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
  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 via the API or the code of the store in Google My Business.
  &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>