My favorites | English | Sign in

Google Checkout

Google Checkout XML API - Defining Tax Rules

Note: This is the latest documentation. The previous version of this page is identical — only the left nav differs.
Specifying Tax Rules
Ordering Tax Rules in XML Requests
Country-Specific Rounding Rules
XML Examples for Tax Tables
XML Tag Definitions

Specifying Tax Rules

Google Checkout calculates taxes based on tax rules that you include in your Checkout API request. Every tax rule must specify the geographic area(s) where the rule applies as well as the tax rate that should be charged in that area. You can specify tax rates that are different for each item in an order, and you can apply those tax rates in areas as small as a postal or zip code or as large as the world.

Each tax rule must include either the <tax-area> tag or the <tax-areas> tag, which will identify the geographic area(s) where the tax rule applies. The difference between these two tags is that the <tax-areas> tag can specify one or more geographic areas, while the <tax-area> tag can only specify one area. Please see the sample XML for applying a tax rule in multiple geographic areas for a sample usage of the <tax-areas> tag.

Checkout API requests can specify two different types of tax rules.

  • Default tax rules identify tax rates that will be applied, by default, in a particular geographic area. Default tax rules may also contain an optional subtag, <shipping-taxed>, that indicates whether tax rates apply to shipping costs. Default tax rules are grouped into a default tax table, and each Checkout API request may contain one default tax table. You can override your default tax rules by specifying an alternate tax rule that should be used to calculate tax for an item.

  • Alternate tax rules identify tax rates that can be applied to particular types of products. For example, in some states, manufactured goods may be taxed at one rate but extended warranties on those goods may be taxed at a different rate. In your Checkout API request, alternate tax rules are grouped into alternate tax tables. Each alternate tax table contains all of the alternate tax rules for a particular type of product or service, and a Checkout API request may contain zero or more alternate tax tables.

    Like default tax rules, alternate tax rules specify particular geographic areas where each rule applies. (Each geographic area identified in an alternate tax rule can specify its own alternate tax rate.) However, an alternate tax rule will only be used to calculate tax for an item if the Checkout API request specifies a tax-table-selector value for that item. In that case, Google Checkout will try to match the value of the tax-table-selector element to the name attribute of the alternate-tax-table elements in your shopping cart.

    For example, the following XML excerpt from a Checkout API request shows an item that specifies an alternate tax table that should be used to calculate taxes for the item.

    <item>
        <item-name>3-year warranty for 512MB PC2-5300 DDR SO-DIMM</item-name>
        <item-description>Extended warranty for PC2-5300</item-description>
        <quantity>1</quantity>
        <tax-table-selector>warranty</tax-table-selector>
        <unit-price currency="USD">79.99</unit-price>
    </item>
    

    To calculate taxes for this item, Google Checkout would use the alternate tax table in your Checkout API request that had a name of "warranty":

    <alternate-tax-table name="warranty" standalone="false"/>
    

    In some cases, an item might specify an alternate tax table, but that table will not contain an alternate tax rule for the location to which the item is being shipped. In these cases, Google Checkout will refer to the standalone attribute of the alternate-tax-table to determine how to calculate taxes. If the standalone attribute's value is true, Google Checkout will not calculate tax for the item. (The tax amount for that item will be 0.) If the standalone attribute's value is false, Google Checkout will use the default tax table to calculate taxes for the item. The default value of the standalone attribute is false.

Ordering Tax Rules in XML Requests

To select the tax rate for an item, Google Checkout selects the first default tax rule in the API request for which the tax area matches the shipping address. (If you specify a tax-table-selector for the item, Google Checkout will select the first alternate tax rule for which the tax area matches the shipping address.)

As such, your tax tables should list tax rules that apply in more specific geographic areas before rules that apply in less specific areas. For example, if a state has a 4 percent sales tax rate and a zip code in that state has an 8 percent sales tax rate, you should list the tax rule for the zip code before the tax rule for the state.

The following XML excerpt demonstrates this principle. The excerpt is from an order being shipped to the 10022 zip code, which is in New York City. The sales tax rate in New York City is 8.375 percent whereas the New York state sales tax is 4 percent. Note that the tax rule for New York City zip codes is listed before the tax rule for the state of New York. In this example, both tax rules match a shipping address in the 10022 zip code, but Google Checkout will select the first matching tax rate, which is the rule with a zip code pattern of "100*" and a rate of 8.375% (0.08375).


        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>false</shipping-taxed>
                <rate>0.08375</rate>
                <tax-area>
                  <us-zip-area>
                    <zip-pattern>100*</zip-pattern>
                  </us-zip-area>
                </tax-area>
              </default-tax-rule>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0400</rate>
                <tax-area>
                  <us-state-area>
                    <state>NY</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>

Note: This excerpt does not include all zip codes for New York City or all applicable tax rates for shipping addresses in New York.

Country-Specific Rounding Rules

For all financial calculations, Google Checkout uses a default rounding policy that is selected based on the merchant's home country. You can change the default rounding policy by adding the <rounding-policy> tag and its subtags, <mode> and <rule>, to your Checkout API request. The Google Checkout Rounding Policy document explains how to change the rounding policy used to calculate totals for an order.

  • For U.S. merchants, Google Checkout uses banker's rounding as its default policy. Banker's rounding is the same as the traditional method of rounding numbers with one exception. In banker's rounding, if the number to be rounded is followed by a five and no additional nonzero digits, the number is rounded to the nearest even number. The following examples demonstrate the expected behavior in banker's rounding:

    • 12.435 would be rounded up to 12.44. The number to be rounded (3) is rounded to the nearest even digit (4).
    • 12.445 would be rounded down to 12.44. The number to be rounded (4) is not rounded because it is an even digit.
    • 12.44501 would be rounded up to 12.45. The number to be rounded (4) is followed by a five and by additional nonzero digits.

    For U.S. merchants, Google calculates the total amount of tax for all of the items in an order and then uses banker's rounding to round that amount to two decimal places.

  • For U.K. merchants, Google Checkout uses the HALF_UP rounding mode. For this rounding mode, if the number being rounded is followed by a five and no additional nonzero digits, then that number is rounded up. All other numbers are rounded to the nearest digit. The following examples demonstrate the expected behavior for HALF_UP rounding:

    • 12.434 would be rounded down to 12.43.
    • 12.435 would be rounded up to 12.44.
    • 12.445 would be rounded up to 12.45.
    • 12.456 would be rounded up to 12.46.

    For U.K. merchants, Google calculates tax for each item in the order and then uses HALF_UP rounding for each calculated amount.

XML Examples for Tax Tables

This section contains a number of XML examples that demonstrate different ways of defining default tax tables and alternate tax tables. You can click the Checkout button below each example to see how the tax tables affect the buyer experience. The examples are for a fictional merchant and link to the Sandbox testing environment.

Adding the following shipping addresses to your Sandbox account will help you to test the buyer experience for the examples:

  • Name: John Maryland; Address: 15 Maryland Way, Bethesda MD 20810
  • Name: Jim Connecticut; Address 15 Whaler Court, Hartford CT 06126
  • Name: Dave New York City; Address: 15 York St., New York NY 10022
  • Name: Sally Upstate-NY; Address: 15 Saranac Ave., Saranac NY 12981
  • Name: Geoffrey England; Address: 15 London Rd., London SW1W 9QT

Please note that the following examples do not contain complete Checkout API requests:

Example 1: Charging a single tax rate in one state
 
Example 2: Charging tax in two non-overlapping geographic areas
 
Example 3: Charging tax in two overlapping geographic areas
 
Example 4: Providing default tax tables for merchant-calculated shipping
 
Example 5: Alternate tax rules
 
Example 6: Alternate tax rules for items that are always tax-exempt
 
Example 7: Applying a tax rule in multiple geographic areas
 
Example 8: Alternate tax tables for U.K. merchants
 

Example 1: Charging a single tax rate in one state

The following example explains how to charge a single tax rate in one state. The example is for a merchant in Connecticut, where there is a 6 percent sales tax. The example contains a single tax rule. In addition, since shipping charges in Connecticut are taxed, the <shipping-taxed> tag is included in this request with a value of true. (If shipping charges are not subject to tax in a state where you charge tax, you can omit the <shipping-taxed> tag from the tax rule for that state or set the tag's value to false.)


        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0600</rate>
                <tax-area>
                  <us-state-area>
                    <state>CT</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>


Example 2: Charging tax in two non-overlapping geographic areas

The following example demonstrates how to create tax tables if you charge tax in more than one geographic area. In this example, the two areas are Connecticut and Maryland. Since the areas do not overlap – a shipping address can only be associated with one state – the tax rules can be specified in any order. As in the previous example, shipping charges in Connecticut are taxed; however, shipping charges in Maryland are not subject to tax.


        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0600</rate>
                <tax-area>
                  <us-state-area>
                    <state>CT</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

              <default-tax-rule>
                <rate>0.0500</rate>
                <tax-area>
                  <us-state-area>
                    <state>MD</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>


Example 3: Charging tax in two overlapping geographic areas

The following example also demonstrates how to create tax tables if you charge tax in more than one geographic area. However, in this example, the two areas are in the same state.

  • The first area defines a set of zip codes in Manhattan, where there is an 8.375 percent sales tax.
  • The second area defines a rule for charging 4 percent sales tax in the state of New York.

Since Google will select the first tax rule that matches the shipping address for the order, the tax rule that defines the narrower geographic area must be listed first. (See the Ordering Tax Rules in XML Requests section for more information.)


        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>false</shipping-taxed>
                <rate>0.08375</rate>
                <tax-area>
                  <us-zip-area>
                    <zip-pattern>100*</zip-pattern>
                  </us-zip-area>
                </tax-area>
              </default-tax-rule>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0400</rate>
                <tax-area>
                  <us-state-area>
                    <state>NY</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>


Example 4: Providing default tax tables for merchant-calculated shipping

The example below demonstrates how to indicate that you will calculate taxes for an order. This example includes almost the same XML sample as that shown in example 1. However, this example contains two key differences to enable the merchant to calculate taxes:

  • The merchant-calculated attribute of the <tax-tables> tag is set to true.

  • The <merchant-calculations-url> tag is included in this request and specifies the URL to which Google will send a merchant calculation callback request. The value of the tag must be the URL for your web service that performs custom calculations. Learn more about the Merchant Calculations API.


    <checkout-flow-support>
      <merchant-checkout-flow-support>
        <merchant-calculations>
          <merchant-calculations-url>http://www.example.com/calculate</merchant-calculations-url>
        </merchant-calculations>
        <tax-tables merchant-calculated="true">
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0600</rate>
                <tax-area>
                  <us-state-area>
                    <state>CT</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>
      </merchant-checkout-flow-support>
    </checkout-flow-support>

Example 5: Alternate tax rules

This example shows how to create an alternate tax table for an item that is tax-exempt. The tax tables in this example indicate that the merchant charges sales tax in Connecticut and Maryland. In Connecticut, sales of bicycle helmets are tax-exempt. (Google does not return any search results indicating that bicycle helmet sales are also tax-exempt in Maryland.)

In this example, the XML contains an alternate tax table for bicycle helmets. That tax table contains one alternate tax rule, which indicates that Connecticut does not charge tax for items associated with that tax table. Please note that value of the <alternate-tax-table> tag's standalone attribute is set to false, which is that element's default value. As a result, if an item specifies the "bicycle helmets" tax table, and there is no alternate tax rule for the shipping address, Google will use the default tax table to calculate tax for the item. Therefore, if the item is shipped to Connecticut, no tax will be charged. However, if the item is shipped to Maryland, the regular tax rate will be assessed.


    <shopping-cart>
      <items>
        <item>
          <item-name>Bike Helmet</item-name>
          <item-description>Black helmet that is tax-exempt in CT but not MD.</item-description>
          <unit-price currency="USD">49.99</unit-price>
          <quantity>1</quantity>
          <tax-table-selector>bicycle_helmets</tax-table-selector>
        </item>
      </items>
    </shopping-cart>
    <checkout-flow-support>
      <merchant-checkout-flow-support>
        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0600</rate>
                <tax-area>
                  <us-state-area>
                    <state>CT</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

              <default-tax-rule>
                <rate>0.0500</rate>
                <tax-area>
                  <us-state-area>
                    <state>MD</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>

          <alternate-tax-tables>
            <alternate-tax-table standalone="false" name="bicycle_helmets">
              <alternate-tax-rules>
                <alternate-tax-rule>
                  <rate>0</rate>
                  <tax-area>
                    <us-state-area>
                      <state>CT</state>
                    </us-state-area>
                  </tax-area>
                </alternate-tax-rule>
              </alternate-tax-rules>
            </alternate-tax-table>
          </alternate-tax-tables>

        </tax-tables>
      </merchant-checkout-flow-support>
    </checkout-flow-support>


Example 6: Alternate tax rules for items that are always tax-exempt

This example shows how to identify an item that is always tax-exempt, regardless of the shipping address. The tax tables indicate that the merchant charges sales tax in Connecticut and Maryland, and sales of nonprescription drugs are tax-exempt in both states. In this example, the XML contains an alternate tax table for tax-exempt goods, and that tax table does not specify any alternate tax rules. However, since the value of the <alternate-tax-table> tag's standalone attribute is set to true, Google will not calculate taxes for an item if it specifies the tax-exempt tax table and there is no alternate tax rule for the shipping address. Since the item in the example is always tax-exempt for this merchant, the tax table does not need to specify any tax rules.


    <shopping-cart>
      <items>
        <item>
          <item-name>Tylenol Caplets</item-name>
          <item-description>Fast relief without a prescription.</item-description>
          <unit-price currency="USD">7.99</unit-price>
          <quantity>1</quantity>
          <tax-table-selector>tax_exempt</tax-table-selector>
        </item>
      </items>
    </shopping-cart>
    <checkout-flow-support>
      <merchant-checkout-flow-support>
        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.0600</rate>
                <tax-area>
                  <us-state-area>
                    <state>CT</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

              <default-tax-rule>
                <rate>0.0500</rate>
                <tax-area>
                  <us-state-area>
                    <state>MD</state>
                  </us-state-area>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>

          <alternate-tax-tables>
            <alternate-tax-table standalone="true" name="tax_exempt">
              <alternate-tax-rules/>
            </alternate-tax-table>
          </alternate-tax-tables>
        </tax-tables>
      </merchant-checkout-flow-support>
    </checkout-flow-support>


Example 7: Applying a tax rule in multiple geographic areas

This example demonstrates how to use the <tax-areas> tag to apply a tax rule in multiple geographic areas. This example applies the same tax rule in multiple European countries. The same principle could be used to apply a tax rule in multiple U.S. states or zip code ranges.


        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.175</rate>
                <tax-areas>
                  <postal-area>
                    <country-code>DE</country-code>
                  </postal-area>
                  <postal-area>
                    <country-code>ES</country-code>
                  </postal-area>
                  <postal-area>
                    <country-code>GB</country-code>
                  </postal-area>
                </tax-areas>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>
        </tax-tables>


Example 8: Alternate tax tables for U.K. merchants

This example shows a common way to structure tax tables in the United Kingdom. The order includes three items. The first item uses the default tax rate of 17.5 percent, the second item uses a reduced tax rate of 5 percent, and the third item is untaxed. Note that the cost of each item is £10.00. When you click the Checkout button for this order, Google Checkout displays the price for each item inclusive of tax.


    <shopping-cart>
      <items>
        <item>
          <item-name>Regular Test Item</item-name>
          <item-description>Regular Test Item</item-description>
          <unit-price currency="GBP">10.0</unit-price>
          <quantity>1</quantity>
        </item>
        <item>
          <item-name>Reduced Test Item</item-name>
          <item-description>Reduced Test Item</item-description>
          <unit-price currency="GBP">10.0</unit-price>
          <quantity>1</quantity>
          <tax-table-selector>reduced</tax-table-selector>
        </item>
        <item>
          <item-name>Zero Test Item</item-name>
          <item-description>Zero Test Item</item-description>
          <unit-price currency="GBP">10.0</unit-price>
          <quantity>1</quantity>
          <tax-table-selector>tax_exempt</tax-table-selector>
        </item>
      </items>
    </shopping-cart>
    <checkout-flow-support>
      <merchant-checkout-flow-support>
        <tax-tables>
          <default-tax-table>
            <tax-rules>

              <default-tax-rule>
                <shipping-taxed>true</shipping-taxed>
                <rate>0.175</rate>
                <tax-area>
                  <world-area/>
                </tax-area>
              </default-tax-rule>

            </tax-rules>
          </default-tax-table>

          <alternate-tax-tables>
            <alternate-tax-table name="reduced" standalone="true">
              <alternate-tax-rules>
                <alternate-tax-rule>
                  <rate>0.05</rate>
                  <tax-area>
                    <world-area/>
                  </tax-area>
                </alternate-tax-rule>
              </alternate-tax-rules>
            </alternate-tax-table>

            <alternate-tax-table standalone="true" name="tax_exempt">
              <alternate-tax-rules/>
            </alternate-tax-table>
          </alternate-tax-tables>

        </tax-tables>
      </merchant-checkout-flow-support>
    </checkout-flow-support>


XML Tag Definitions

Certain symbols may be displayed next to some subtags in the definitions below. These symbols, and their meanings, are:

? = optional subtag
* = zero or more instances of the subtag

alternate-tax-rule
Definition

The <alternate-tax-rule> tag contains information about a tax rule that should be applied in a particular area. Each tax rule must contain either exactly one <tax-area> tag or exactly one <tax-areas> tag.

Subtag of alternate-tax-rules
Subtags rate, tax-area?, tax-areas?
API Commands Checkout
Content Format Container
Example <alternate-tax-rule>

alternate-tax-rules
Definition

The <alternate-tax-rules> tag contains information about the taxes applied in specific areas, such as states, zip codes or postal codes. The <alternate-tax-rules> element contains a list of one or more <alternate-tax-rule> elements. These rules override the <tax-rules> for an order.

Subtag of alternate-tax-table
Subtags alternate-tax-rule*
API Commands Checkout
Content Format Container
Example <alternate-tax-rules>

alternate-tax-table
Definition

The <alternate-tax-table> tag contains information about an individual tax table, which constitutes a set of alternate-tax-rules.

Attributes
NameFormatDescription
name String The name attribute value contains a string that can be used to identify a tax table or shipping method. The attribute value must be at least one non-space character and may not be longer than 255 characters.
standalone Boolean The standalone attribute indicates how taxes should be calculated if there is no matching alternate-tax-rule for the given state, zip code or country area. If this attribute's value is TRUE and there is no matching alternate-tax-rule, the tax amount will be zero. If the attribute's value is FALSE and there is no matching alternate-tax-rule, the tax amount will be calculated using the default tax table.
Subtag of alternate-tax-tables
Subtags alternate-tax-rules
API Commands Checkout
Content Format Container
Example <alternate-tax-table standalone="true" name="Ventura County">

alternate-tax-tables
Definition

The <alternate-tax-tables> tag contains a list of one or more alternate-tax-table elements. Alternate tax tables override the rules defined in the default-tax-table.

Subtag of tax-tables
Subtags alternate-tax-table*
API Commands Checkout
Content Format Container
Example <alternate-tax-tables standalone="true" name="Ventura County">

country-code
Definition

As a subtag of <postal-area>, the <country-code> tag specifies a country associated with a tax areashipping restriction or address filter. In all other contexts, the <country-code> tag identifies the country code associated with an order's billing address or shipping address. The value of this tag must be a two-letter ISO 3166 country code.

Subtag of buyer-billing-address, buyer-shipping-address, anonymous-address, billing-address, postal-area
API Commands New Order Notification, Risk Information Notification, Merchant Calculation Callback
Content Format String
Example <country-code>US</country-code>

default-tax-rule
Definition

The <default-tax-rule> tag contains information about a tax rule that should be applied in a particular area. Each tax rule must contain either exactly one <tax-area> tag or exactly one <tax-areas> tag.

Subtag of default-tax-table
Subtags shipping-taxed?, rate, tax-area?, tax-areas?
API Commands Checkout
Content Format Container
Example <default-tax-rule>

default-tax-table
Definition

The <default-tax-table> tag contains the default set of rules that should be used to calculate the tax for an order.

Subtag of tax-tables
Subtags tax-rules
API Commands Checkout
Content Format Container
Example <default-tax-table>

mode
Definition

The <mode> tag specifies the method that will be used to round monetary values to two decimal places. This tag may contain any of the following values, each of which is defined in the Java 1.5 specification for the RoundingMode enumeration.RoundingMode enumeration.

  • UP - This mode rounds numbers away from zero. For example, the number 1.111 would be rounded to 1.12.

  • DOWN - This mode rounds numbers toward zero. For example, the number 1.666 would be rounded to 1.66.

  • CEILING - This mode rounds numbers toward positive infinity. For positive numbers, the CEILING mode functions identically to the UP rounding mode. For negative numbers, the CEILING mode functions identically to the DOWN rounding mode.

  • HALF_UP - This mode rounds numbers to the nearest digit. However, if the number being rounded is followed by a five and no additional nonzero digits, then then that number will be rounded up. For example, the number 1.165 would be rounded to 1.17. This method is the default rounding mode for U.K. merchants.

  • HALF_DOWN - This mode rounds numbers to the nearest digit. However, if the number being rounded is followed by a five and no additional nonzero digits, then then that number will be rounded down. For example, the number 1.165 would be rounded to 1.16.

  • HALF_EVEN - This mode, which is also known as banker's rounding, is the default rounding mode for U.S. merchants. Banker's rounding is the same as the traditional method of rounding numbers with one exception. In banker's rounding, if the number to be rounded is followed by a five and no additional nonzero digits, the number is rounded to the nearest even number.

Subtag of rounding-policy
API Commands Checkout
Content Format String
Example <mode>HALF_UP</mode>

postal-area
Definition

The <postal-area> tag specifies a geographic region somewhere in the world. As a subtag of <allowed-areas>, the <postal-area> tag contains a country where a particular shipping option is available. The tag may also contain a postal code or range of postal codes in that country where the shipping option is offered. As a subtag of <excluded-areas>, the <postal-area> tag contains a country (and possibly a zip code or range of zip codes within that country) where a particular shipping option is unavailable. As a subtag of <tax-area> or <tax-areas>, the <postal-area> tag contains a country and possibly a zip code or range of zip codes where a tax rule should be applied.

Subtag of allowed-areas, excluded-areas, tax-area, tax-areas
Subtags country-code, postal-code-pattern?
API Commands Checkout
Content Format Complex
Example <postal-area>

postal-code-pattern
Definition

The <postal-code-pattern> tag contains a postal code or a range of postal codes for a specific country. To specify a range of postal codes, use an asterisk as a wildcard operator. For example, you can provide a <postal-code-pattern> value of SW* to indicate that a shipping option is available or a tax rule applies in any postal code beginning with the characters SW.

Subtag of postal-area
API Commands Checkout
Content Format String
Example <postal-code-pattern>94043</postal-code-pattern
<postal-code-pattern>SW*</postal-code-pattern>

rate
Definition

The <rate> tag identifies a tax rate that is expressed as a multiplier.

Subtag of default-tax-rule, alternate-tax-rule
API Commands Checkout
Content Format Double
Example <rate>0.0825</rate>

rounding-policy
Definition

The <rounding-policy> tag contains information about the policy that will be used to round computed monetary values for an order.

Subtag of merchant-checkout-flow-support
Subtags mode, rule
API Commands Checkout
Content Format Container
Example <rounding-policy>

rule
Definition

The <rule> tag indicates when the rounding rule will be applied. Valid values for this tag are PER_LINE and TOTAL. For U.S. merchants, the default value for this tag is TOTAL. For U.K. merchants, the default value for this tag is PER_LINE. The following list explains the meaning of these two values:

  • PER_LINE - This rounding rule indicates that Google should calculate the tax for each line item and round each of those tax values using the specified rounding mode. After each tax value has been rounded, Google should then add the tax values to determine the total tax.

    Note: A line item is comprised of one or more units of the same item. For example, if a shopping cart contains two identical items that each cost $1.00 and the sales tax rate is 7.5 percent, then the total cost of the line item is $2.00 and the total tax for the line item is 15 cents.

  • TOTAL - This rounding rule indicates that Google should calculate the tax for each item and add those tax values to calculate the total unrounded tax amount for the order. Google should then apply the specified rounding mode to the total tax to determine the total tax for the order.

Subtag of rounding-policy
API Commands Checkout
Content Format String
Example <rule>PER_LINE</rule>

shipping-taxed
Definition

The <shipping-taxed> tag indicates whether shipping charges for an order are taxable.

Subtag of default-tax-rule
API Commands Checkout
Content Format Boolean
Example <shipping-taxed>false</shipping-taxed>

state
Definition

The <state> tag identifies a state where a particular tax rule is applied or where a particular shipping option is available or unavailable.

Subtag of us-state-area
API Commands Checkout
Content Format String
Example <state>CA</state>

tax-area
Definition

The <tax-area> tag contains information about a region, such as a state, zip code or country, where a tax rule should be applied. The <tax-areas> tag serves the same purpose as the <tax-area> tag but can identify one or more areas where a single tax rate applies.

Subtag of default-tax-rule, alternate-tax-rule
Subtags world-area?, postal-area?, us-country-area?, us-state-area?, us-zip-area?
API Commands Checkout
Content Format Container
Example <tax-area>

tax-areas
Definition

The <tax-areas> tag contains one or more geographic areas where a tax rule should be applied.

Subtag of default-tax-rule, alternate-tax-rule
Subtags world-area?, postal-area?, us-country-area?, us-state-area?, us-zip-area?
API Commands Checkout
Content Format Container
Example <tax-areas>

tax-rules
Definition

The <tax-rules> tag contains information about the taxes applied in particular regions, such as states, zip codes or countries. The <tax-rules> tag contains a list of one or more <default-tax-rule> elements.

Subtag of default-tax-table
Subtags default-tax-rule*
API Commands Checkout
Content Format Container
Example <tax-rules>

tax-table-selector
Definition

The <tax-table-selector> tag identifies an alternate tax table that should be used to calculate tax for a particular item. The value of the <tax-table-selector> tag should correspond to the value of the name attribute of an alternate-tax-table.

Subtag of item
API Commands Checkout, Merchant Calculation Callback, New Order Notification
Content Format String
Example <tax-table-selector>Ventura County</tax-table-selector>

tax-tables
Definition

The <tax-tables> tag contains information about all of the different rules that may be applied to calculate tax for an order.

Attributes
NameFormatDescription
merchant-calculated Boolean The merchant-calculated attribute contains a Boolean value that indicates whether tax for the order is calculated using a special process.
Subtag of merchant-checkout-flow-support
Subtags default-tax-table, alternate-tax-tables?
API Commands Checkout
Content Format Container
Example <tax-tables>

us-country-area
Definition

As a subtag of <allowed-areas>, the <us-country-area> tag identifies a region of the United States where a particular shipping option is available. As a subtag of <excluded-areas>, the <us-country-area> tag identifies a region of the United States where a particular shipping option is unavailable. As a subtag of <tax-area> or <tax-areas>, the <us-country-area> tag identifies a region of the United States where a tax rule should be applied.

This tag has one required attribute, which identifies the region of the United States.

Attributes
NameFormatDescription
country-area String The country-area attribute identifies a region of the United States. Valid values for this attribute are:
CONTINENTAL_48 - All U.S. states except Alaska and Hawaii
FULL_50_STATES - All U.S. states
ALL - All U.S. postal service addresses, including military addresses, U.S. insular areas, etc.
Subtag of allowed-areas, excluded-areas, tax-area, tax-areas
API Commands Checkout
Content Format Complex
Example <us-country-area country-area="CONTINENTAL_48"/>

us-state-area
Definition

As a subtag of <allowed-areas>, the <us-state-area> tag contains a state where a particular shipping option is available. As a subtag of <excluded-areas>, the <us-state-area> tag contains a state where a particular shipping option is unavailable. As a subtag of <tax-area> or <tax-areas>, the <us-state-area> tag contains a state where a tax rule should be applied.

Subtag of allowed-areas, excluded-areas, tax-area, tax-areas
Subtags state
API Commands Checkout
Content Format Container
Example <us-state-area>

us-zip-area
Definition

As a subtag of <allowed-areas>, the <us-zip-area> tag contains a zip code or range of zip codes where a particular shipping option is available. As a subtag of <excluded-areas>, the <us-zip-area> tag contains a zip code or range of zip codes where a particular shipping option is unavailable. As a subtag of <tax-area> or <tax-areas>, the <us-zip-area> tag contains a zip code or range of zip codes where a tax rule should be applied.

Subtag of allowed-areas, excluded-areas, tax-area, tax-areas
Subtags zip-pattern
API Commands Checkout
Content Format Container
Example <us-zip-area>

world-area
Definition

The <world-area> tag represents the entire world. This tag indicates that a shipping option is available worldwide or that a particular tax rule applies worldwide.

For shipping options, the <world-area> tag can only appear as a subtag of the allowed-areas tag. (Including the <world-area> tag as a subtag of the excluded-areas tag would make the corresponding shipping option unavailable to all shipping addresses.) However, you can use the <world-area> tag to indicate that a shipping option is available worldwide and then identify specific excluded areas where the shipping option is unavailable. Those excluded areas could identify regions that are covered by other shipping options or regions where you do not ship items.

For tax rules, Google Checkout will select the first tax rule that matches the customer's shipping address. As such, if you use the <world-area> tag to define the area where a tax rule applies, that tax rule must appear last in the list of tax rules in your API request. See the XML Examples for Tax Areas to see a feed excerpt that uses the <world-area> tag for tax rules.

Subtag of allowed-areas, tax-area, tax-areas
API Commands Checkout
Content Format Complex
Example <world-area/>

zip-pattern
Definition

The <zip-pattern> tag contains a zip code or a range of zip codes. To specify a range of zip codes, use an asterisk as a wildcard operator. For example, you can specify that a shipping option is available or a tax rule applies to zip codes 94040 through 94049 by entering 9404* as the <zip-pattern> value.

Subtag of us-zip-area
API Commands Checkout
Content Format String
Example <zip-pattern>94043</zip-pattern
<zip-pattern>9404*</zip-pattern>