Beruflich Dokumente
Kultur Dokumente
Reference Guide
V2.0.13
Table of Contents
1
2
January 8, 2013
Page 2
of 160
Page 3
of 160
Page 4
of 160
Page 5
of 160
Page 6
of 160
Page 7
of 160
Page 8
of 160
Page 9
of 160
<FulfillmentOrderKey> ..................................................................................101
<FulfillmentStatus> .........................................................................................101
<FulfillmentType> ............................................................................................102
<GiftNote> ...........................................................................................................102
<HasTrackingNumber> ..................................................................................102
<IgnoreStreetLevelErrors> ..........................................................................102
<InsuredAmount> ............................................................................................103
<InventoryType> ..............................................................................................103
<ItemReserved> ................................................................................................103
<LastName> ........................................................................................................103
<LicenseRelationship> ...................................................................................104
<MaxShipDays> .................................................................................................104
<MinShipDays> .................................................................................................104
<PagingCookie> .................................................................................................105
<NavigationToken> .........................................................................................105
<OldSalesOrderKey> .......................................................................................105
<OrderNumber> ...............................................................................................105
<OrderReserved> .............................................................................................105
<OrderType> ......................................................................................................106
<PagingCookie> .................................................................................................106
<Password> ........................................................................................................106
<PaymentDateMin> .........................................................................................106
<PaymentDateMax> ........................................................................................106
<PercentageAlcohol> ......................................................................................107
<PersistOption> ................................................................................................107
<Phone> ...............................................................................................................107
<ProductKey> ....................................................................................................107
<ProductQuantity> ..........................................................................................107
<ProductType> ..................................................................................................108
<ProductUnitPrice> .........................................................................................108
<PurchaseDate> ................................................................................................108
<Quantity>...........................................................................................................109
<QuantityAdjustment> ...................................................................................109
<QuantityType> ................................................................................................109
<Reason> .............................................................................................................109
<ReferenceNumber> .......................................................................................109
<RefundedOrderReference> ........................................................................110
<RegisterID>.......................................................................................................110
<RejectIfAddressSuggested> .......................................................................110
<RuleType> .........................................................................................................110
<SalesAssociatreKey> .....................................................................................111
<SalesOrderKey> ..............................................................................................112
<SalesOrderKeyMin> ......................................................................................112
<SalesOrderKeyMax> ......................................................................................112
<SalesOrderKeys> ............................................................................................112
<SalesType> ........................................................................................................113
SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL
Page 10
of 160
Page 11
of 160
January 8, 2013
Page 12
of 160
1 Revision History
Date
1/20/2006
Revision
1.0.0
Description
First release
Author
Jeff Carroll
2/19/2006
1.0.1
Jeff Carroll
1/10/2007
1.0.2
Jeff Carroll
3/30/2007
1.0.3
5/21/2007
1.0.4
Jeff Carroll
11/28/2007
1.0.5
2/18/2008
1.0.6
Added IgnoreStreetLevelErrors
detail
Added FulfillmentType detail
Added FulfillmentHouse detail
Added Account Credentialing
section
Added GetTaxRate Method
Added CheckAgeOfPerson
Method
Added ValidateAddress Method
Added
CommitSalesOrderUpdateKey
method
Added new response details to
ValidateAddress method
3/13/08
1.0.7
Pawel
Smolarkiewicz
4/14/08
1.0.8
6/5/2008
1.0.9
January 8, 2013
Jeff Carroll
Jeff Carroll
Jeff Carroll
Pawel
Smolarkiewicz
Jeff Carroll
Page 13
of 160
1.0.10
8/05/2008
1.0.11
9/11/2008
1.0.12
10/28/2008
1.0.13
1/2/2009
1.0.14
3/16/2009
1.0.15
January 8, 2013
Pawel
Smolarkiewicz
Jeff Carroll,
Pawel
Smolarkiewicz
Pawel
Smolarkiewicz
Jeff Carroll,
Pawel
Smolarkiewicz
Jeff Carroll,
Pawel
Smolarkiewicz
Jeff Carroll,
Pawel
Smolarkiewicz
Page 14
of 160
8/19/2009
1.0.16
1/20/2011
1.1.0
January 8, 2013
GetTaxRate by destination
address.
Added description for staging and
demo servers
Added tips for using
enumerations
Added GetShippingPreferences
method
Updated staging reference URLs
to reflect stable maintenance
environment
Refined definition of support for
international addresses.
Added improved definition of
handling different response types
Added AddTrackingNumber
method in SalesOrderService
Added details for web service
portal login
Added details for PartnerKey
Added description for Partner
Portal
Added description for Single Sign
On
Updated fields that were changed
from Enumerations to Strings
Added new fields available under
CheckComplianceOfAndCommitS
alesOrder method
Added new fields available under
CheckComplianceOfSalesOrder
method
Added new fields available under
PersistSalesOrder method
Added new fields available under
AddUpdateProduct method
Added details for Wholesale
Services
Added details for
GetSalesTaxRatesByAddress
method
Added the AdjustInventory
method
Added the SetInventory method
Added
CheckTemperatureForecast
method
Added WholesaleService methods
Added FulfillmentService
methods
Removed the WSDL Description
section and replaced it with links
to online documentation
Updated FulfillmentHouse values
Updated ShippingService values
Added RuleType values
Ryan Cook
Mark Hayes
Page 15
of 160
4/1/2011
1.16
5/24/2011
2.0
6/9/2011
2.0.1
7/12/2011
2.0.5
7/25/2011
2.0.6
January 8, 2013
Sam Sexson
Sam Sexson
Sam Sexson
Sam Sexson
Sam Sexson
Page 16
of 160
2.0.7
Added <UpdateMode> to
<AddUpdateProduct>
Added <UpdateMode> to
<AddUpdateBrand>
Sam Sexson
9/12/2011
2.0.8
Sam Sexson
9/29/2011
2.0.9
CalculateSalesTaxDueForOrder
Added .XML sample requests and
responses for
<CalculateSalesTaxDueForOrder>
and <GetSalesTaxByAddress>
Sam Sexson
7/15/2012
2.0.10
Sam Sexson
10/18/2012
2.0.11
Sam Sexson
12/18/2012
2.0.12
Sam Sexson
1/8/2012
2.0.13
Sam Sexson
January 8, 2013
Page 17
of 160
2 Introduction
Dear Integrator,
I would like to personally welcome you to Six88 Solutions and ShipCompliant.
ShipCompliant offers a full spectrum of compliance management tools from realtime compliance checks on orders from any channel to state reports that are
ready to sign and send. This functionality is available for clients shipping alcohol
directly to consumers as well as through wholesale channels.
Our goal for ShipCompliant Web Services is to provide a complete suite of
flexible, easy to use compliance methods that allow you to create a seamless
integration with your solution.
I encourage you to provide any feedback that you have throughout the integration
process. We welcome all comments and suggestions and will use them to make
the experience better for you.
Best Regards,
Sam Sexson
ShipCompliant Partner Services
2.1 Overview
By using ShipCompliant Web Services, third party integrators (hereafter
Integrators) can take advantage of a full suite of methods to manage shipping
compliance from any order system of record in real time.
January 8, 2013
Page 18
of 160
January 8, 2013
Page 19
of 160
Page 20
of 160
January 8, 2013
Page 21
of 160
January 8, 2013
Page 22
of 160
2.7.2 Instructions
Please contact ShipCompliant to receive credentials for logging into the partner
portal. To access the partner portal on the development server, go to
https://portal-dev.shipcompliant.com. To access the partner portal on the
production server, go to https://portal.shipcompliant.com. Enter your Partner
username and password to log in.
The partner portal page contains two sections: Tools (1) and API Activity Log
(2). The Tools section contains links to analytics reports which are designed to
help you monitor the status of orders and activity across all accounts. The API
Activity Log allows you to view the XML requests and responses as seen by
ShipCompliant. Each of these resources is designed to give you insight into how
your systems are communicating with ShipCompliant.
2.7.3 Tools Real-Time Shipment Status Report
The Real-Time Shipment Status Report provides an up to date view of the
shipment status for orders that were recently committed to ShipCompliant.
January 8, 2013
Page 23
of 160
January 8, 2013
Page 24
of 160
January 8, 2013
Page 25
of 160
January 8, 2013
Page 26
of 160
Note: For testing and development purposes, all partners are available in
the Authorize SSO select list on the development environment
(https://ws-dev.shipcompliant.com, https://portaldev.shipcompliant.com). Partners will only be added to this list in
production environments after their single-sign on support is certified by
ShipCompliant.
2.8.3 Implementation
The following code demonstrates the usage of the ShipCompliant API to execute a
single sign on to the development environment. Please create a web service
reference to:
https://ws-dev.shipcompliant.com/Services/1.1/SsoService.asmx
WSDL: https://wsdev.shipcompliant.com/Services/1.1/SsoService.asmx?wsdl
The corresponding portal is: https://portal-dev.shipcompliant.com
January 8, 2013
Page 27
of 160
January 8, 2013
Page 28
of 160
3 Order Lifecycle
Throughout this document, we reference both the shipment status and
compliance status of shipments. We use these status types to ensure that the
appropriate shipments are counted towards reporting and volume limits and to
allow users and systems to update the status throughout the lifecycle of an order.
If tracking numbers are added to a shipment at the time of order entry or after
the fact, the system will automatically track the packages associated with each
shipment via FedEx, UPS and GSO web services. Shipment statuses will be
automatically updated to Shipped when packages are picked up. Once all of the
packages are delivered, the shipment status will be updated to Delivered.
The UpdateShipmentStatus method can be used to update the status of a
shipment as it moves through the order lifecycle.
In a typical workflow, if an order has been taken, but payment has not been
accepted for this order, mark the shipment as InProcess. InProcess shipments do
not count towards reporting, but they do count towards volume limit checks.
PaymentAccepted
If an order has been taken and payment has been accepted for this order, mark it
as PaymentAccepted. This is different than InProcess because these orders will
count towards reports that are based on payment date.
SentToFulfillment
When the shipment is ready for fulfillment (this can be either in-house
fulfillment or via third party logistics company(3PL)), mark the shipment as
SentToFulfillment. This tells the fulfillment operation that the order is ready to
be shipped. SentToFulfillment orders count towards both reports that are based
on ship date as well as reports based on payment date.
Shipped
Shipped shipments are in transit to the destination. Use this status after the order
has been shipped. In a workflow that includes a 3PL, the 3PL will mark the
shipments as Shipped and enter tracking numbers for each package associated
with the shipment. Shipped orders count towards both reports that are based on
ship date as well as reports based on payment date.
Delivered
January 8, 2013
Page 29
of 160
Voided
Shipments with a status of Compliant have been checked for compliance and
found to be compliant, but have not been committed. Committed orders count
towards reports and compliance checks. Uncommitted orders do not count
towards reports and compliance checks and are not visible in the database.
NotCompliant
Shipments with a status of NotCompliant have been checked for compliance and
found to be NOT compliant and have not been committed.
CompliantCommitted
Shipments with a status of CompliantCommitted have been checked for
compliance, found to be compliant and are also committed..
LegacyCommitted
Shipments with a status of LegacyCommitted have either been checked for
compliance and found to be NOT compliant but committed anyway, or saved only
via the PersistSalesOrder method.
4 Rules
We currently define 51 different rule types for checking both the overall
compliance of a supplier and the compliance of each shipment. Listed below are
the 51 rule types and an overview of the compliance checkers for each rule.
Each rule can be applied to any type of region, where a region could be a city,
county, zip code, state, Region (collection of states such as Reciprocal), or
country. For example, a Direct Shipping Prohibited Rule applied to a county in
Florida would indicate that it is a dry county.
January 8, 2013
Page 30
of 160
January 8, 2013
Page 31
of 160
January 8, 2013
Page 32
of 160
Page 33
of 160
January 8, 2013
Page 34
of 160
4.50 Null
The Null RuleType is returned in a response to CheckComplianceOfSalesOrder or
CheckComplianceOfAndCommitSalesOrder methods to indicate messages that
are not rule-specific. For example, if there are no wine products in the shipment,
a Null RuleType response will be returned to indicate that no other rules were
checked. Also, if compliance checks were bypassed because the account is not
enabled for compliance checks, we will return a Null RuleType response to
indicate that checks were bypassed. (Note, ver. 1.1 and 1.2 use the specific Bypass
Compliance Checks rule to indicate an account that does not have compliance
checks enabled, the Null rule type is used for this purpose in v1.0 only)
5 Method Summary
This section outlines a summary of each method available in the ShipCompliant
API. For a full list of method details including the request and response formats,
refer to Appendix D Version 1.2 Highlights in this document. Note that all
WSDL descriptions are available online.
January 8, 2013
Page 35
of 160
January 8, 2013
Page 36
of 160
January 8, 2013
Page 37
of 160
January 8, 2013
Page 38
of 160
January 8, 2013
Page 39
of 160
January 8, 2013
Page 40
of 160
January 8, 2013
Page 41
of 160
Page 42
of 160
Usage: Use this method to update the Key/SKU assigned to a product that is
currently available in the ShipCompliant portal.
5.3.8 UpdateProductWholesalePrices
Description: This method updates the listed Wholesale Prices for an existing
product.
Usage: Use this method to update the listed Wholesale Prices for products that
exist within the ShipCompliant portal by State or in Bulk.
5.3.9 GetProductWholesalePrices
Description: This method returns the current and future Wholesale prices of a
product
Usage: Use this method to review current and future Wholesale prices.
5.3.10 SearchProducts
Description: This method allows you to search Products in the ShipCompliant
database on a number of different criteria such as date created ranges, order
number range, etc. Summary details of Products are returned for the first 100
orders that meet the search criteria.
Usage: Use this method to get Product data. Results are paged, and only the
first 100 results are returned with this method. Use the SearchMoreProducts
method (below) in conjunction with this method to page through the result set.
5.3.11 SearchMoreProducts
Description: This method is used in conjunction with SearchProducts to get
more results from the search that was performed using SearchProducts. This
method will return 100 results each time.
Usage: Only use this method in conjunction with SearchProducts. When there
are more results available from the search, call this method with the token
returned from the SearchProduct results or returned from a subsequent call of
SearchMoreProducts to see the next page of results.
5.3.12 AddUpdateProductInGroup
Description: This method is used to update all products with the same
BrandKey/ProductKey across all suppliers connected to a SuperSupplier.
Usage: Use this method to update all products, across all accounts under a
SuperSupplier, that have the same BrandKey/ProductKey simultaneously.
January 8, 2013
Page 43
of 160
Page 44
of 160
January 8, 2013
Page 45
of 160
January 8, 2013
Page 46
of 160
January 8, 2013
Page 47
of 160
Page 48
of 160
5.8.13 GetProductAvailabilityInAllStates
Description: This method returns the availability of a single product across all
states.
Usage: Use this method to retrieve product availiabilty of a single product
across all states. The response will be based upon the distributors configured for
the product as well as current price postings and product registrations.
5.8.14 PersistInvoice
Description: This method takes in a single invoice in the request and saves the
order after validation without running a compliance check. The validation checks
to see if a duplicate committed invoice already exists and also verifies that each
Product Key/Brand combination already exists in the system. Each invoice can
contain multiple shipments, and each shipment can contain multiple products.
Usage: If you have legacy orders that have already shipped but you want them in
ShipCompliant for accurate reporting and compliance check purposes, use this
method.
5.8.15 VoidInvoice
Description: This method takes in an order number and voids all shipments in
an existing order order.
Usage: Voided shipments do not count towards reporting. Use this method if an
order has been voided. You can also use this method to void an order with
committed shipments before entering a new order with the same order key.
January 8, 2013
Page 49
of 160
January 8, 2013
Page 50
of 160
January 8, 2013
Page 51
of 160
Page 52
of 160
6 Method Details
Note, all ShipCompliant web service methods require credentials to be passed. There are
options for how this can be done and is consistent for all methods. Please see section 7.1
Security for a detailed description.
Method
Name
Description
PreConditions
PostConditions
6.1 AddExternalClubKeys
This method associates one or more External Club Keys to a sales order
shipment.
A sales order with the same sales order key exists in the database with nonvoided shipments.
External Club Key is associated with sales order.
6.1.1 Request
Element
Format
SalesOrderKey
ShipmentKey
ExternalClubKey
String 50
String 50
String 255
Method
Name
Description
PreConditions
PostConditions
Required
V1.0
V1.1
Y
Y
N/A
N/A
N/A
N/A
V1.2
Y
N
Y
6.2 AddExternalOfferKeys
This method associates one or more External Club Keys to a sales order
shipment.
A sales order with the same sales order key exists in the database with nonvoided shipments.
External Club Key is associated with sales order.
6.2.1 Request
Element
Format
SalesOrderKey
ExternalOfferKey
String 50
String 255
Required
V1.0
V1.1
Y
Y
N/A
N/A
V1.2
Y
Y
Method
Name
6.3 AddOrRemoveTag
Description
PreConditions
The <Mode> field indicates the action to be taken. Available values are Add
and Remove.
A sales order with the same sales order key exists in the database with nonvoided shipments.
PostConditions
January 8, 2013
Page 53
of 160
Format
Tag
SalesOrderKey
Mode
String 255
String 50
Enumeration
Method Name
V1.2
Y
Y
Y
6.4 PersistSalesOrder
Description
Pre-Conditions
Post-Conditions
This method takes in a single sales order in the request and saves the
order after validation without running a compliance check. The
validation checks to see if a duplicate committed sales order already
exists and also verifies that each Product Key/Brand combination
already exists in the system. Each sales order can contain multiple
shipments, and each shipment can contain multiple packages and
multiple products. Third party address validation is performed on the
shipping addresses (see Section 12, Address Validation) to ensure
compliance data accuracy.
A sales order with the same sales order key can not exist in the database
with non-voided shipments. An active product with the specified
product key and brand key must already exist in the system.
A sales order is committed to the database if there is not a duplicate
sales order with one or more committed shipments. This sales order will
not be checked for compliance, but will count towards volume limits
and reporting.
6.4.1 Request
Element
RejectIfAddressSuggested
IgnoreStreetLevelErrors
PersistOption
Billing: City
Billing: Company
Billing: Country
Billing: County
Billing: DateOfBirth (Billing)
Billing: Fax
Billing: FirstName
Billing: LastName
Billing: Phone
Billing: Email
Billing: State
Billing: Street1
Billing: Street2
Billing: Zip1
Billing: Zip2
CustomerKey
CashierKey
SalesOrderDiscount
ExternalCustomerKey
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
Format
Boolean
Boolean
Enumeration
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
String 50
String
Amount: Decimal, Code: String,
Type: String
String
Required
V1.0
V1.1
Y
Y
Y
Y
Y
Y
Y
Y
N
N
N
N
N
N
Y
Y
N
N
Y
Y
Y
Y
N
N
N
N
Y
Y
Y
Y
N
N
Y
Y
N
N
Y
Y
N/A
N/A
N/A
N/A
N/A
N/A
Page 54
V1.2
Y
Y
Y
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
Y
N
N
N
of 160
January 8, 2013
String
String
Enumeration
Enumeration
Amount: Decimal, SubType:
String, Type: String,
TransactionID, String
DateTime
String
String
String
String
String 50
Double
String
Amount: Decimal, Code: String,
Type: String
String
String 50
Enumeration (V1.0) | String 50
(V1.1, 1.2)
String
String
String
String 1024
Double (V1.0, 1.1)
Double (V1.2)
Double (V1.2)
Enumeration (V1.0) | String 50
(V1.1, 1.2)
DateTime
String 50
Enumeration
N/A
N/A
N
Y
N/A
N/A
N/A
N
Y
N/A
N
N
N
Y
N
N
N/A
N/A
N/A
N/A
Y
N/A
N/A
N/A
N
N/A
N/A
N/A
N/A
Y
N
N/A
N/A
N
N
N
N
N
Y
N
N
N
N/A
N
N
N/A
N
N
N
N
N
N/A
N/A
N/A
N
N
N/A
N/A
Y
N
N
N
N
N
N/A
N/A
Y
N
N
N
N
N
N
N
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
Page 55
of 160
String 50
String 50
String 100
Int
Double
String
Amount: Decimal, Code: String,
Type: String
String 50
N
N
Y
Y
N
N/A
N/A
N
N
Y
Y
N
N/A
N/A
N
N
Y
Y
N
N
N
6.5 CheckComplianceOfSalesOrder
(SalesOrder Service)
Description
Pre-Conditions
Post-Conditions
6.5.1
This method takes in a single sales order in the request and checks the
order for compliance after performing the same validation as
PersistSalesOrder. The sales order will not be committed via this
method. Use CommitSalesOrder to persist a sales order that was
previously checked for compliance.
A sales order with the same sales order key can not exist in the database
with non-voided shipments. An active product with the specified
product key and brand key must already exist in the system.
The sales order is checked for compliance if there is not a duplicate
sales order with one or more committed shipments. The method will
return a full compliance result set. The order will not be committed to
the database and thus will not count towards volume limits and
reporting until a CommitSalesOrder call is made to commit this order.
Request
Element
Format
RejectIfAddressSuggested
IgnoreStreetLevelErrors
IncludeSalesTaxRate
PersistOption
Billing: City
Billing: Company
Billing: Country
Billing: County
Billing: DateOfBirth (Billing)
Billing: Fax
Billing: FirstName
Billing: LastName
Billing: Phone
Billing: Email
Billing: State
Billing: Street1
Billing: Street2
Billing: Zip1
Billing: Zip2
CustomerKey
CashierKey
SalesOrderDiscount
Boolean
Boolean
Boolean
Enumeration
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
String 50
String
Amount: Decimal, Code: String,
January 8, 2013
Required
V1.0
V1.1
Y
Y
Y
Y
N
N
Y
Y
Y
Y
N
N
N
N
N
N
Y
Y
N
N
Y
Y
Y
Y
N
N
N
N
Y
Y
Y
Y
N
N
Y
Y
N
N
Y
Y
N/A
N/A
N/A
N/A
Page 56
V1.2
Y
Y
N
Y
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
Y
N
N
of 160
ExternalCustomerKey
ExternalOfferKeys
ExternalSalesOrderKey
FulfillmentType
OrderType
Payment
PurchaseDate
ReferenceNumber
RefundedOrderReference
RegisterID
SalesAssociateKey
SalesOrderKey
SalesTaxCollected
SettlementBatchNumber
ShipmentDiscount
ExternalClubKeys
FulfillmentHouse
FulfillmentAccount
FulfillmentExceptionReason
FulfillmentExceptionType
FulfillmentStatus
Freight
Shipping
Handling
LicenseRelationship
ShipDate
ShipmentKey
ShipmentStatus
ShippingService
InsuredAmount
GiftNote
SpecialInstructions
Ship To: City
Ship To:Company
Ship To:County
Ship To:Country
Ship To:DateOfBirth
Ship To:Fax
Ship To:FirstName
Ship To:LastName
Ship To:Phone
Ship To:Email
Ship To:State
Ship To:Street1
Ship To:Street2
Ship To:Zip1
January 8, 2013
Type: String
String
String
String
Enumeration
Enumeration
Amount: Decimal, SubType:
String, Type: String,
TransactionID: String
DateTime
String
String
String
String
String 50
Double
String
Amount: Decimal, Code: String,
Type: String
String
Enumeration (V1.0) | String 50
(V1.1, 1.2)
String 50
String
String
String
Double (V1.0, 1.1)
Double (V1.2)
Double (V1.2)
Enumeration (V1.0) | String 50
(V1.1, 1.2)
DateTime
String 50
Enumeration (V1.0) | String 50
(V1.1, 1.2)
Enumeration
Double
String 1024
String 1024
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
N/A
N/A
N/A
N
Y
N/A
N/A
N/A
N/A
N
Y
N/A
N
N
N
N
Y
N
Y
N/A
N/A
N/A
N/A
Y
N/A
N/A
N/A
Y
N/A
N/A
N/A
N/A
Y
N
N/A
N/A
Y
N
N
N
N
Y
N
N
N
N/A
N
N/A
N
N
N
N
N/A
N/A
N/A
N
N/A
N/A
Y
N
N
N
N/A
N
N/A
N/A
Y
N
N
N
N
N
N
N
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
Page 57
of 160
String 20
String 50
String 50
String 100
Int
Double
String
Amount: Decimal, Code: String,
Type: String
String 50
N
N
N
Y
Y
N
N /A
N/A
N
N
N
Y
Y
N
N
N
6.6 CheckComplianceOfAndCommitSalesOrder
This method is similar to CheckComplianceOfSalesOrder but will also persist
sales orders after they are checked for compliance.
A sales order with the same sales order key can not exist in the database with
non-voided shipments. An active product with the specified product key and
brand key must already exist in the system.
The sales order is checked for compliance if there is not a duplicate sales order
with one or more committed shipments. The method will return a full
compliance result set. The shipments in the sales order will be committed
according to the value of the CommitOption. AllShipments indicates that all
shipments in the sales order will be committed. CompliantShipments
indicates that only the non-committed compliant shipments will be
committed. If a CommitOption is not specified, zero shipments will be
committed. If this last option is specified, the call to this method is logically
equivalent to the CheckComplianceOfSalesOrder method.
6.6.1 Request
Element
Format
RejectIfAddressSuggested
IgnoreStreetLevelErrors
PersistOption
CommitOption
IncludeSalesTaxRates
Billing: City
Billing: Company
Billing: Country
Billing: County
Billing: DateOfBirth (Billing)
Billing: Fax
Billing: FirstName
Billing: LastName
Billing: Phone
Billing: Email
Billing: State
Billing: Street1
Billing: Street2
Billing: Zip1
Billing: Zip2
CustomerKey
CashierKey
Boolean
Boolean
Enumeration
Enumeration
Boolean
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
String 50
String
January 8, 2013
N
N
N
Y
Y
N
N/A
N/A
Required
V1.0
V1.1
Y
Y
Y
Y
Y
Y
Y
Y
N/A
N/A
Y
Y
N
N
N
N
N
N
Y
Y
N
N
Y
Y
Y
Y
N
N
N
N
Y
Y
Y
Y
N
N
Y
Y
N
N
Y
Y
N/A
N/A
Page 58
V1.2
Y
Y
Y
Y
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
Y
N
of 160
January 8, 2013
N/A
N/A
N/A
N/A
N/A
N
Y
N/A
N/A
N/A
N/A
N
Y
N/A
N
N
N
N
Y
N
Y
N/A
N/A
N/A
N/A
Y
N/A
N/A
N/A
Y
N/A
N/A
N/A
N/A
Y
N
N/A
N/A
Y
N
N
N
N
Y
N
N
N
N/A
N
N/A
N
N
N
N
N/A
N/A
N/A
N
N/A
N/A
Y
N
N/A
N/A
N/A
N
N/A
N/A
Y
N
N
N
N
N
N
N
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
N
N
N
Y
N
N
N
Y
N
Y
Y
N
N
Y
Y
N
Page 59
of 160
PostConditions
January 8, 2013
Y
N
N
N
Y
Y
N
N
N
The shipments in the sales order are marked as committed according to the
CommitOption specified in the request. If the CommitOption is set to
AllShipments, all of the shipments will be marked as committed. If
CompliantShipments is the value of the CommitOption, only the noncommitted compliant shipments in the sales order will be committed. If the
CommitOption is not specified then zero shipments will be marked as
committed. This last option is provided in the enumeration for two reasons:
first, it has relevance in the CheckComplianceOfAndCommitSalesOrder
method; second, it allows the integrator to get the commit status of the
shipments in a sales order without committing any of them.
SalesTaxCollected
PreConditions
Y
N
N
N
Y
Y
N
N/A
N/A
This method takes in a Sales Order Key in the request and saves the order if it
has previously been checked for compliance.
A sales order with the same sales order key exists in the database with nonvoided shipments.
CommitOption
SalesOrderKey
ExternalSalesOrderKey
Payment
Description
Y
N
N
N
Y
Y
N
N/A
N/A
6.7 CommitSalesOrder
6.7.1 Request
Element
Method
Name
String 20
String 20
String 50
String 50
String 100
Int
Double
String
Amount: Decimal, Code: String,
Type: String
String 50
Format
Enumeration
String 50
String
Amount: Decimal, SubType:
Enum, TransactionID: String,
Type: Enum
Decimal
Required
V1.0
V1.1
Y
Y
Y
Y
N/A
N/A
N/A
N/A
N/A
V1.2
Y
Y
N
N
N
6.8 CommitSalesOrderUpdateKey
This method takes in both an old Sales Order Key and a new Sales Order Key
in the request and saves the order if it has previously been checked for
compliance.
A sales order with the same sales order key exists in the database with nonvoided shipments.
The sales order is marked as committed according to the CommitOption
specified in the request. If the CommitOption is set to AllShipments, all of
the shipments will be marked as committed. If CompliantShipments is the
value of the CommitOption, only the non-committed compliant shipments in
the sales order will be committed. If the CommitOption is not specified then
Page 60
of 160
Format
Enumeration
String 50
String
String 50
Amount: Decimal, SubType:
Enum, TransactionID: String,
Type: Enum
Decimal
String 50
String 50
String 50
PostConditions
Required
V1.0
V1.1
Y
Y
N
N
Y
Y
V1.2
Y
N
Y
6.10 GetSalesOrder
This method takes in a Sales Order Key and returns detailed data about the
sales order, including compliance status.
A sales order with the same sales order key exists in the database with nonvoided shipments.
Detailed order information is returned in the response.
6.10.1 Request
Element
Format
SalesOrderKey
String 50
January 8, 2013
If shipment keys are specified, the tracking number will be stored with the
appropriate shipments. If a shipment key is not specified, and there is only
one shipment belonging to the SalesOrder, the tracking numbers will be
stored with the shipment.
SalesOrderKey
ShipmentKey
TrackingNumbers
PreConditions
This method takes in a salesorder key, an optional shipment key, and an array
of one or more tracking numbers (FedEx or UPS). The tracking numbers are
added to the appropriate shipments.
A sales order with the same sales order key exists in the database with nonvoided shipments.
Format
Description
N/A
V1.2
Y
Y
N
Y
N
6.9 AddTrackingNumber
Element
Method
Name
Required
V1.0
V1.1
Y
Y
Y
Y
N/A
N/A
Y
Y
N/A
N/A
Required
V1.0
V1.1
Y
Y
Page 61
V1.2
Y
of 160
6.11 GetSalesOrderStatus
This method takes in a Sales Order Key and returns the compliance status of
the sales order and each shipment within the order.
A sales order with the same sales order key exists in the database with nonvoided shipments.
Compliance status information is returned in the response.
6.11.1 Request
Element
Format
SalesOrderKey
String 50
Method
Name
Description
PreConditions
PostConditions
This method takes in a sales order key and voids all shipments in an existing
sales order.
A sales order with the same sales order key exists in the database with nonvoided shipments.
All shipments in the sales order are voided. These shipments will no longer
count towards volume limits and reporting. Voiding a sales order is a
permanent action that can not be reversed.
Format
SalesOrderKey
String 50
Description
PreConditions
PostConditions
SalesOrderKey
ShipmentKey
ShipmentStatus
String 50
Enumeration
Enumeration
January 8, 2013
V1.2
Y
This method takes in a sales order key and a shipment key to update the
shipment status of a shipment.
A sales order with the specified key exists and a non-voided shipment with
the specified key exist in the database.
Format
Description
Required
V1.0
V1.1
Y
Y
6.13 UpdateShipmentStatus
6.13.1 Request
Element
Method
Name
V1.2
Y
6.12 VoidSalesOrder
6.12.1 Request
Element
Method
Name
Required
V1.0
V1.1
Y
Y
Required
V1.0
V1.1
Y
Y
Y
Y
Y
Y
V1.2
Y
Y
Y
6.14 AddUpdateProduct
This method checks to see if a product with the same product key and brand
key already exists. If one does not exist, it will add the product with the
Page 62
of 160
PreConditions
specified information. If a product exists with the same product key and
brand key, but is not referenced by any shipments, the product will be
updated with the specified information. If a product exists with the same
product key and brand key, and is referenced by one or more shipments, the
product will not be updated.
An enabled product with the same product key and brand key that is
referenced by one or more shipments does not exist in the database.
PostConditions
A new product is added if one did not exist. If one did exist but did not have
any shipments associated with it, the product fields are updated.
6.14.1 Request
Element
Age
BrandKey
DefaultCase
Description
Flavor
GTIN
Label
NABCA
PercentageAlcohol
ProductKey
ProductType
ProductDistribution
SCC
UNIMERC
UnitPrice
DefaultRetailUnitPrice
DefaultRetailCasePrice
UPC
Varietal
Vintage
VolumeAmount
VolumeUnit
UpdateMode
Method
Name
Format
Int
String 50
String 50
String 50
String 50
String 50
String 50
String 50
Double
String 100
Enumeration (V1.0) |String 50
(V1.1, 1.2)
String
String 50
String 50
Double
Double
Double
String 50
String 50
Int
Double
Enumeration (V1.0) |String 50
(V1.1, 1.2)
Enumeration
Required
V1.0
V1.1
N/A
N/A
Y
Y
N
N
N
N
N/A
N/A
N/A
N
N/A
N
N/A
N
N
N
Y
Y
Y
Y
V1.2
N
N
N
N
N
N
N
N
N
Y
Y
N/A
N/A
N/A
Y
N/A
N/A
N/A
N
N
Y
Y
N/A
N
N
Y
N/A
N/A
N
N
N
Y
Y
Y
N
N
N/A
N
N
N
N
N
Y
Y
N/A
N/A
6.15 AddUpdateProductInGroup
PreConditions
This method checks to see if a product with the same product key and brand
key already exists. If one does not exist, it will add the product with the
specified information. If a product exists with the same product key and
brand key, but is not referenced by any shipments, the product will be
updated with the specified information. If a product exists with the same
product key and brand key, and is referenced by one or more shipments, the
product will not be updated.
An enabled product with the same product key and brand key that is
referenced by one or more shipments does not exist in the database.
PostConditions
A new product is added if one did not exist. If one did exist but did not have
any shipments associated with it, the product fields are updated.
Description
January 8, 2013
Page 63
of 160
6.15.1 Request
Element
Age
BrandKey
DefaultCase
Description
Flavor
GTIN
Label
NABCA
PercentageAlcohol
ProductKey
ProductType
ProductDistribution
SCC
UNIMERC
UnitPrice
DefaultRetailUnitPrice
DefaultRetailCasePrice
UPC
Varietal
Vintage
VolumeAmount
VolumeUnit
UpdateMode
Method
Name
Description
PreConditions
PostConditions
Format
Int
String 50
String 50
String 50
String 50
String 50
String 50
String 50
Double
String 100
Enumeration (V1.0) |String 50
(V1.1, 1.2)
String
String 50
String 50
Double
Double
Double
String 50
String 50
Int
Double
Enumeration (V1.0) |String 50
(V1.1, 1.2)
Enumeration
V1.2
N
N
N
N
N
N
N
N
N
Y
Y
N/A
N/A
N/A
Y
N/A
N/A
N/A
N
N
Y
Y
N/A
N
N
Y
N/A
N/A
N
N
N
Y
Y
Y
N
N
N/A
N
N
N
N
N
Y
Y
N/A
N/A
6.16 DeleteProduct
This method checks to see if a product with the same product key and brand
key already exists. If one exists and it is not referenced by any shipments, the
system will permanently remove the product from the database. If one exists
and it is referenced by one or more shipments, the system will disable the
product for future use, but the shipments will still reference that product
information.
An enabled product with the same product key and brand key exists.
If the product was referenced by one or more shipments, it will be disabled
and the shipments will still reference the original product. A new product
could then be added with the same product key and brand key. If the product
is not referenced by any shipments, it will be permanently removed from the
database.
6.16.1 Request
Element
Format
BrandKey
ProductKey
String 50
String 100
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
Y
Y
N
N
N
N
N/A
N/A
N/A
N
N/A
N
N/A
N
N
N
Y
Y
Y
Y
Required
V1.0
V1.1
N
N
Y
Y
Page 64
V1.2
N
Y
of 160
6.17 GetProduct
This method takes in a product key and a brand key and returns the product
details.
An enabled product with the same product key and brand key exists.
Product details are returned.
6.17.1 Request
Element
Format
BrandKey
ProductKey
String 50
String 100
Method
Name
Description
PreConditions
PostConditions
This method returns inventory details for the specified criteria. The method
may be called with an empty criteria to return all products with Available
inventory.
The supplier accounts for which inventory is being requested must be
configured to retrieve inventory from integrated fulfillment locations.
Product inventory details are returned.
Format
BrandKey
ProductKey
FulfillmentAccount
InventoryType
String 50
String 100
String 50
Enumeration
Description
PreConditions
PostConditions
Required
V1.0
V1.1
N
N
N
N
N
N
N
N
V1.2
N
N
N
N
6.19 AdjustInventory
This method adjusts (increments or decrements) one or several logical
inventory levels.
An enabled product with the same product key and brand key exists. If the
fulfillment location and account are specified in the request they must also be
properly configured in the supplier account.
Product inventory details are updated based upon the previous level and the
adjustment amount.
6.19.1 Request
Element
FulfillmentLocation
FulfillmentAccount
BrandKey
January 8, 2013
V1.2
N
Y
6.18 GetInventoryDetails
6.18.1 Request
Element
Method
Name
Required
V1.0
V1.1
N
N
Y
Y
Format
Enumeration (V1.0) |String 50
(V1.1, 1.2)
String 50
String 50
Required
V1.0
V1.1
N/A
Y
N/A
N/A
N
N
Page 65
V1.2
Y
N
N
of 160
String 100
Enumeration
Double
Boolean
N/A
N/A
N/A
N/A
Y
Y
Y
Y
Y
Y
Y
Y
Method
Name
6.20 SetInventory
Description
This method sets the logical inventory level for one or more products.
PreConditions
An enabled product with the same product key and brand key exists. If the
fulfillment location and account are specified in the request they must also be
properly configured in the supplier account.
Product inventory details are overwritten with the quantity specified in the
request.
PostConditions
6.20.1 Request
Element
FulfillmentLocation
FulfillmentAccount
EffectiveDate
ClearExistingInventory
BrandKey
ProductKey
Type
Quantity
AllowResultingNegativeQuantity
Format
Enumeration (V1.0) |String 50
(V1.1, 1.2)
String 50
DateTime
Boolean
String 50
String 100
Enumeration
Double
Boolean
Required
V1.0
V1.1
N/A
Y
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N
N
Y
N
Y
Y
Y
Y
V1.2
Y
N
N
Y
N
Y
Y
Y
Y
Method
Name
6.21 ChangeProductKey
Description
PreConditions
An enabled product with the same product key and brand key exists.
PostConditions
6.21.1 Request
Element
Format
BrandKey
CurrentProductKey
NewProductKey
String 50
String 100
String 100
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
V1.2
N
Y
Y
Method
Name
6.22 ClearAllPrices
Description
This method can be used to clear all prices for a specified product and FOB.
PreConditions
An enabled product with the same product key and brand key exists with a
future effective wholesale price.
January 8, 2013
Page 66
of 160
6.22.1 Request
Element
BrandKey
FOBKey
String 50
String 20 (if not indicated, will
clear data for all FOB points)
String 100
2 digit ISO state code.
ProductKey
Region
Method
Name
Description
PreConditions
PostConditions
Format
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
V1.2
N
N
Y
Y
6.23 ClearFuturePrices
This method can be used to clear only future prices for a specified product
and FOB.
An enabled product with the same product key and brand key exists with a
future effective wholesale price.
Product future wholesale prices are removed.
6.23.1 Request
Element
BrandKey
FOBKey
Format
String 50
String 20 (if not indicated, will
clear data for all FOB points)
String 100
2 digit ISO state code.
ProductKey
Region
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
V1.2
N
N
Y
Y
Method
Name
6.24 UpdateProductWholesalePrices
Description
This method can be used to update Wholesale Prices for an existing product.
PreConditions
An enabled product with the same product key and brand key exists.
PostConditions
6.24.1 Request
Element
BrandKey
ProductKey
CasePrices
January 8, 2013
Format
String 50
String 100
StateCode: 2 digit ISO state
code(Optional)(if not
indicated, prices are applied to
all states),
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
Page 67
V1.2
N
Y
Y
of 160
6.25 GetProductWholesalePrices
Description
This method can be used to retrieve Wholesale Prices for an existing product.
PreConditions
An enabled product with the same product key and brand key exists.
PostConditions
6.25.1 Request
Element
BrandKey
ProductKey
FOBKey
StateCode
IncludeFuturePrices
Method
Name
Description
PreConditions
PostConditions
Format
String 50
String 100
String 20 (if not indicated, will
return Default FOB data only)
2 digit ISO state code (if not
provided, will return data for
all states)
Boolean (Optional: If not
specified, defaults to false
V1.2
N
Y
N
N/A
N/A
N/A
N/A
6.26 SearchProducts
This method can be used to retrieve product data for one or more existing
products.
An enabled product exists.
Product data is returned. This data is paged with 100 results per page. For
additional pages, please utilize
6.26.1 Request
Element
Format
BrandKey
ProductType
LastUpdateBeginDate
LastUpdateEndDate
String 50
String 50
Datetime
Datetime
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Page 68
V1.2
N
N
N
N
of 160
Method Name
6.27 AddUpdateBrand
Description
This method checks to see if a brand with the same key already
exists. If one does not exist, it will add the brand with the specified
name. If a brand exists with the same brand key then the brand
name will be updated.
Pre-Conditions
None.
Post-Conditions
6.27.1 Request
Element
Format
BrandKey
BrandName
City
Country
Name
State
Street1
Street2
Zip
ThisBrandIsBottledByAThirdParty
ThisBrandIsProducedByAThirdParty
ThisBrandOperatesUnderATradeName
ThisBrandWasAcquiredFromAThirdParty
UpdateMode
String 50
String 50
String 50
String 50
String 50
String 50
String 50
String 50
String 50
Boolean
Boolean
Boolean
Boolean
Enumeration
Method Name
Required
V1.0
V1.1
Y
Y
Y
Y
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
V1.2
Y
Y
N
N
N
N
N
N
N
N
N
N
N
N
6.28 AddUpdateBrandInGroup
Description
This method checks to see if a brand with the same key already
exists. If one does not exist, it will add the brand with the specified
name. If a brand exists with the same brand key then the brand
name will be updated.
Pre-Conditions
None.
Post-Conditions
6.28.1 Request
Element
Format
BrandKey
BrandName
City
Country
Name
String 50
String 50
String 50
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
Y
Y
Y
Y
N/A
N/A
N/A
N/A
N/A
N/A
Page 69
V1.2
Y
Y
N
N
N
of 160
Method
Name
Description
PreConditions
PostConditions
String 50
String 50
String 50
String 50
Boolean
Boolean
Boolean
Boolean
Enumeration
FulfillmentExceptionType
Reason
SalesOrderKey
ShipmentKey
Enumeration
String 50
String 50
String 50
PreConditions
PostConditions
N
N
N
N
N
N
N
N
N
Format
Description
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
6.29 SetFulfillmentException
6.29.1 Request
Element
Method
Name
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Required
V1.0
V1.1
Y
Y
N
N
Y
Y
N
N
V1.2
Y
N
Y
N
6.30 ClearFulfillmentException
This method is used to clear a previously existing exception during
fulfillment. To update the status of a single shipment a SalesOrderKey and
ShipmentKey must be specified. To update all shipments in an order just the
SalesOrderKey should be specified.
The shipments must have a pre-existing exception and be committed and not
voided in ShipCompliant.
The shipments fulfillment status is updated.
6.30.1 Request
Element
Format
ClearFulfillmentExceptionType
SalesOrderKey
ShipmentKey
Enumeration
String 50
String 50
Required
V1.0
V1.1
Y
Y
Y
Y
N
N
Method
Name
6.31 GetPossibleFulfillmentHouses
January 8, 2013
Page 70
V1.2
Y
Y
N
of 160
6.31.1 Request
Element
Format
ReturnOnlyActiveForSupplier
Boolean
Method
Name
Description
PreConditions
PostConditions
Description
PreConditions
PostConditions
Description
Format
Required
V1.0
V1.1
V1.2
6.33 GetPossibleShippingService
This method returns all currently recognized Shipping Service code values
and descriptions.
None.
All possible Carrier Codes returned.
6.33.1 Request
Element
Method
Name
V1.2
N
6.32 GetPossibleRuleTypes
6.32.1 Request
Element
Method
Name
Required
V1.0
V1.1
N/A
N
Format
Required
V1.0
V1.1
V1.2
6.34 ValidateAddress
This method takes in full a address and validates it using multiple address
service lookups. Suggestions and error codes will be returned if applicable. If
a valid request is made, the service returns an AddressStatus result of:
-AddressOutOfRange
-AddressSuggested
-ComponentMismatch
-MultipleMatches
-NonDeliverableAddress
-NoStreetData
January 8, 2013
Page 71
of 160
PreConditions
January 8, 2013
Page 72
of 160
None.
6.34.1 Request
Element
City
Company
County
Country
DateOfBirth
Fax
FirstName
LastName
Phone
Email
State
Street1
Street2
Zip1
Zip2
Method
Name
Description
PreConditions
PostConditions
Format
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
This method takes a destination zip code and a date range for the
temperature forecast. It will return the forecast for one or more days based
on the range as well as a shipping decision based upon the shipping
preferences of the supplier.
None.
None.
Format
DestinationZipcode
MinShipDays
ManShipDays
String 5
Integer
Integer
Description
V1.2
Y
N
N
N
Y
N
N
N
N
N
Y
Y
N
Y
N
6.35 CheckTemperatureForecast
6.35.1 Request
Element
Method
Name
Required
V1.0
V1.1
Y
Y
N
N
N
N
N
N
Y
Y
N
N
N
N
N
N
N
N
N
N
Y
Y
Y
Y
N
N
Y
Y
N
N
Required
V1.0
V1.1
N/A
Y
N/A
N
N/A
N
V1.2
Y
N
N
6.36 CheckAgeOfPerson
This method uses a third party service to run an online age verification check.
Note the supplier must first enable age checks via the ShipCompliant Portal.
Also note the age check providers produce more accurate results if DOB is
specified, but it is an optional field. If a valid request is made, the service
returns an AgeStatus result of:
-IsOfAge
-IsNotOfAge
-CouldNotBeConfirmed
January 8, 2013
Page 73
of 160
PreConditions
PostConditions
6.36.1 Request
Element
City
Company
County
Country
DateOfBirth
Fax
FirstName
LastName
Phone
Email
State
Street1
Street2
Zip1
Zip2
Method
Name
Description
PreConditions
PostConditions
January 8, 2013
Format
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
Required
V1.0
V1.1
Y
Y
N
N
N
N
N
N
Y
Y
N
N
N
N
N
N
N
N
N
N
Y
Y
Y
Y
N
N
Y
Y
N
N
V1.2
Y
N
N
N
Y
N
N
N
N
N
Y
Y
N
Y
N
6.37 VerifyAgeOfPerson
This method creates an override for the specified customer so that future
age checks on the same customer will pass. This method can be used when a
customer is known to be of legal drinking age, but either the age verification
check using a third party is not returning a positive result, or to simply bypass
the third party service for a known customer.
None.
The customer is stored in the ShipCompliant database with a positive age
verification result and the corresponding age verification override reason. If a
subsequent check is run on this customer based on a matching name and
address, we will not run a check against the third party and will simply return
IsOfAge.
Page 74
of 160
PreConditions
Format
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
DateTime
Enumeration
String 50
Required
V1.0
V1.1
Y
N
N
N
Y
N
N
N
N
N
Y
Y
N
Y
N
Y
Y
Y
V1.2
Y
N
N
N
Y
N
N
N
N
N
Y
Y
N
Y
N
Y
Y
Y
Y
N
N
N
Y
N
N
N
N
N
Y
Y
N
Y
N
Y
Y
Y
6.38 GetTaxRate
This method takes in either a full address, a zip code, or a state and returns all
of the applicable tax rates. Tax rates will not be returned in aggregate. If a
given address returns a city rate, a county rate, and a state rate, they should
be summed together for the aggregate rate. If Address 1 is provided, the full
address must be provided.
If the WithZipPlus4Rates option is set to true then the method will also
return Zip+4 based tax rates (where available).
Zip+4 tax rates provide the highest precision tax rate information, however
they are presently only available in the state of Washington.
You should NOT aggregate Zip+4 rates with regional (State, City, County)
rates, use either aggregated regional rates, or Zip+4 rates to calculate the
effective total rate.
For states besides Washington, if you pass in an address, we will be able to
determine the State, County, and City through our address validation
component in almost all cases, even if we can't determine the exact street
level address. If we can determine a unique city, county, and state, we will
return rates. If not, we will return an AddressValidation error.
In Washington, if we can determine the exact street level address, we will
have the 9 digit zip code and therefore return the precise rate from the
location code. If we can't validate the street level address, we will return the
minimum rate for the zip code if the zip code is a valid zip code within the
state specified. In the majority of the zip codes in Washington, the rate is the
same for the entire zip code. In about 25% of the zip codes, there is a
difference based on location codes within the zip code. To prevent from
January 8, 2013
Page 75
of 160
PostConditions
overcharging, we will return the minimum rate in the zip code if we don't
have the precise 9-digit zip code.
None.
6.38.1 Request
Element
City
Company
County
Country
DateOfBirth
Fax
FirstName
LastName
Phone
Email
State
Street1
Street2
Zip1
Zip2
RejectIfAddressSuggested
IgnoreStreetLevelErrors
WithZipPlus4Rates
Method
Name
Description
PreConditions
PostConditions
Format
String 50
String 255
String 50
String 100
DateTime
String 20
String 50
String 50
String 20
String 255
String 20
String 255
String 255
String 20
String 20
Boolean
Boolen
Boolean
V1.2
N
N
N
N
N
N
N
N
N
N
N
N
N
Y
N
N
N
N
6.39 GetSalesTaxRatesByAddress
This method will return the sales tax rates for food, freight, general
merchandise, and wine products based on the full address given in the
request.
This method requires a full address to properly determine the sales tax rate
that should be returned. Note that this method will return the total sales tax
rate for each product type based upon the supplier tax rate preferences.
None.
6.39.1 Request
Element
Format
City
State
Street1
Street2
Zip1
Zip2
EffectiveDate
TaxSaleType
String 50
String 2
String 255
String 255
String 5
String 4
DateTime
Enumeration
January 8, 2013
Required
V1.0
V1.1
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
Y
Y
N
N
N
N
N
N
N
N
Required
V1.0
V1.1
N/A
Y
N/A
Y
N/A
Y
N/A
N
N/A
Y
N/A
N
N/A
N
N/A
Y
Page 76
V1.2
Y
Y
Y
N
Y
N
N
Y
of 160
6.40 CalculateSalesTaxDueForOrder
This method will return the sales tax rates for food, freight, general
merchandise, and wine products based on the destination address and
products provided in the request.
This method requires a full address and included products to properly
determine the sales tax rate that should be returned. Note that this method
will return the total sales tax rate for each product type based upon the
supplier tax rate preferences.
None.
6.40.1 Request
Element
Format
City
State
Street1
Street2
Zip1
Zip2
EffectiveDate
TaxSaleType
ShippingAndHandlingCollected
BrandKey
ProductKey
ProductQuantity
ProductUnitPrice
String 50
String 2
String 255
String 255
String 5
String 4
DateTime
Enumeration
String
String
String
Double
Double
Method
Name
Description
PreConditions
PostConditions
V1.2
Y
Y
Y
N
Y
N
N
Y
Y
N
Y
Y
Y
6.41 IsShippingAvailable
If you pass in a sales type with a full address, just a zip code, or just a state,
this method will tell you if shipping is available for that area. Three factors
determine the shipping availability. Is the supplier shipping to that area for
that sales type based on their shipping preferences? If a permit is required,
does the supplier have an active permit that covers the area? Does the address
potentially fall within any dry areas?
None
Shipping availability is returned via Boolean response.
6.41.1 Request
Element
Format
SalesType
City
Company
Country
Enumeration
String 50
String 255
String 100
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Required
V1.0
V1.1
Y
Y
N
N
N
N
N
N
Page 77
V1.2
Y
N
N
N
of 160
PreConditions
PostConditions
DateTime
String 255
String 20
String 50
String 50
String 20
String 20
String 255
String 255
String 20
String 20
State
String
PreConditions
PostConditions
BrandKey
EffectiveDate
ProductKey
SaleType
String 50
DateTime
String 50
Enum
January 8, 2013
V1.2
N
This method will return single product D2C compliance details for all states
for an indicated date and sale type (Onsite or Offsite)
Existing Product with matching Brand Key and Product Key.
Format
Description
Required
V1.0
V1.1
N
N
6.43 IsProductCompliant
6.43.1 Request
Element
Method
Name
Y
N
N
N
N
N
N
N
N
N
N
Format
Description
Y
N
N
N
N
N
N
N
N
N
N
6.42 GetShippingPreferences
6.42.1 Request
Element
Method
Name
Y
N
N
N
N
N
N
N
N
N
N
Required
V1.0
V1.1
N/A
N
N/A
Y
N/A
Y
N/A
Y
V1.2
N
Y
Y
Y
6.44 SearchSalesOrders
This method allows you to search orders in the ShipCompliant database on a
number of different criteria such as date ranges, order number range, order
Page 78
of 160
PreConditions
PostConditions
6.44.1 Request
Element
Format
SalesOrderKeyMax
SalesOrderKeyMin
ExternalClubKey
ExternalOfferKey
ExternalSalesOrderkeyMin
ExternalSalesOrderKeyMax
ExternalSalesOrderKeys
RequestedShipDateMin
RequestedShipDateMax
SettlementBatchNumber
ShipDateMax
ShipDateMin
PurchaseDateMax
PurchaseDateMin
ComplianceStatus
FulfillmentHouse
FulfillmentStatus
LicenseRelationshipType
SaleType
ShipmentStatus
ShipToState
String 50
String 50
String 50
String 50
String 50
String 50
String 50
DateTime
DateTime
String 50
DateTime
DateTime
DateTime
DateTime
Enumeration
Enumeration
Enumeration
Enumeration
Enumeration
Enumeration
Enumeration
January 8, 2013
Required
V1.0
V1.1
N
N
N
N
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
Page 79
V1.2
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
of 160
PreConditions
PostConditions
String 100
Enumeration
String 50
String 50
String Array
String
Enumeration
N
N
N
N
N
N/A
N/A
N
N
N
N
N
N/A
N/A
N
N
N
N
N
N
N
6.45 SearchMoreSalesOrders
This method is used in conjunction with SearchSalesOrders to get more
results from the search that was performed using SearchSalesOrders. This
method will return 100 results each time it is called until all results have been
returned. Only use this method in conjunction with SearchSalesOrders. When
there are more results available from the search, call this method with the
token returned from the SearchSalesOrders results or returned from a
subsequent call of SearchMoreSalesOrders to see the next page of results.
See section 9, Using ShipCompliant as a Gateway to Fulfillment, for more
information on how to use the SearchSalesOrders and
SearchMoreSalesOrders methods effectively.
None.
Detailed order information is returned, 100 orders at a time. If more than 100
orders were found in the search, the MoreSalesOrdersAvailable field will be
greater than zero, and will tell you the number of orders that are remaining
based on the search filter used. Subsequent calls to the
SearchMoreSalesOrders method with the same token can be used to retrieve
the remaining results.
Note: a PagingCookie expires after 15 minutes
6.45.1 Request
Element
Format
PagingCookie
String 64
Method
Name
Description
PreConditions
PostConditions
V1.2
Y
6.46 SetExternalClubKeys
This method updates one or more External Club Keys to a sales order
shipment.
A sales order with the same sales order key exists in the database with nonvoided shipments.
Existing data replaced with updated values.
6.46.1 Request
Element
Format
SalesOrderKey
ShipmentKey
ExternalClubKey
String 50
String 50
String 255
January 8, 2013
Required
V1.0
V1.1
Y
Y
Required
V1.0
V1.1
Y
Y
N/A
N/A
N/A
N/A
Page 80
V1.2
Y
N
Y
of 160
Method
Name
6.47 SetExternalCustomerKey
Description
This method updates the Customer Key value for a sales order shipment.
PreConditions
A sales order with the same sales order key exists in the database with nonvoided shipments.
PostConditions
6.47.1 Request
Element
Format
SalesOrderKey
ExternalCustomerKey
String 50
String 255
Required
V1.0
V1.1
Y
Y
N/A
N/A
V1.2
Y
Y
Method
Name
6.48 SetExternalOfferKeys
Description
This method associates one or more External Offer Keys to a sales order.
PreConditions
A sales order with the same sales order key exists in the database with nonvoided shipments.
PostConditions
6.48.1 Request
Element
Format
SalesOrderKey
ExternalClubKey
String 50
String 255
Required
V1.0
V1.1
Y
Y
N/A
N/A
V1.2
Y
Y
Method
Name
6.49 SetExternalSalesOrderKey
Description
PreConditions
A sales order with the same sales order key exists in the database with nonvoided shipments.
PostConditions
6.49.1 Request
Element
Format
SalesOrderKey
ExternalSalesOrderKey
String 50
String 50
Required
V1.0
V1.1
Y
Y
N/A
N/A
Method
Name
6.50 AddBrandDistribution
Description
January 8, 2013
Page 81
V1.2
Y
Y
of 160
PostConditions
6.50.1 Request
Element
Format
BrandKey
DistributorKey
String 50
String 50
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
Method
Name
6.51 AddDistributionTerritories
Description
PreConditions
An existing Distributor.
PostConditions
6.51.1 Request
Element
Format
DistributorKey
TerritoryName
DistributionType
PartialDistributionExplanation
String 50
String 50
FULL or PARTIAL
String 255
Method
Name
Description
PreConditions
PostConditions
V1.2
Y
Y
Y
N
6.52 AddUpdateDistributor
This method will create a new Distributor in ShipCompliant, or update an
existing Distributor.
None.
New Distributor is created, or existing Distributor is updated.
6.52.1 Request
Element
Format
StateCode
PermitNumber
StateLicenseNumber
Key
Name
LegalName
Ship To: City
Ship To:Company
Ship To:County
Ship To:Email
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
V1.2
Y
Y
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Page 82
V1.2
Y
N
N
Y
Y
N
Y
Y
N
N
of 160
String 20
String 20
2 digit ISO state code
String 255
String 255
String 20
String 20
String 50
String 255
String 100
String 255
String 20
String 20
2 digit ISO state code
String 255
String 255
String 20
String 20
Boolean
Boolean
DateTime
DateTime
String 255
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Method
Name
6.53 GetDistributor
Description
PreConditions
An existing Distributor.
PostConditions
6.53.1 Request
Element
Format
DistributorKey
String 50
Required
V1.0
V1.1
N/A
N/A
Method
Name
6.54 RemoveBrandDistribution
Description
PreConditions
PostConditions
6.54.1 Request
Element
Format
BrandKey
DistributorKey
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
Page 83
N
N
Y
Y
N
Y
N
N
N
N
N
N
N
Y
Y
N
Y
N
Y
Y
Y
Y
N
V1.2
Y
V1.2
Y
Y
of 160
Method
Name
6.55 RemoveDistributionTerritories
Description
PreConditions
PostConditions
6.55.1 Request
Element
Format
DistributorKey
TerritoryName
String 50
String 50
Method
Name
Description
PreConditions
PostConditions
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
V1.2
Y
Y
6.56 CheckComplianceOfInvoice
This method takes in an invoice in the request and checks the invoice for
compliance after performing the same validation as PersistInvoice. The
invoice will be committed via this method.
An invoice with the same sales order key can not exist in the database with
non-voided shipments. An active product with the specified product key and
brand key must already exist in the system.
The invoice is checked for compliance if there is not a duplicate sales order
with one or more committed shipments. The method will return a full
compliance result set. The order will be committed to the database and thus
will be considered for reporting.
6.56.1 Request
Element
Format
PersistOption
BillingCustomerKey
ExternalSalesOrderKey
OrderNumber
OrderReserved
ReferenceNumber
RefundedOrderReference
DefaultWarehouse
Freight
ShipDate
BrandKey
FobPointKey
ItemReserved
ProductKey
Quantity
QuantityType
UnitPrice
ShipmentKey
ShipmentReserved
Enumeration
String 50
String 50
String 50
String 50
String 50
String 50
String 50
Double
DateTime
String 50
String 50
String 50
String 100
Double
String 50
Double
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
N/A
Y
N/A
Y
N/A
N
N/A
Y
N/A
N
N/A
N
N/A
N
N/A
N
N/A
N
N/A
Y
N/A
N
N/A
N
N/A
N
N/A
Y
N/A
Y
N/A
N
N/A
Y
N/A
N
N/A
N
Page 84
V1.2
Y
Y
N
Y
N
N
N
N
N
Y
N
N
N
Y
Y
N
Y
N
N
of 160
String 50
String 20
String 50
DateTime
N/A
N/A
N/A
N/A
Y
N
N
Y
Y
N
N
Y
6.57 CheckComplianceOfSalesOrder
(Wholesale Service)
Description
PreConditions
PostConditions
This method takes in a single sales order in the request and checks the sales
order for compliance after performing the same validation as PersistInvoice.
The sales order will not be committed via this method. Use
CommitSalesOrder to persist a sales order that was previously checked for
compliance.
A sales order with the same sales order key can not exist in the database with
non-voided shipments. An active product with the specified product key and
brand key must already exist in the system.
The sales order is checked for compliance if there is not a duplicate sales
order with one or more committed shipments. The method will return a full
compliance result set. The order will not be committed to the database and
thus will not be considered for reporting until a CommitSalesOrder call is
made to commit this order.
6.57.1 Request
Element
Format
PersistOption
BillingCustomerKey
ExternalSalesOrderKey
OrderNumber
OrderReserved
ReferenceNumber
RefundedOrderReference
DefaultWarehouse
Freight
ShipDate
BrandKey
FobPointKey
ItemReserved
ProductKey
Quantity
QuantityType
UnitPrice
ShipmentKey
ShipmentReserved
ShippingCustomerKey
ShippingService
Tag
TransactionDate
Enumeration
String 50
String 50
String 50
String 50
String 50
String 50
String 50
Double
DateTime
String 50
String 50
String 50
String 100
Double
String 50
Double
String 50
String 50
String 50
String 20
String 50
DateTime
Method
Name
January 8, 2013
Required
V1.0
V1.1
N/A
Y
N/A
Y
N /A
N
N/A
Y
N/A
N
N/A
N
N/A
N
N/A
N
N/A
N
N/A
Y
N/A
N
N/A
N
N/A
N
N/A
Y
N/A
Y
N/A
Y
N/A
Y
N/A
N
N/A
N
N/A
Y
N/A
N
N/A
N
N/A
Y
V1.2
Y
Y
N
Y
N
N
N
N
N
Y
N
N
N
Y
Y
Y
Y
N
N
Y
N
N
Y
6.58 CommitSalesOrder
Page 85
of 160
PreConditions
This method takes in an order number in the request and saves the order if it
has previously been checked for compliance.
A sales order with the same sales order key exists in the database with nonvoided shipments.
PostConditions
Description
6.58.1 Request
Element
Format
OrderNumber
SalesTaxCollected
Amount
Subtype
Type
TransactionID
String 50
Decimal
Decimal
Enum
String
String
Method
Name
Description
PreConditions
PostConditions
This method returns the availability of all products within a single state. An
available product meets all compliance requirements for wholesale
distribution. This includes product registration with one or more distributors
in the state and a valid price posting if required by the specific state. This
method is useful for retrieving a list of all products that may be sold in a
single state.
Active products must exist in the system with valid product registrations.
None.
Format
EffectiveDate
State
DateTime
String 20
Description
PreConditions
PostConditions
January 8, 2013
V1.2
Y
N
N
N
N
N
6.59 GetAllAvailableProductsInState
6.59.1 Request
Element
Method
Name
Required
V1.0
V1.1
Y
Y
N/A
N
N/A
N
N/A
N
N/A
N
N/A
N
Required
V1.0
V1.1
N/A
N
N/A
Y
V1.2
N
Y
6.60 GetProductAvailabilityByState
This method returns the availability of a single product within a single state.
An available product meets all compliance requirements for wholesale
distribution. This includes product registration with one or more distributors
in the state and a valid price posting if required by the specific state. This
method is useful for performing a real-time compliance check at the item
level for a wholesale order.
An active product with the specified product key and brand key must already
exist in the system.
None.
Page 86
of 160
Format
BrandKey
EffectiveDate
ProductKey
State
String 50
DateTime
String 100
String 20
Method
Name
Description
PreConditions
PostConditions
This method returns the availability of a single product within all states. An
available product meets all compliance requirements for wholesale
distribution. This includes product registration with one or more distributors
in the state and a valid price posting if required by the specific state. This
method is useful for retrieving a list of all markets that a product can be sold
into.
An active product with the specified product key and brand key must already
exist in the system.
None.
Format
BrandKey
EffectiveDate
ProductKey
String 50
DateTime
String 100
Description
PreConditions
PostConditions
V1.2
N
N
Y
Y
6.61 GetProductAvailabilityInAllStates
6.61.1 Request
Element
Method
Name
Required
V1.0
V1.1
N/A
N
N/A
N
N/A
Y
N/A
Y
Required
V1.0
V1.1
N/A
N
N/A
N
N/A
Y
V1.2
N
N
Y
6.62 PersistInvoice
This method takes in a single invoice in the request and saves the order after
validation without running a compliance check. The validation checks to see if
a duplicate committed invoice already exists and also verifies that each
Product Key/Brand combination already exists in the system. Each invoice
can contain multiple shipments, and each shipment can contain multiple
products.
An invoice with the same sales order key can not exist in the database with
non-voided shipments. An active product with the specified product key and
brand key must already exist in the system.
An invoice is committed to the database if there is not a duplicate invoice with
one or more committed shipments. This invoice will not be checked for
compliance, but will be considered for reporting.
6.62.1 Request
Element
Format
PersistOption
CustomerKey
OrderNumber
OrderReserved
Enumeration
String 50
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
N/A
Y
N/A
Y
N/A
Y
N/A
N
Page 87
V1.2
Y
Y
Y
N
of 160
String 50
String 50
Double
DateTime
String 50
String 50
String 50
String 100
Double
String 50
Double
String 50
String 50
String 20
String 50
DateTime
N
N
N
Y
N
N
N
Y
Y
Y
Y
N
N
N
N
Y
N
N
N
Y
N
N
N
Y
Y
Y
Y
N
N
N
N
Y
6.63 VoidInvoice
This method takes in an order number and voids all shipments in an existing
order order.
An invoice with the same order key exists in the database with non-voided
shipments.
All shipments in the order are voided. These shipments will no longer count
towards reporting. Voiding an invoice is a permanent action that can not be
reversed.
6.63.1 Request
Element
Format
OrderNumber
String 50
Method
Name
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Required
V1.0
V1.1
N/A
Y
V1.2
Y
6.64 AddTrackingNumber
(Fulfillment Service)
Description
PreConditions
PostConditions
6.64.1 Request
Element
Format
FulfillmentOrderKey
TrackingNumbers
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
Y
Y
Y
Y
Page 88
V1.2`
Y
Y
of 160
6.65 AddPackageCost
(Fulfillment Service)
Description
PreConditions
PostConditions
6.65.1 Request
Element
Format
TrackingNumber
BaseCost
Surcharge
SurchargeReason
InvoiceReference
String 50
Double
Double
String 255
String 50
Required
V1.0
V1.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
V1.2`
Y
Y
N
N
N
Method
Name
6.66 GetClubShipmentsByBatch
Description
PreConditions
A fulfillment batch with the same fulfillment batch key must exist in the
database with non-voided shipments.
PostConditions
None.
6.66.1 Request
Element
Format
BatchKey
String 50
Method
Name
Required
V1.0
V1.1
Y
Y
V1.2
Y
6.67 GetClubShipmentsReadyForInHouseFulfil
lment
Description
PreConditions
PostConditions
All club shipments returned by the method will be placed into a fulfillment
batch and the fulfillment status of each shipment will be updated to Accepted.
6.67.1 Request
Element
Format
Tag
FulfillmentAccount
ExternalClubKey
String 50
String 50
String 50
January 8, 2013
Required
V1.0
V1.1
N/A
N
N/A
N
N/A
N
Page 89
V1.2
N
N
N
of 160
Method
Name
Description
PreConditions
PostConditions
6.68 GetDailyShipmentsByOrderNumber
This method retrieves daily shipments for fulfillment based upon the sales
order number of the shipments.
A sales order with the same order key exists in the database with non-voided
shipments. The sales order must have a shipment status of
SentToFulfillment, Shipped, or Delivered.
All daily shipments returned by the method will be placed into a fulfillment
batch and the fulfillment status of each shipment will be updated to Accepted.
6.68.1 Request
Element
Format
SalesOrderKey
ShipmentKey
String 50
String 50
Required
V1.0
V1.1
Y
Y
N
N
V1.2
Y
N
Method
Name
6.69 GetDailyShipmentsReadyForInHouseFulfillment
Description
PreConditions
PostConditions
All daily shipments returned by the method will be placed into a fulfillment batch and
the fulfillment status of each shipment will be updated to Accepted.
6.69.1 Request
Element
Format
Tag
FulfillmentAccount
String 50
String 50
Method
Name
Description
PreConditions
PostConditions
Required
V1.0
N/A
N/A
V1.1
N
N
6.70 GetMoreShipments
This method retrieves the next page of shipment results based on a previous
search for shipments. This method will return 100 results each time.
None.
Detailed shipment information is returned, 100 orders at a time. If more than
100 shipments were found in the search, the CountMoreShipmentsAvailable
field will be greater than zero, and will tell you the number of shipments that
are remaining based on the search filter used. Subsequent calls to the
GetMoreShipments method with the same token can be used to retrieve the
remaining results.
Note: a GetMoreShipments Paging Cookine expires after 15 minutes
6.70.1 Request
Element
Format
PagingCookie
String 64
January 8, 2013
Required
V1.0
V1.1
Y
Y
Page 90
V1.2
Y
of 160
V1.2
N
N
Method
Name
6.71 GetShipmentsByBatch
Description
PreConditions
A fulfillment batch with the same fulfillment batch key must exist in the
database with non-voided shipments.
PostConditions
None.
6.71.1 Request
Element
Format
BatchKey
String 50
Method
Name
Description
PreConditions
PostConditions
Format
FulfillmentKey
String 50
Description
PreConditions
PostConditions
V1.2
Y
6.72 GetShipmentsByFulfillmentKey
6.72.1 Request
Element
Method
Name
Required
V1.0
V1.1
Y
Y
Required
V1.0
V1.1
Y
Y
V1.2
Y
6.73 RemoveTrackingNumber
This method takes in a fulfillment key (SalesOrderKey-ShipmentKey), and an
array of one or more tracking numbers (FedEx, UPS, or GSO). The tracking
numbers are removed from the appropriate shipments.
A fulfillment order with the same fulfillment order key exists in the database
with non-voided shipments. The fulfillment order must include tracking
numbers in the database.
The tracking number(s) will be removed from the appropriate shipments.
6.73.1 Request
Element
Format
FulfillmentOrderKey
TrackingNumbers
String 50
String 50
Required
V1.0
V1.1
Y
Y
Y
Y
V1.2
Y
Y
Method
Name
6.74 SetFulfillmentExceptionByFulfillmentOrderKey
Description
This method sets a fulfillment exception for an order based upon the fulfillment key
January 8, 2013
Page 91
of 160
A fulfillment order with the same order key exists in the database with non-voided
shipments.
PostConditions
The fulfillment order specified in the request will have a fulfillment exception set
according to the fulfillment exception type specified in the request.
6.74.1 Request
Element
Format
FulfillmentExceptionType
FulfillmentOrderKey
Reason
String 50
String 50
String 50
Method
Name
Required
V1.0
Y
Y
N
V1.1
Y
Y
N
V1.2
Y
Y
N
6.75 ClearFulfillmentExceptionByFulfillmentOrderKey
PreConditions
This method clears a fulfillment exception for an order based upon the fulfillment key
specified in the request.
A fulfillment order with the same order key exists in the database with non-voided
shipments.
PostConditions
The fulfillment order specified in the request will have a fulfillment exception cleared
according to the fulfillment exception type specified in the request.
Description
6.75.1 Request
Element
Format
FulfillmentOrderKey
ClearType
String 50
Enumeration
Method
Name
Required
V1.0
Y
Y
V1.1
Y
Y
6.76 GetClubShipmentsReadyForWarehouseFu
lfillment
Description
PreConditions
PostConditions
All club shipments returned by the method will be placed into a fulfillment
batch and the fulfillment status of each shipment will be updated to Accepted.
6.76.1 Request
Element
Format
Tag
FulfillmentAccount
ExternalClubKey
String 50
String 50
String 50
Method
Name
January 8, 2013
V1.2
Y
Y
Required
V1.0
V1.1
N/A
N
N/A
N
N/A
N
V1.2
N
N
N
6.77 GetDailyShipmentsReadyForWarehouseFulfillm
ent
Page 92
of 160
PreConditions
PostConditions
All daily shipments returned by the method will be placed into a fulfillment batch and
the fulfillment status of each shipment will be updated to Accepted.
6.77.1 Request
Element
Format
Tag
FulfillmentAccount
String 50
String 50
Method
Name
Description
PreConditions
PostConditions
Required
V1.0
N/A
N/A
V1.2
N
N
6.78 GetSSOUrl
Get a nonce SSO url for the SSO token provided. Refer to Section 2.8 for additional
details on SSO.
A ShipCompliant user account exists with Single Sign On enabled for the specific partner.
The user will be signed onto ShipCompliant. If a NavigationToken is specified,
ShipCompliant will return a url for the page specified by the Navigation Token. If a
Navigation Token is not specified, ShipCompliant will return a url for the users home
page.
6.78.1 Request
Element
Format
NavigationToken
UserEmail
String 50
String 50
Required
V1.0
N/A
N/A
Method
Name
6.79 GetVersion
Description
PreConditions
None.
PostConditions
6.79.1 Request
Element
January 8, 2013
V1.1
N
N
Format
V1.1
N
Y
Required
V1.0
V1.1
Page 93
V1.2
of 160
V1.2
N
Y
Example
6.80.1 <AllowResultingNegativeQuantity>
Used to specify whether the inventory of a product can have a negative
quantity or not.
<AllowResultingNegativeQuantity>true</AllowResultingNegativeQuantity>
Data Type
Boolean
Description
Comments
Tag Name
Description
6.80.2 <BillingCustomerKey>
A unique identifier for the billing customer.
Example
<BillingCustomerKey>CUST123</BillingCustomerKey>
Data Type
String 50
Comments
Tag Name
Description
6.80.3 <BrandKey>
A unique identifier for each brand.
Example
<BrandKey>AC</BrandKey>
Data Type
String 10
Comments
Tag Name
Description
6.80.4 <BrandName>
The name for a brand.
Example
<BrandName>Angelic Cellars</BrandName>
Data Type
String 50
Comments
Tag Name
Description
6.80.5 <City>
The shipping destination city or billing address city.
Example
<City>Boulder</City>
Data Type
String 50
Comments
January 8, 2013
Page 94
of 160
Example
6.80.6 <ClearExistingInventory>
Option to clear all existing inventory levels before updating the inventory
levels with new quantities.
<ClearExistingInventory>Boulder</ClearExistingInventory>
Data Type
Boolean
Description
Comments
Tag Name
Description
6.80.7 <ClearType>
This field is used in conjunction with Fulfillment Exception to clear
existing exceptions. Possible values:
Accept
Retry
Example
<ClearType>Retry</ClearType>
Data Type
Enumeration
Comments
The Accept setting will clear the fulfillment exception and set the
fulfillment status to Accepted. The Retry setting will clear the
fulfillment exception and set the fulfillment status to None, which will
allow the fulfillment house to retrieve the order again from
ShipCompliant.
Tag Name
Description
6.80.8 <CommitOption>
This option allows the integrator to specify how to commit the shipments
in a sales order. Possible values include: AllShipments and
CompliantShipments.
Example
<CommitOption>AllShipments</CommitOption>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.9 <Company>
The company name entered in the submitted order.
Example
<Company>Six88 Solutions</Company>
Data Type
String 255
Comments
Tag Name
January 8, 2013
6.80.10
<ComplianceStatus>
Page 95
of 160
Example
When used as a filter option, filters on compliant vs. not compliant vs.
any.
<ComplianceStatus>Compliant</ComplianceStatus>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.11
<Country>
The Country name specified for billing or shipping addresses.
Example
<Country>US</Country>
Data Type
String 50
Comments
Tag Name
Description
6.80.12
<County>
The County name specified for billing or shipping addresses.
Example
<County>Boulder</County>
Data Type
String 100
Comments
If County is not populated, the system will use third party address
validation to populate it. See Section 12, Address Validation for more
information.
Tag Name
Description
6.80.13
<DateOfBirth>
Date of birth used for both shipping and billing.
Example
<DateOfBirth>1978-11-07</DateOfBirth>
Data Type
DateTime
Comments
Tag Name
6.80.14
<DefaultCase>
This specifies the case configuration of the product. The list of valid
default cases varies based on product type. The standard format of this
tag is: NumberOfBottlesPerCaseXBottleSizeML
Description
Description
For instance, if there are 12 bottles per case and the size of each bottle is
January 8, 2013
Page 96
of 160
January 8, 2013
Page 97
of 160
<DefaultCase></DefaultCase>
Data Type
String 50
Comments
Tag Name
Description
6.80.15
<DefaultWarehouse>
This is used to indicate the warehouse to be used for wholesale orders.
Example
<DefaultWarehouse>FacilityOne</DefaultWarehouse>
Data Type
String 50
Comments
Tag Name
Description
6.80.16
<Description>
A description of the product.
Example
Data Type
String 50
Comments
Tag Name
Description
6.80.17
<DestinationZipcode>
The zipcode of the final destination for a shipment.
Example
<DescriptionZipcode>80302</DestinationZipcode>
Data Type
String 20
Comments
Tag Name
Example
6.80.18
<EffectiveDate>
This field is used in inventory methods, sales tax methods, and wholesale
methods. For inventory, this field refers to the date at which the
inventory quantity becomes valid. For sales tax methods, this field refers
to the date to use when retrieving tax rates. For wholesale methods, it
refers to the effective date of product availability.
<EffectiveDate>2011-01-20</EffectiveDate>
Data Type
DateTime
Description
Comments
January 8, 2013
Page 98
of 160
6.80.19
<Email>
Email address.
Example
<Email>test@test.com</Email>
Data Type
String 255
Comments
Tag Name
Example
6.80.20
<ExternalSalesOrderKey>
The ExternalSalesOrderKey is used to reference an external salesorder
stored under a different order number or salesorder key.
< ExternalSalesOrderKey >TestOrder001</ ExternalSalesOrderKey >
Data Type
String 50
Comments
Tag Name
Description
6.80.21
Fax number.
Example
<Fax>720-528-7942</Fax>
Data Type
String 20
Description
<Fax>
Comments
Tag Name
Description
6.80.22
First name.
<FirstName>
Example
<FirstName>Jeff</FirstName>
Data Type
String 50
Comments
Tag Name
Example
6.80.23
<FobPointKey>
The FOB Point corresponding to a specific wholesale invoice. Note that
Default is the default FOB point for wholesale orders. Additional FOB
Points may be defined in the ShipCompliant portal.
<FobPointKey>Default</FobPointKey>
Data Type
String 50
Description
Comments
Tag Name
Description
January 8, 2013
6.80.24
<Freight>
The freight cost of this shipment.
Page 99
of 160
<Freight>7.5</Freight>
Data Type
Double
Comments
Each sales order can contain multiple shipments, each of which would
have a separate freight cost. This value is needed for some excise tax
reports. Default value is $0. This value will be rejected if specified and
negative or non-numeric.
Tag Name
Example
6.80.25
<FulfillmentAccount>
The unique key for the fulfillment account that should be used for
reporting.
<FulfillmentAccount>BER</FulfillmentAccount>
Data Type
String 50
Comments
Tag Name
Description
6.80.26
<FulfillmentExceptionType>
The type of fulfillment exception.
Example
<FulfillmentExceptionType>Inventory</FulfillmentExceptionType>
Data Type
String 50
Comments
Tag Name
Description
6.80.27
<FulfillmentHouse>
The fulfillment location to be used for this shipment.
Example
<FulfillmentHouse>WineShipping</FulfillmentHouse>
Data Type
Comments
Description
January 8, 2013
Page 100
of 160
OregonWineServices (V1.1,
1.2) OWS (V1.0)
PackNShipDirect
TownGreen
VinLux
VintageLogistics (V1.0)
WineShippingSantaMaria
(V1.1, 1.2)
Vintrust (V1.0)
Vinfillment (V1.1, 1.2)
WineCoLLC
WineCountryPackAndShip
WineCountryShipping
WineShipping
WineTastingNetwork
WSCDirect
WWShipping
Null
Tag Name
Example
6.80.28
<FulfillmentOrderKey>
The fulfillment order key is a combination of the SalesOrderKeyShipmentKey.
<FulfillmentOrderKey>INV1003-2</FulfillmentOrderKey>
Data Type
String 50
Comments
Tag Name
6.80.29
<FulfillmentStatus>
A Status used for tracking the workflow of communicating order data to
third party fulfillment location.
Description
Description
January 8, 2013
Page 101
of 160
<FulfillmentStatus>None</FulfillmentStatus>
Data Type
Enumeration
Comments
Options are:
Any (default)
None
Transmitted
Accepted
Exception
Tag Name
Description
6.80.30
<FulfillmentType>
Type of fulfillment (club or daily)
Example
<FulfillmentType>Club</FulfillmentType>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.31
<GiftNote>
Gift note for a shipment.
Example
<GiftNote>Happy Birthday</GiftNote>
Data Type
String 1024
Comments
Tag Name
Example
6.80.32
<HasTrackingNumber>
When used as a filter, indicates whether the shipments have tracking
numbers or do not have tracking numbers.
<HasTrackingNumber>Yes</HasTrackingNumber>
Data Type
Enumeration
Comments
Tag Name
Example
6.80.33
<IgnoreStreetLevelErrors>
Indicates if you would like to have the system ignore Address 1 errors if
the city, state, zip and County can be otherwise successfully determined.
<IgnoreStreetLevelErrors>false</ IgnoreStreetLevelErrors >
Data Type
Boolean
Comments
Description
Description
January 8, 2013
Page 102
of 160
Tag Name
Description
6.80.34
<InsuredAmount>
Amount of insurance for a shipment.
Example
<InsuredAmount>10</InsuredAmount>
Data Type
Double
Comments
Tag Name
Description
6.80.35
<InventoryType>
The type of inventory level.
Example
<InventoryType>Available</InventoryType>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.36
<ItemReserved>
This is a reserved field for future use.
Example
<ItemReserved></ItemReserved>
Data Type
String 50
Comments
This field is reserved for future use. Any value passed in this field will
not be persisted to the database.
Tag Name
6.80.37
Last name.
Description
January 8, 2013
<LastName>
Page 103
of 160
<LastName>Carroll</LastName>
Data Type
String 50
Comments
Tag Name
Example
6.80.38
<LicenseRelationship>
The type of license relationship between supplier and recipient. Possible
values:
Default
SupplierToConsumer
RetailerToConsumer
SupplierToThreeTier
RetailerToThreeTier
Pickup
Null
DirectToTrade (output only)
WholesaleDistribution (output only)
WholesaleToWholesale (output only)
WholesaleToRetail (output only)
<LicenseRelationship>Default</LicenseRelationship>
Data Type
Enumeration
Comments
Description
Example
6.80.39
<MaxShipDays>
When checking the temperature forecast, this is the high end of the day
range
<MaxShipDays>7</MaxShipDays>
Data Type
Integer
Comments
Tag Name
Example
6.80.40
<MinShipDays>
When checking the temperature forecast, this is the low end of the day
range
<MinShipDays>1</MinShipDays>
Data Type
Integer
Comments
To check the temperature forecast for the current day, use 0 in this
field.
Description
Description
January 8, 2013
Page 104
of 160
Tag Name
Description
Example
Data Type
6.80.41
<PagingCookie>
The unique token returned from SearchSalesOrders or
SearchMoreSalesOrders that will get you the next page of results.
<PagingCookie>0BF33B49-45BE-4621-B40B4F5B3C1C7983</PagingCookie>
String 50
Comments
PagingCookies expire after 15 minutes from the time they are issued by a
call to the SearchSalesOrder method
Tag Name
6.80.42
<NavigationToken>
The unique token returned from GetSSOUrl that acts as a url to the
requested page. Possible values:
Analytics
EmbeddedHome
EmbeddedOrders
Fulfillment
Orders
Setup
Description
Example
<NavigationToken>EmbeddedHome</NavigationToken>
Data Type
String 50
Comments
Tag Name
Description
6.80.43
<OldSalesOrderKey>
A unique identifier for the original sales order key.
Example
<OldSalesOrderKey>INV001</OldSalesOrderKey>
Data Type
String 50
Comments
Tag Name
Description
6.80.44
<OrderNumber>
A unique identifier for the wholesale order
Example
<OrderNumber>INV1001</OrderNumber>
Data Type
String 50
Comments
Tag Name
Description
6.80.45
<OrderReserved>
This is a reserved field for future use.
Example
<OrderReserved></OrderReserved>
January 8, 2013
Page 105
of 160
String 50
Comments
This field is reserved for future use. Any value passed in this field will
not be persisted to the database.
Tag Name
Example
6.80.46
<OrderType>
The type of order source. Possible values are
Internet
Phone
Mail
Fax
Club
InPerson
<OrderType>Internet</OrderType>
Data Type
Enumeration
Comments
Tag Name
6.80.47
<PagingCookie>
The paging cookie is used to specify the next page of results when
retrieving shipments via the fulfillment methods.
<PagingCookie>30980a2b-24fb-4ef3-90300892c59ce92a</PagingCookie>
String 64
Description
Description
Example
Data Type
Comments
Tag Name
Description
6.80.48
<Password>
The password used for authentication.
Example
<Password>password</Password>
Data Type
String
Comments
See <Security>
Tag Name
Description
6.80.49
<PaymentDateMin>
When using a ship date range, this is the low end of the range
Example
<PaymentDateMin>2006-02-02</PaymentDateMin>
Data Type
DateTime
Comments
Tag Name
6.80.50
<PaymentDateMax>
When using a ship date range, this is the high end of the range
Description
January 8, 2013
Page 106
of 160
<PaymentDateMax>2006-02-02</PaymentDateMax>
Data Type
DateTime
Comments
Tag Name
Description
6.80.51
<PercentageAlcohol>
The percentage alcohol by volume for the product.
Example
<PercentageAlcohol>12</PercentageAlcohol >
Data Type
Double
Comments
Used to calculate excise taxes. Validation will reject this value if negative,
non-numeric, or greater than 100.
Tag Name
Example
6.80.52
<PersistOption>
PersistOption lets you specify whether you want to overwrite existing
sales orders. Option include Null or OverrideExisting.
<PersistOption>OverrideExisting</PersistOption >
Data Type
Enumeration
Comments
If Null is specified, when you try to commit an order that already exists
(based on the salesorderkey), we will return a validation error that says
the sales order already exists. If you specify OverrideExisting, we will
overwrite any existing commited sales orders that have the same
salesorderkey.
Tag Name
Description
6.80.53
<Phone>
Phone number.
Example
<Phone>303-449-5285</Phone>
Data Type
String 20
Description
Comments
Tag Name
Description
6.80.54
<ProductKey>
A unique identifier for each product within a brand.
Example
<ProductKey>01AngelicMerlot</ProductKey>
Data Type
String 100
Comments
The same product key can be used under different brands. Products
must be setup before orders are entered via persist or compliance check
methods. Each shipment can contain multiple shipment items, which
can include any quantity of one product.
Tag Name
6.80.55
<ProductQuantity>
The quantity of the specified product in the shipment item.
Description
January 8, 2013
Page 107
of 160
<ProductQuantity>6</ProductQuantity>
Data Type
Int
Comments
Tag Name
Example
6.80.56
<ProductType>
The type of product. Possible values are:
Sparkling Wine
Wine
MerchandiseNonTaxable
MerchandiseTaxable
Food
Ale
AppleCider
Beer
BottleBeer
CanBeer
Cider
DraughtBeer
KegBeer
MaltLiquor
Spirits
WineCooler
<ProductType>Wine</ ProductType>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.57
<ProductUnitPrice>
The actual unit price charged for the product.
Example
<ProductUnitPrice>25.95</ProductUnitPrice>
Data Type
Double
Comments
Tag Name
Description
6.80.58
<PurchaseDate>
The date when payment was taken for an order.
Example
<PurchaseDate>2006-02-02</PurchaseDate>
Data Type
DateTime
Description
January 8, 2013
Page 108
of 160
Tag Name
Example
6.80.59
<Quantity>
This field is used in both inventory methods and wholesale methods.
When used in inventory methods, the quantity is used to adjust the
inventory levels stored in ShipCompliant. When used in wholesale
methods, it specifies the product quantity for an order.
<Quantity>30</Quantity>
Data Type
Double
Comments
Tag Name
Description
6.80.60
<QuantityAdjustment>
The date when payment was taken for an order.
Example
<QuantityAdjustment>30</QuantityAdjustment>
Data Type
Double
Comments
Tag Name
6.80.61
<QuantityType>
This field is used to specify the type of quantity used in a wholesale
order. Possible Values:
Bottle
Case
Each
Description
Description
Example
<QuantityType>Case</QuantityType>
Data Type
String 50
Comments
Tag Name
Example
6.80.62
<Reason>
Used in conjunction with <FulfillmentExceptionType> to provide details
of the exception which occurred delaying fulfillment of a shipment.
<Reason>only 2 on hand</Reason>
Data Type
String 50
Comments
Tag Name
6.80.63
<ReferenceNumber>
The ReferenceNumber is typically used to store the Purchase Order
information for wholesale orders.
Description
Description
January 8, 2013
Page 109
of 160
<ReferenceNumber>PO130</ReferenceNumber>
Data Type
String 50
Comments
Tag Name
Example
6.80.64
<RefundedOrderReference>
The RefundedOrderReference is a string used to identify the invoice to
be refunded.
< RefundedOrderReference >Order001</ RefundedOrderReference >
Data Type
String 50
Comments
Tag Name
Example
6.80.65
<RegisterID>
The RegisterID is a string used to identify the register source of a specific
SalesOrder
<RegisterID >Reg001</RegisterID >
Data Type
String 255
Comments
Tag Name
Example
6.80.66
<RejectIfAddressSuggested>
Indicates if you would like to have the system reject sales order if the
third party address verification suggests a different address.
<RejectIfAddressSuggested>false</RejectIfAddressSuggested>
Data Type
Boolean
Comments
Tag Name
6.80.67
<RuleType>
Rule types are used for compliance checks and will be included in the
response to compliance related methods.
Description
Description
Description
Description
Possible values:
AggregateVolumeLimit
BrandRegistrationRequired
CarrierProhibited
CarrierServiceProhibited
ConsumerLicenseRequired
CustomerAggregateVolumeLimit
January 8, 2013
Page 110
of 160
<RuleType>BrandRegistrationRequired</RuleType>
Data Type
String
Comments
Tag Name
January 8, 2013
6.80.68
<SalesAssociatreKey>
Page 111
of 160
Example
Data Type
String 50
Comments
Tag Name
Description
6.80.69
<SalesOrderKey>
A unique identifier for each sales order.
Example
<SalesOrderKey>INV001</SalesOrderKey>
Data Type
String 50
Comments
Tag Name
Description
6.80.70
<SalesOrderKeyMin>
When using a range of salesorder keys, this is the low end of the range
Example
<SalesOrderKeyMin>INV001</SalesOrderKeyMin>
Data Type
String 50
Description
Comments
Tag Name
Description
6.80.71
<SalesOrderKeyMax>
When using a range of salesorder keys, this is the high end of the range
Example
<SalesOrderKeyMax>INV002</SalesOrderKeyMax>
Data Type
String 50
Comments
Tag Name
Description
Example
6.80.72
<SalesOrderKeys>
Use this string array if you want to search on specific sales orders by
salesorderkey(s)
<SalesOrderKeys>
<string>Order1</string>
<string>Order2</string>
<string>Order3</string>
<string>Order4</string>
<string>Order5</string>
</SalesOrderKeys>
Data Type
String 50
Comments
You can specify a maximum of 100 sales orders in this string array
January 8, 2013
Page 112
of 160
6.80.73
<SalesType>
The type of sale (onsite, offsite, or both).
Example
<SalesType>Onsite</SalesType>
Data Type
Enumeration
Comments
An onsite sale is a shipping sale that took place while the customer was
physically present at the winery.
Tag Name
6.80.74
<Security>
This is an optional node which allows the Username and Password to be
passed to ShipCompliant. This node can be omitted only if you are
passing credentials via a ws-security UserNameToken in the SOAP
header. See Page 121Security for more information.
<Security>
<Password>password</Password>
<Username>user@company.com</Username>
</Security>
Node
Description
Example
Data Type
Comments
Tag Name
Description
6.80.75
<ShipDate>
The requested date of shipment.
Example
<ShipDate>2006-02-09</ShipDate>
Data Type
DateTime
Comments
Tag Name
Description
6.80.76
<ShipDateMin>
When using a ship date range, this is the low end of the range
Example
<ShipDateMin>2006-02-09</ShipDateMin>
Data Type
DateTime
Comments
If the actual ship date is different than the requested ship date, the actual
ship date will be used.
Tag Name
Description
6.80.77
<ShipDateMax>
When using a ship date range, this is the high end of the range
Example
<ShipDateMax>2006-02-10</ShipDateMax>
Data Type
DateTime
Comments
If the actual ship date is different than the requested ship date, the actual
ship date will be used. ShipDate range searches are inclusive of the end
dates.
January 8, 2013
Page 113
of 160
Tag Name
Description
6.80.78
<ShipmentKey>
A unique identifier for each shipment within a sales order.
Example
<ShipmentKey>1</ShipmentKey>
Data Type
String 50
Comments
Tag Name
Description
6.80.79
<ShipmentReserved>
This is a reserved field for future use.
Example
<ShipmentReserved></ShipmentReserved>
Data Type
String 50
Comments
This field is reserved for future use. Any value passed in this field will
not be persisted to the database.
Tag Name
Example
6.80.80
<ShipmentStatus>
The current shipping status of each shipment. Possible values are:
InProcess
PaymentAccepted
SentToFulfillment
Shipped
Delivered
Voided
<ShipmentStatus>SentToFulfillment</ShipmentStatus>
Data Type
Enumeration
Comments
Tag Name
Description
6.80.81
<ShippingCustomerKey>
A unique identifier for the shipping customer.
Example
<BillingCustomerKey>CUST123</BillingCustomerKey>
Data Type
String 50
Description
Comments
Tag Name
Description
6.80.82
<ShippingService>
The carrier service used with the shipment. Possible values:
ShippingServiceKey
FEX
January 8, 2013
Name
FedEx 2Day
Page 114
of 160
January 8, 2013
FXP
FXO
FXG
FedEx Ground
FGH
UP2
UPS
UPS Ground
PIC
Pickup
UPO
UPA
DHLG
DHL Ground
DHL2
DHLS
DHLN
OTHER
Other
UP3
UPS 3 Day
FXE
UP1
UPSNS
USPSPM
USPSPP
USPSMM
USPSGPM
USPSGEM
USPSGEG
USPSGE
USPSAPP
USPSGALP
USPSFCM
USPSEM
DHLIE
FXES
FXFO
FXIE
FXIF
FXIP
UPAS
UPSA
UPS Saver
Page 115
of 160
UPWEXS
UPWEXP
FEX3
FedEX 3Day
2DM
FTX
FTS
GSO
CST1
CST2
CST3
CST4
CST5
CST6
CST7
CST8
CST9
PDS
EPS
ESS
SDS
NPS
CPS
Example
<ShippingService>FEX</ShippingService>
Data Type
Enumeration
Comments
The carrier will be inferred from the ShippingService key used. For
onsite orders, use PIC.
Tag Name
Description
6.80.83
<SpecialInstructions>
Special instructions for shipping.
Example
Data Type
String 1024
Comments
Tag Name
6.80.84
<State>
The state name specified for billing or shipping addresses.
Description
January 8, 2013
Page 116
of 160
<State>CO</State>
Data Type
String 20
Comments
Tag Name
Description
6.80.85
<Street1>
The first line of the address provided.
Example
Data Type
String 255
Comments
Tag Name
Description
6.80.86
<Street2>
The second line of the address provided.
Example
<Street2>Suite 300</Street2>
Data Type
String 255
Comments
Tag Name
Example
6.80.87
<Tag>
A user defined label that may be applied to a sales order or order(s). Tags
can be useful for grouping orders into a batch (i.e. wine club shipments).
<Tag>Club Feb-2008</Tag>
Data Type
String 50
Comments
A Sales order may have zero, one or many tags associated with it. Tags
can not contain the special characters , : \.
Tag Name
6.80.88
<TaxSalesType>
Refers to the type of tax that is being requested.
Description
Description
Possible values:
Null
Offsite
Onsite
Example
<TaxSalesType>Offsite</TaxSalesType>
Data Type
Enumeration
Comments
Tag Name
Description
January 8, 2013
6.80.89
<TrackingNumber>
The tracking number of a package.
Page 117
of 160
<TrackingNumber>856071089388</TrackingNumber>
Data Type
String 50
Comments
Each shipment can have multiple packages, each with one tracking
number.
Tag Name
Description
6.80.90
<TransactionDate>
The transaction date of the wholesale order.
Example
<TransactionDate>2011-02-09</TransactionDate>
Data Type
DateTime
Comments
Tag Name
Description
6.80.91
<UnitPrice>
The default unit price for a product.
Example
<UnitPrice>50.00</ UnitPrice>
Data Type
Double
Comments
If the shipment item does not override the price, this will be used as the
default for a product. Rejected if negative or non-numeric.
Tag Name
Description
6.80.92
<UpdateMode>
Used to specify the behavior of the AddUpdateProduct method
Example
<UpdateMode>UpdateExistng</UpdateMode>
Data Type
Enumeration
UpdateExisting Existing product information is updated
IgnoreExisting Pre-existing information is not updated
ErrorOnExisting An error message is returned if the product
already exists.
Comments
Tag Name
Description
6.80.93
<Username>
The user name used for authentication.
Example
Data Type
String
Comments
See <Security>
Tag Name
6.80.94
<Varietal>
Varietal of a product.
Description
January 8, 2013
Page 118
of 160
<Varietal>Merlot</Varietal>
Data Type
String 50
Comments
Tag Name
Description
6.80.95
<VerificationDate>
The date that the age verification occurred.
Example
<VerificationDate>2006-02-10</VerificationDate>
Data Type
DateTime
Comments
Tag Name
Example
6.80.96
<VerificationMethod>
The means by which age was verified. Possible values are:
CopyOfIDOnFile
Employee
EstablishedMember
ExternallyVerified
IDVerifiedInPerson
Other
<VerificationMethod>IDVerifiedInPerson</VerificationDate>
Data Type
Enumeration
Description
Comments
Tag Name
Example
6.80.97
<VerifiedBy>
A free-form text describing who was responsible for the age verification.
This may be useful for audit purposes.
<VerifiedBy>Jeff Carroll</VerifiedBy>
Data Type
String 50
Description
Comments
Tag Name
Description
6.80.98
<Vintage>
Vintage of a product
Example
<Vintage>2001</Vintage>
Data Type
Int
Comments
Tag Name
6.80.99
January 8, 2013
<VolumeAmount>
Page 119
of 160
Example
<VolumeAmount>1</VolumeAmount>
Data Type
Double
Comments
Tag Name
Example
6.80.100
<VolumeUnit>
The volume units for a product. Possible values are:
Bottle
Case
Gallon
Liter
Milliliter
Ounce
Quart
WineGallon
<VolumeUnit>Bottle</VolumeUnit>
Data Type
Enumeration
Comments
Tag Name
Example
6.80.101
<WithZipPlus4Rates>
A flag which controls whether or not the GetTaxRate method should
return Zip+4 based tax rates when available
<WithZipPlus4Rates>true</ WithZipPlus4Rates >
Data Type
Boolean
Comments
Tag Name
Description
6.80.102
<Zip1>
Five digit zip code
Example
<Zip1>80302</Zip1>
Data Type
String 20
Description
Description
Comments
Tag Name
Description
January 8, 2013
6.80.103
<Zip2>
Four digit extended zip code
Page 120
of 160
<Zip2>5252</Zip2>
Data Type
String 20
Comments
7 Submitting a Request
Web services are at their core all about messages. To interact with the
ShipCompliant web services, the integrator needs to specify messages that meet
the formats of the desired methods exposed by the web services. These messages
are simply Xml documents. There are various tools on various platforms that
allow for the generation of these messages, but the data needs to be passed over
the wire is essentially platform agnostic. Each request in the ShipCompliant web
services must include both a SOAP header and a SOAP body. The SOAP header
includes the basic login and security information. The SOAP body contains the
details of the request. Once constructed, these documents may be submitted to
the URLs of the different ShipCompliant web services.
7.1 Security
The ShipCompliant web services are secured at the transport level via Secure
Sockets Layer (SSL). SSL is a reliable industry standard for securing internet
traffic. This simplifies the security requirements of the messages sent to and from
the web services. Web Service User credentials must be passed as part of every
request made to ShipCompliant web services in order to authenticate and
authorize each request.
All ShipCompliant webservice methods require authentication credentials to be
passed via a <Security> node in the request body. This method will be available
from a standard WSDL binding and does not require any special attributes in the
SOAP header.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetTaxRate xmlns="http://ws.shipcompliant.com/">
<Request>
<Security>
<Password>winery specific username</Password>
<Username>username password</Username>
<PartnerKey>your partnerkey</PartnerKey>
</Security>
<Address>
<State>AZ</State>
</Address>
</Request>
</GetTaxRate>
</soap:Body>
</soap:Envelope>
January 8, 2013
Page 121
of 160
8 Interpreting Responses
Each non-scalar response object is returned with a ResponseStatus, which may
contain either a value of Success or Failure. This indicates whether the
request was processed as expected. If the request failed, the integrator should
look at the Errors collection to determine the reason(s) for the failure. Each error
has a code, a key, a message, a target, and a type. Additional data may be
specified in the Data property for certain types of errors. For example, if an
address fails validation, an address suggestion may be returned along with the
error. The key refers to the unique value specified by the integrator for the given
domain object. The target refers to which type of domain object. For example, a
target of Shipment means that the key refers to a Shipment. The type indicates
the class of error; this enumerated value may be one of the following:
Authentication, Server, or Validation. Authentication errors indicate a
problem with the security information specified in the SOAP header. Server
errors indicate that an unhandled exception occurred on the server during the
processing of the request; these errors should be rare. If they do occur, the
request may be resubmitted by the client. Validation errors indicate that the
contents of the request do not meet the specific criteria of the method. If the
request was successful, the pre and post conditions were met and the response
may contain additional data that is of use to the integrator. When the server
responds with a server error with no further details it typically indicates there
was an unhandled exception parsing the request. Usually these errors indicate
the request does not conform with the schema defined by the WSDL.
January 8, 2013
Page 122
of 160
January 8, 2013
Page 123
of 160
January 8, 2013
Page 124
of 160
Address is incomplete.
Either State or Zip1 must be specified.
SaleType was not specified.
Unable to confirm given address.
January 8, 2013
Page 125
of 160
January 8, 2013
Page 126
of 160
Fulfillment
Location
Fulfillment
Service
Description
STANDARD
GROUND
EXPEDITED
2DAY
3DAY
Default handling
Best ground method
Best express method
Best 2 day service
Best 3 day service
January 8, 2013
Page 127
of 160
January 8, 2013
Page 128
of 160
More
Results?
SearchMoreSalesOr
ders
(token)
done
January 8, 2013
Page 129
of 160
10 Integration
While the ShipCompliant web services are built on industry standards
HTTP/1.1, SOAP/1.1, and WSDL/1.1 there are differences between the
implementation of toolsets on various platforms. These differences arise from
ambiguities in the specifications and varying interpretations by the companies
providing such toolsets. The ShipCompliant team has strived to conform to the
WS Basic Profile.
12 Address Validation
All addresses submitted to the system are validated against multiple third party
address verification databases to ensure that they represent a valid location
within the United States and that the County and zip code can be determined.
Complete address validation is run on the shipping address (not on the billing)
whenever orders are sent to be persisted or checked for compliance. Address
validation can also be run using a standalone method by using the
January 8, 2013
Page 130
of 160
The following example is the most lenient when it comes to address verification:
We will always normalize valid addresses, regardless of the setting of the address
flags. For example, if you pass in 123 North Main St. or 123 n. Main Street, they
will both get normalized to 123 N Main St .
Note: Some addresses will always be rejected. Addresses with an invalid zip code,
meaning that either the zip code does not exist or the zip code does not match the
state that you specified, will always be rejected.
Address Failure
January 8, 2013
Page 131
of 160
Address Suggestion
Page 132
of 160
January 8, 2013
Page 133
of 160
4984 250th St E
Faribault, MN
55021 - Should Result in a Component Mismatch error
65672 275th St
Freeborn, MN
56032 - Should Result in an Unknown Street error
12265 Kentucky Ave
Mason City, IA
50401 - Should result in an Address out of range error
111 E 17TH ST STE 1114
Austin, TX
78701 - Should Result in a Multiple matches for address error
13 Age Verification
13.1 Age Verification Response Types
When performing an Age Verification of a customer, there are four common response
types which you will see returned: Age Checks Not Enabled, Age Cannot be Verified,
Not of Age, and Is of Age.
January 8, 2013
Page 134
of 160
13.5Is Of Age
This is the only result with means that the customer is over 21. To reproduce this
on the Dev server, use the VerifyAgeOfPerson() method to create a manual age
check validation. (The Dev server does not make real age check service calls so it
will always return CouldNotBeConfirmed results without a prior
VerifyAgeOfPerson entry)
January 8, 2013
Page 135
of 160
14 Sample Workflows
14.1 E-Commerce Order Real-Time Check
The workflow below shows a typical workflow for an eCommerce application.
Before accepting payment for the order, the eCommerce system would run a
compliance check on the order before accepting payment. If the order is not
compliant, the CheckComplianceOfSalesOrder method will return discrete data
that will allow the eCommerce system to interpret the compliance results and
make the appropriate business decisions.
January 8, 2013
Page 136
of 160
Customer
Selects Wine
to Purchase
Customer
Enters Billing
and Shipping
Information
CheckCompli
anceOfSales
Order()
Use either
requested ship date
or estimated ship
date here. Use
shipment status of
InProcess if
payment will only be
authorized, not
accepted.
Compliant?
Assess
Severity of
Compliance
Failure
Options could
include:
1) Use different
shipping address
2) Change ship date
3) Change product
selection
Severe?
Present
options?
Severity can be
assessed by
examining the rule
types that failed.
Display
customer
friendly
message.
Example: Were
sorry for the
inconvenience, but
due to state
restrictions, we can
not ship to Utah at
this time.
Authorize
Payment
Customer
chooses a new
order option
Accepted?
Quarantine
order
N
Accept the order,
but flag it as not
compliant so
customer service
team can address
with customer.
CommitSales
Order()
Reject Order
January 8, 2013
Success
Page 137
of 160
Compliant?
Flag it as not
compliant so
customer service
team can address
with customer.
Quarantine
order
Accept
Payment
Accepted?
Notify customer
service team
CommitSales
Order()
Success
January 8, 2013
Page 138
of 160
15.2 CalculateSalesTaxDueForOrderResponse
January 8, 2013
Page 139
of 160
15.3GetTaxRateResponse
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Body>
<GetTaxRateResponse xmlns="http://ws.shipcompliant.com/">
<GetTaxRateResult>
<ResponseStatus>Success</ResponseStatus>
<TaxRates>
<TaxRate>
<AlcoholLowerBound>0</AlcoholLowerBound>
<AlcoholUpperBound>24</AlcoholUpperBound>
<ProductType>Wine</ProductType>
<RegionName>Arizona</RegionName>
<RegionType>State</RegionType>
<SaleType>Offsite</SaleType>
<TaxAmount>0.84</TaxAmount>
<TaxType>Excise</TaxType>
<TaxUnit>Dollar</TaxUnit>
<VolumeUnit>Gallon</VolumeUnit>
</TaxRate>
<TaxRate>
<AlcoholLowerBound>0</AlcoholLowerBound>
<AlcoholUpperBound>0</AlcoholUpperBound>
<ProductType>Wine</ProductType>
<RegionName>Arizona</RegionName>
<RegionType>State</RegionType>
<SaleType>Offsite</SaleType>
<TaxAmount>5.6</TaxAmount>
<TaxType>Sales</TaxType>
<TaxUnit>Percent</TaxUnit>
<VolumeUnit>Null</VolumeUnit>
</TaxRate>
<TaxRate>
<AlcoholLowerBound>0</AlcoholLowerBound>
<AlcoholUpperBound>0</AlcoholUpperBound>
<ProductType>Wine</ProductType>
<RegionName>Avondale</RegionName>
<RegionType>City</RegionType>
<SaleType>Offsite</SaleType>
<TaxAmount>1.5</TaxAmount>
<TaxType>Sales</TaxType>
<TaxUnit>Percent</TaxUnit>
<VolumeUnit>Null</VolumeUnit>
</TaxRate>
</TaxRates>
<ZipTaxRates />
</GetTaxRateResult>
</GetTaxRateResponse>
</soap:Body>
</soap:Envelope>
January 8, 2013
Page 140
of 160
15.4 GetTaxRateByAddressRequest
15.5 GetTaxRateByAddressResponse
January 8, 2013
Page 141
of 160
January 8, 2013
Page 143
of 160
15.8 CheckTemperatureForecastResponse
January 8, 2013
Page 144
of 160
January 8, 2013
Page 145
of 160
15.10
GetInventoryDetails Response
January 8, 2013
Page 146
of 160
16.2 SoapUI
SoapUI is a simple, free program which is great for one-off testing/experimentation
with the API. You can download the newest version, for free, from Sourceforge here:
http://sourceforge.net/projects/soapui/files/
January 8, 2013
Page 147
of 160
Once youve installed the program, you can then select to Create a New SoapUI Project
by selecting the option from the File menu.
Part of creating a new project is entering the WSDL for the service you are testing.
Available services are listed in both Section 5 of the above document as well as below in
Appendix C. Additionally, please remember that the latest versions of our documentation
are always available from within the Partner Portal.
Once youve created a new project, right click on the Method you would like to test and
select New Request. You can then copy API requests directly from the API logs as
shown in the following screenshot. (Please remember to remove the tag: <?xml
version="1.0"?> prior to submitting the request.)
January 8, 2013
Page 148
of 160
January 8, 2013
Page 149
of 160
January 8, 2013
Page 150
of 160
Version 1.2
<GetSalesTaxRatesByAddress>
1.
<CheckComplianceOfSalesorder>
2.
3.
2.
3.
<CheckComplianceOfSalesOrder> including
<SalesTaxCollected> calculated in Step 2
4.
Commit SalesOrder
January 8, 2013
Page 151
of 160
Important Changes:
The following represent changes to the API that are not compatible with previous
versions:
ProductService
<AddUpdateProduct>
<GetProduct>
-
SalesOrderService
Major Enhancements include:
o New ability to calculate SalesTaxDue during the Compliance Check
o Additional meta-data fields added to allow ShipCompliant to work more
effectively in data exchanged between systems
<CheckComplianceOfAndCommitSalesOrder>
<CheckComplianceOfSalesOrder>
<PersistSalesOrder>
<GetSalesOrder>
-
BrandService
Additional Fields have been added to the Brand service to encompass Wines of Own
Production compliance checks, as well as a variety of reasons in ShipCompliant
Wholesale.
AddUpdateBrand
<Owner>
- An optional node consisting of the following address fields. If <Owner> is
specified, the following address fields will be required fields.
<City> (String, Required) added under <Owner>
<Country> (String, Required if <Owner> node is included) added under <Owner>
<Name> (String, Required if <Owner> node is included) added under <Owner>
<State> (String, Required if <Owner> node is included) added under <Owner>
<Street1> (String, Required if <Owner> node is included) added under <Owner>
<Street2> (String, Optional) added under <Owner>
<Zip> (String, Required if <Owner> node is included) added under <Owner>
<ThisBrandIsBottledByAThirdParty> (Boolean, Optional) added under <Brand>
January 8, 2013
Page 152
of 160
ProductService
AddUpdateProduct
<Age> (Integer, Optional) added under <Product>
- Use either Age or Vinta
- ge depending on Product Type. Wine = Vintage, Spirits = Age
<Flavor> (String, Optional) added under <Product>
- Use either Flavor or Varietal depending on Product Type. Wine = Varietal, Spirits
= Flavor
<DefaultRetailUnitPrice> (Double, Optional) added under <Product>
- DefaultRetailUnitPrice replaces the deprecated UnitPrice
<DefaultWholesaleCasePrice> (Double, Optional) added under <Product>
<ProductDistribution> (String, Optional) added under <Product>
-Possible values include: Both, Direct, Wholesale, and Neither.
<UpdateMode> (Enum) added under <Product>
- Possible values include: UpdateExisting, ErrorOnExisting, IgnoreExisting
SalesOrderService
CheckComplianceOfAndCommitSaleOrder
CheckComplianceOfSalesOrder
<IncludeSalesTaxRates> (Enum, Optional)
- The IncludeSalesTaxRates option should be used to request that ShipCompliant
calculate the amount of sales tax due.
<CashierKey> (String, Optional) added under <SalesOrder>
- The CashierKey is a string used to identify the cashier responsible for processing
the sales order.
<SalesOrderDiscount> includes (Amount, Decimal), (Code, String), and (Type,
String) added under <Discounts>
- The SaleOrderDiscount consists of three fields. The dollar amount of the discount
is specified in the Amount field. The discount code captures the code related to the
discount such as a club discount code, etc. The type captures the type of discount
such as Club Discount.
<ExternalCustomerKey> (String, Optional) added under <SalesOrder>
- The ExternalCustomerKey is a string used for the customer number used in an
external order system including eCommerce website or point of sale system.
<ExternalOfferKeys> (String, Optional) added under <SalesOrder>
- The ExternalOfferKeys are strings used to identify the offer code associated to an
order.
<ExternalSalesOrderKey> (String, Optional) added under <SalesOrder>
- The ExternalSalesOrderKey is a string used for the order number used in an
external order system including eCommerce website or point of sale system.
January 8, 2013
Page 153
of 160
Page 154
of 160
GetSalesOrder
This request has not changed, but the responses will include the following new fields:
<ReferenceNumber>
- The ReferenceNumber refers to the PO/Reference number of an order.
<Shipping>
January 8, 2013
Page 155
of 160
ProductService
<UpdateProductWholesalePrices>
- The UpdateProductWholesalePrices method allows Wholesale prices to be updated
via web services.
<GetProductWholesalePrices>
- The GetProductWholesalePrices method lists a products current Wholesale prices.
<ChangeProductKey>
- The ChangeProductKey method allows a products Key or SKU to be updated via
web services.
<SearchProducts>
- The SearchProducts method allows searching for product data in the
ShipCompliant database.
January 8, 2013
Page 156
of 160
TaxService
<CalculateSalesTaxDueForOrder>
- The CalculateSalesTaxDueForOrder method provides Product Level tax
calculations, including a suggested amount of tax due.
January 8, 2013
Page 157
of 160
January 8, 2013
Page 158
of 160
21 Glossary
Element
eCommerce
POS
SOA
SOAP
SSL
OMS
WSE
January 8, 2013
Description
Electronic Commerce a website with shopping cart for ordering
wine.
Point of Sale
Service oriented Architecture
Simple Object Access Protocol used to pass well-formed XML
messages over HTTP
Secure Sockets Layer
Order Management System
WSE provides a foundation for building applications based on
Web services specifications published by Microsoft and industry
partners including WS-Security (OASIS 2004 standard),
WSPolicy, WS-SecurityPolicy, WS-Trust, WS-SecureConversation
and WS-Addressing.
Page 159
of 160
22 Copyright
Information in this document is subject to change without notice. Companies,
names, and data used in examples herein are fictitious unless otherwise noted.
No part of this document may be reproduced or transmitted in any form or by
any means, electronic or mechanical, for any purpose, without the express
written permission of Six88 Solutions. This document and the software it
describes are furnished under an end user license agreement, and may be used or
copied only in accordance with the terms of the license agreement. March,
2006, Six88 Solutions. All rights reserved. Information in this document is
subject to change without notice. Six88 Solutions assumes no responsibility or
liability for any errors, omissions, or inaccuracies that may appear in this
document.
23 Trademarks
ShipCompliant and ShipCompliant Web Services are trademarks of Six88
Solutions, Inc. ZIP Code and ZIP+4 are registered trademarks of the United
States Postal Service (USPS). All other brands and products are trademarks of
their respective holder(s).
SIX88 Solutions, Inc.
1877 Broadway St
Suite 703
Boulder, CO 80302
Phone: 303-449-5285
Fax: 720-528-7942
E-mail: support@shipcompliant.com
Web site: www.shipcompliant.com
January 8, 2013
Page 160
of 160