Skip to main content
Published: October 19 2006, 5:03:00 PMUpdated: November 28 2020, 2:55:33 PM

I am getting the error "To specify non-zero value for the tag SalesTaxPercent you must set "true" for the CheckoutDetailsSpecified tag." returned by my AddItem call.
What is causing this error?


Summary

This error along with several other related warnings can happen when specifying <ShipToLocations>None</ShipToLocations>, usually in conjunction with <ShippingService>LocalDelivery</ShippingService> and the need to charge a Sales Tax in an attempt to indicate that the item cannot be shipped and is available only for pickup.
Unfortunately there is no way to say that an item is for local pickup only, meaning no shipping is available, and charge a Sales Tax at the same time.


Detailed Description


Let's look at a concrete example.
An AddItem request with the following ShippingDetails container:

    <ShippingDetails>
         <ChangePaymentInstructions>true</ChangePaymentInstructions>
         <InsuranceFee currencyID="USD">0</InsuranceFee>
         <InsuranceOption>NotOffered</InsuranceOption>
         <SalesTax>
              <SalesTaxPercent>7</SalesTaxPercent>
              <SalesTaxState>GA</SalesTaxState>
              <ShippingIncludedInTax>false</ShippingIncludedInTax>
         </SalesTax>
         <ShippingServiceOptions>
              <ShippingService>LocalDelivery</ShippingService>
              <ShippingServiceCost currencyID="USD">0</ShippingServiceCost>
              <ShippingServicePriority>1</ShippingServicePriority>
         </ShippingServiceOptions>
         <ShippingType>Flat</ShippingType>
    </ShippingDetails>

and

    <ShipToLocations>None</ShipToLocations>

at the item level or within the shipping service in the above ShippingDetails container.

An AddItem request with the above data is what one might use to try listing an item which cannot be shipped, and must be picked up, and which charges a Sales Tax.
The problem with this type of request is that when you specify <ShipToLocations>None</ShipToLocations>, the <ShippingServiceOptions> container will be ignored since specifying <ShipToLocations>None</ShipToLocations> is interpreted as "this item will not be shipped".

Furthermore, in order to specify Tax information or <UseTaxTable> you must have at least 1 valid domestic shipping service (the equivalent of having "CheckoutDetailsSpecified" in the legacy schema).
Since the <ShippingServiceOptions> container is ignored, the error that is returned is

    <Errors>
         <ShortMessage>Inconsistent tag values provided.</ShortMessage>
         <LongMessage>To specify non-zero value for the tag <SalesTaxPercent> you must set "true" for the <CheckoutDetailsSpecified> tag.</LongMessage>
         <ErrorCode>17524</ErrorCode>
         <SeverityCode>Error</SeverityCode>
         <ErrorParameters ParamID="0">
              <Value>SalesTaxPercent</Value>
         </ErrorParameters>
         <ErrorClassification>RequestError</ErrorClassification>
    </Errors>

Since the root cause of this starts with the use of <ShipToLocations>None</ShipToLocations>, you may think to try removing <ShipToLocations>None</ShipToLocations> from the AddItem request.
Doing so in this scenario will leave an AddItem request with a valid shipping service that has a cost of 0, which will be interpreted as FREE shipping for the "domestic" country corresponding to the site.
The ViewItem page will show FREE shipping, which is not at all the intention.

If you leave <ShipToLocations>None</ShipToLocations> in place, and instead remove the Sales Tax information in the hopes that this blocking error will not happen, you will end up with a listing that has no shipping details, and the following 2 warnings returned which basicallly indicate that the <ShippingDetails> container was dropped since <ShipToLocations>None</ShipToLocations> is interpreted as "no shipping available for this item".

    <Errors>
         <ShortMessage>Ignored tag.</ShortMessage>
         <LongMessage>Tag <CheckoutDetailsSpecified> was dropped and forced to be equal to zero (or false) because item will not be shipped.</LongMessage>
         <ErrorCode>17523</ErrorCode>
         <SeverityCode>Warning</SeverityCode>
         <ErrorParameters ParamID="0">
              <Value>CheckoutDetailsSpecified</Value>
         </ErrorParameters>
         <ErrorClassification>RequestError</ErrorClassification>
    </Errors>
    <Errors>
         <ShortMessage>Item will not be shipped.</ShortMessage>
         <LongMessage>The shipping info is not applicable to Digital Delivery items or shipping location "None" is provided on item level. <ShippingServiceOptions> container is ignored.</LongMessage>
         <ErrorCode>17503</ErrorCode>
         <SeverityCode>Warning</SeverityCode>
         <ErrorParameters ParamID="0">
              <Value><ShippingServiceOptions></Value>
         </ErrorParameters>
         <ErrorClassification>RequestError</ErrorClassification>
    </Errors>


The summary as noted at the beginning of this article is that there is no way to say that an item is for local pickup only, meaning no shipping is available, and charge a Sales Tax at the same time.
Furthermore, the charging of a Sales Tax requires a shipping service to be defined.

How well did this answer your question?
Answers others found helpful