Sie sind auf Seite 1von 160

Web Services

Reference Guide
V2.0.13

Last Updated: January 8, 2013


Revision: 2.0.13
Copyright 2005-2011 Six88 Solutions. All rights reserved.

Web Services Reference Guide

Table of Contents
1
2

Table of Contents ........................................................................................................................... 2


Revision History.......................................................................................................................... 13
Introduction ................................................................................................................................. 18
2.1
Overview .............................................................................................................................. 18
2.2
Getting Started ................................................................................................................... 18
2.3
Current Version ................................................................................................................. 19
2.4
Versioning and Services ................................................................................................. 19
2.5
Web Service API User Portal ........................................................................................ 20
2.6
ShipCompliant Partner Keys ........................................................................................ 21
2.7
Partner Portal ..................................................................................................................... 22
2.7.1
Introduction .............................................................................................................. 22
2.7.2
Instructions................................................................................................................ 23
2.7.3
Tools Real-Time Shipment Status Report .................................................. 23
2.7.4
Tools Shipment Summary Report ................................................................. 24
2.7.5
Tools Partner API Activity Summary ........................................................... 25
2.7.6
API Activity Log ........................................................................................................ 26
2.8
Single Sign On ..................................................................................................................... 26
2.8.1
Introduction .............................................................................................................. 26
2.8.2
User Configuration .................................................................................................. 26
2.8.3
Implementation ....................................................................................................... 27
Order Lifecycle ............................................................................................................................ 29
3.1
Shipment Status Types ................................................................................................... 29
InProcess ....................................................................................................................................... 29
PaymentAccepted....................................................................................................................... 29
SentToFulfillment....................................................................................................................... 29
Shipped ........................................................................................................................................... 29
Delivered........................................................................................................................................ 29
Voided ............................................................................................................................................. 30
3.2
Compliance Status Types ............................................................................................... 30
Compliant ...................................................................................................................................... 30
NotCompliant ............................................................................................................................... 30
CompliantCommitted................................................................................................................ 30
LegacyCommitted....................................................................................................................... 30
Rules ................................................................................................................................................ 30
4.1
Age Verification Required ............................................................................................. 31
4.2
Aggregate Volume Limit ................................................................................................. 31
4.3
Brand Registration Required ....................................................................................... 31
4.4
Bypass Compliance Checks ........................................................................................... 31
4.5
Can not also be a Wholesaler........................................................................................ 31
4.6
Carrier Prohibited ............................................................................................................ 31
4.7
Carrier Service Prohibited ............................................................................................. 31
4.8
Consumer License Required ......................................................................................... 31
4.9
Control State ....................................................................................................................... 31

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 2

of 160

Web Services Reference Guide


4.10 Customer Aggregate Volume Limit ............................................................................ 31
4.11 Date of Birth Required .................................................................................................... 31
4.12 Direct Shipping License Required .............................................................................. 32
4.13 Direct Shipping Prohibited............................................................................................ 32
4.14 Distributor Appointment Notice Required (Wholesale) ................................... 32
4.15 Distribution Change Notice Required (Wholesale) ............................................. 32
4.16 Distribution Territory Change Notice Required (Wholesale) ......................... 32
4.17 Distribution Territory Designation Required (Wholesale) .............................. 32
4.18 Distributor Prohibited .................................................................................................... 32
4.19 Distributor Required ....................................................................................................... 32
4.20 Franchise State................................................................................................................... 32
4.21 Label Registration Required ......................................................................................... 32
4.22 Multiple Distributors Per Brand (Wholesale) ....................................................... 32
4.23 Multiple Distributors Per Territory Prohibited (Wholesale) .......................... 33
4.24 Per Bottle Volume Limit ................................................................................................. 33
4.25 Per Shipment Volume Limit .......................................................................................... 33
4.26 Previous Visit Required .................................................................................................. 33
4.27 Price Posting On New Products Required (Wholesale) ..................................... 33
4.28 Price Posting On Periodically Required (Wholesale) ......................................... 33
4.29 Price Posting On Price Decrease Required (Wholesale) ................................... 33
4.30 Price Posting On Price Increase Required (Wholesale) ..................................... 33
4.31 Price Posting Required (Wholesale) ......................................................................... 33
4.32 Producer Consent Required.......................................................................................... 33
4.33 Product Registration Renewal Required (Wholesale) ....................................... 33
4.34 Product Registration Required (Wholesale) .......................................................... 33
4.35 Product Registration Revision Required for ABV Changes (Wholesale) .... 34
4.36 Product Registration Revision Required for Additional Size (Wholesale) . 34
4.37 Product Registration Revision Required for New Case Size (Wholesale) .. 34
4.38 Product Registration Revision Required for New Vintage (Wholesale) ..... 34
4.39 Product Type Not Supported ....................................................................................... 34
4.40 Sales Person Registration Required (Wholesale) ................................................ 34
4.41 Samples Prohibited .......................................................................................................... 34
4.42 Solicitation Limit ............................................................................................................... 34
4.43 Special Shipping Label Required ................................................................................ 34
4.44 Tax Required ...................................................................................................................... 34
4.45 Valid COLA Required (Wholesale) ............................................................................. 34
4.46 Valid Product Types Required ..................................................................................... 35
4.47 Valid Region Required .................................................................................................... 35
4.48 Wholesale License Required (Wholesale)............................................................... 35
4.49 Wines Not of Our Own Production Prohibited ...................................................... 35
4.50 Null ......................................................................................................................................... 35
5 Method Summary ....................................................................................................................... 35
5.1
SalesOrderService Methods .......................................................................................... 35
5.1.1
AddExternalClubKey .............................................................................................. 35
5.1.2
AddExternalOfferKey ............................................................................................. 36
5.1.3
AddOrRemoveTag ................................................................................................... 36
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 3

of 160

Web Services Reference Guide


5.1.4
PersistSalesOrder .................................................................................................... 36
5.1.5
CheckComplianceOfSalesOrder ......................................................................... 36
5.1.6
CommitSalesOrder .................................................................................................. 36
5.1.7
CheckComplianceOfAndCommitSalesOrder ................................................. 37
5.1.8
AddTrackingNumber ............................................................................................. 37
5.1.9
AddPackageCost ...................................................................................................... 37
5.1.10 GetSalesOrder ........................................................................................................... 38
5.1.11 GetSalesOrderStatus .............................................................................................. 38
5.1.12 VoidSalesOrder......................................................................................................... 38
5.1.13 UpdateShipmentStatus ......................................................................................... 38
5.1.14 CommitSalesOrderUpdateKey ........................................................................... 38
5.1.15 SearchSalesOrders .................................................................................................. 39
5.1.16 SearchMoreSalesOrders ....................................................................................... 39
5.1.17 SetExternalClubKeys .............................................................................................. 39
5.1.18 SetExternalCustomerKey ..................................................................................... 39
5.1.19 SetExternalOfferKeys ............................................................................................. 39
5.1.20 SetExternalSalesOrderKey................................................................................... 40
5.1.21 SetFulfillmentException ....................................................................................... 40
5.1.22 ClearFulfillmentException ................................................................................... 40
5.1.23 GetPossibleFulfillmentHouses ........................................................................... 40
5.1.24 GetPossibeRuleTypes ............................................................................................ 40
5.1.25 GetPossibleShippingService ................................................................................ 41
5.2
Brand Service Methods ................................................................................................... 41
5.2.1
AddUpdateBrand ..................................................................................................... 41
5.2.2
AddUpdateBrandInGroup .................................................................................... 41
5.3
ProductService Methods ................................................................................................ 41
5.3.1
AddUpdateProduct ................................................................................................. 41
5.3.2
GetProduct ................................................................................................................. 42
5.3.3
DeleteProduct ........................................................................................................... 42
5.3.4
GetInventoryDetails ............................................................................................... 42
5.3.5
AdjustInventory ....................................................................................................... 42
5.3.6
SetInventory .............................................................................................................. 42
5.3.7
ChangeProductKey ................................................................................................. 42
5.3.8
UpdateProductWholesalePrices ........................................................................ 43
5.3.9
GetProductWholesalePrices................................................................................ 43
5.3.10 SearchProducts ........................................................................................................ 43
5.3.11 SearchMoreProducts.............................................................................................. 43
5.3.12 AddUpdateProductInGroup ................................................................................ 43
5.3.13 AllocateToMarkeplace ........................................................................................... 44
5.3.14 ClearAllPrices ............................................................................................................ 44
5.3.15 ClearFuturePrices ................................................................................................... 44
5.4
AddressService Methods................................................................................................ 44
5.4.1
ValidateAddress ....................................................................................................... 44
5.4.2
CheckTemperatureForecast................................................................................ 44
5.5
AgeService Methods......................................................................................................... 44
5.5.1
CheckAgeOfPerson.................................................................................................. 44
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 4

of 160

Web Services Reference Guide


5.5.2
VerifyAgeOfPerson ................................................................................................. 45
5.6
TaxService Methods ......................................................................................................... 45
5.6.1
GetTaxRate ................................................................................................................. 45
5.6.2
GetSalesTaxRatesByAddress .............................................................................. 45
5.6.3
CalculateSalesTaxDueForOrder ......................................................................... 45
5.7
SupplierService Methods ............................................................................................... 46
5.7.1
GetShippingPreferences ....................................................................................... 46
5.7.2
IsShippingAvailable ................................................................................................ 46
5.7.3
IsProductCompliant ............................................................................................... 46
5.8
WholesaleService Methods ........................................................................................... 46
5.8.1
AddBrandDistribution ........................................................................................... 46
5.8.2
AddDistributionTerritories ................................................................................. 47
5.8.3
AddUpdateDistributor........................................................................................... 47
5.8.4
GetAvailableTerritories ........................................................................................ 47
5.8.5
GetDistributor........................................................................................................... 47
5.8.6
RemoveBrandDistribution .................................................................................. 47
5.8.7
RemoveDistributionTerritories ......................................................................... 47
5.8.8
CheckComplianceOfInvoice ................................................................................. 48
5.8.9
CheckComplianceOfSalesOrder ......................................................................... 48
5.8.10 CommitSalesOrder .................................................................................................. 48
5.8.11 GetAllAvailableProductsInState ........................................................................ 48
5.8.12 GetProductAvailabilityByState .......................................................................... 48
5.8.13 GetProductAvailabilityInAllStates .................................................................... 49
5.8.14 PersistInvoice ........................................................................................................... 49
5.8.15 VoidInvoice ................................................................................................................ 49
5.9
FulfillmentService Methods .......................................................................................... 49
5.9.1
AddTrackingNumber ............................................................................................. 49
5.9.2
AddPackageCost ...................................................................................................... 50
5.9.3
GetClubShipmentsByBatch .................................................................................. 50
5.9.4
GetClubShipmentsReadyForInHouseFulfillment........................................ 50
5.9.5
GetDailyShipmentsByOrderNumber ............................................................... 50
5.9.6
GetDailyShipmentsReadyForInHouseFulfillment ...................................... 50
5.9.7
GetMoreShipments ................................................................................................. 51
5.9.8
GetShipmentsByBatch ........................................................................................... 51
5.9.9
GetShipmentsByFulfillmentKey ........................................................................ 51
5.9.10 RemoveTrackingNumber ..................................................................................... 51
5.9.11 SetFulfillmentExceptionByFulfillmentOrderKey ........................................ 51
5.9.12 ClearFulfillmentExceptionByFulfillmentOrderKey .................................... 52
5.9.13 GetDailyShipmentsReadyForWarehouseFulfillment ................................ 52
5.9.14 GetClubShipmentsReadyForWarehouseFulfillment ................................. 52
5.10 SSOService Methods ........................................................................................................ 52
5.10.1 GetSSOUrl ................................................................................................................... 52
5.11 All Service Methods .......................................................................................................... 52
5.11.1 GetVersion .................................................................................................................. 52
6 Method Details............................................................................................................................. 53
6.1
AddExternalClubKeys ..................................................................................................... 53
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 5

of 160

Web Services Reference Guide


6.1.1 Request............................................................................................................................. 53
6.2
AddExternalOfferKeys .................................................................................................... 53
6.2.1
Request ........................................................................................................................ 53
6.3
AddOrRemoveTag ............................................................................................................ 53
6.3.1
Request ........................................................................................................................ 54
6.4
PersistSalesOrder ............................................................................................................. 54
6.4.1
Request ........................................................................................................................ 54
6.5
CheckComplianceOfSalesOrder ................................................................................... 56
6.5.1 Request............................................................................................................................. 56
6.6
CheckComplianceOfAndCommitSalesOrder .......................................................... 58
6.6.1
Request ........................................................................................................................ 58
6.7
CommitSalesOrder ........................................................................................................... 60
6.7.1 Request............................................................................................................................. 60
6.8
CommitSalesOrderUpdateKey ..................................................................................... 60
6.8.1
Request ........................................................................................................................ 61
6.9
AddTrackingNumber ....................................................................................................... 61
6.10 GetSalesOrder..................................................................................................................... 61
6.10.1 Request ........................................................................................................................ 61
6.11 GetSalesOrderStatus ........................................................................................................ 62
6.11.1 Request ........................................................................................................................ 62
6.12 VoidSalesOrder .................................................................................................................. 62
6.12.1 Request ........................................................................................................................ 62
6.13 UpdateShipmentStatus ................................................................................................... 62
6.13.1 Request ........................................................................................................................ 62
6.14 AddUpdateProduct ........................................................................................................... 62
6.14.1 Request ........................................................................................................................ 63
6.15 AddUpdateProductInGroup .......................................................................................... 63
6.15.1 Request ........................................................................................................................ 64
6.16 DeleteProduct..................................................................................................................... 64
6.16.1 Request ........................................................................................................................ 64
6.17 GetProduct ........................................................................................................................... 65
6.17.1 Request ........................................................................................................................ 65
6.18 GetInventoryDetails ......................................................................................................... 65
6.18.1 Request ........................................................................................................................ 65
6.19 AdjustInventory................................................................................................................. 65
6.19.1 Request ........................................................................................................................ 65
6.20 SetInventory ....................................................................................................................... 66
6.20.1 Request ........................................................................................................................ 66
6.21 ChangeProductKey ........................................................................................................... 66
6.21.1 Request ........................................................................................................................ 66
6.22 ClearAllPrices ..................................................................................................................... 66
6.22.1 Request ........................................................................................................................ 67
6.23 ClearFuturePrices ............................................................................................................. 67
6.23.1 Request ........................................................................................................................ 67
6.24 UpdateProductWholesalePrices ................................................................................. 67
6.24.1 Request ........................................................................................................................ 67
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 6

of 160

Web Services Reference Guide


6.25 GetProductWholesalePrices ......................................................................................... 68
6.25.1 Request ........................................................................................................................ 68
6.26 SearchProducts .................................................................................................................. 68
6.26.1 Request ........................................................................................................................ 68
6.27 AddUpdateBrand .............................................................................................................. 69
6.27.1 Request ........................................................................................................................ 69
6.28 AddUpdateBrandInGroup ............................................................................................. 69
6.28.1 Request ........................................................................................................................ 69
6.29 SetFulfillmentException ................................................................................................. 70
6.29.1 Request ........................................................................................................................ 70
6.30 ClearFulfillmentException............................................................................................. 70
6.30.1 Request ........................................................................................................................ 70
6.31 GetPossibleFulfillmentHouses ..................................................................................... 70
6.31.1 Request ........................................................................................................................ 71
6.32 GetPossibleRuleTypes..................................................................................................... 71
6.32.1 Request ........................................................................................................................ 71
6.33 GetPossibleShippingService ......................................................................................... 71
6.33.1 Request ........................................................................................................................ 71
6.34 ValidateAddress ................................................................................................................ 71
6.34.1 Request ........................................................................................................................ 73
6.35 CheckTemperatureForecast ......................................................................................... 73
6.35.1 Request ........................................................................................................................ 73
6.36 CheckAgeOfPerson ........................................................................................................... 73
6.36.1 Request ........................................................................................................................ 74
6.37 VerifyAgeOfPerson ........................................................................................................... 74
6.37.1 Request ........................................................................................................................ 75
6.38 GetTaxRate .......................................................................................................................... 75
6.38.1 Request ........................................................................................................................ 76
6.39 GetSalesTaxRatesByAddress ........................................................................................ 76
6.39.1 Request ........................................................................................................................ 76
6.40 CalculateSalesTaxDueForOrder .................................................................................. 77
6.40.1 Request ........................................................................................................................ 77
6.41 IsShippingAvailable ......................................................................................................... 77
6.41.1 Request ........................................................................................................................ 77
6.42 GetShippingPreferences ................................................................................................. 78
6.42.1 Request ........................................................................................................................ 78
6.43 IsProductCompliant ......................................................................................................... 78
6.43.1 Request ........................................................................................................................ 78
6.44 SearchSalesOrders ............................................................................................................ 78
6.44.1 Request ........................................................................................................................ 79
6.45 SearchMoreSalesOrders ................................................................................................. 80
6.45.1 Request ........................................................................................................................ 80
6.46 SetExternalClubKeys ....................................................................................................... 80
6.46.1 Request ........................................................................................................................ 80
6.47 SetExternalCustomerKey ............................................................................................... 81
6.47.1 Request ........................................................................................................................ 81
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 7

of 160

Web Services Reference Guide


6.48 SetExternalOfferKeys ...................................................................................................... 81
6.48.1 Request ........................................................................................................................ 81
6.49 SetExternalSalesOrderKey ............................................................................................ 81
6.49.1 Request ........................................................................................................................ 81
6.50 AddBrandDistribution .................................................................................................... 81
6.50.1 Request ........................................................................................................................ 82
6.51 AddDistributionTerritories........................................................................................... 82
6.51.1 Request ........................................................................................................................ 82
6.52 AddUpdateDistributor .................................................................................................... 82
6.52.1 Request ........................................................................................................................ 82
6.53 GetDistributor .................................................................................................................... 83
6.53.1 Request ........................................................................................................................ 83
6.54 RemoveBrandDistribution ............................................................................................ 83
6.54.1 Request ........................................................................................................................ 83
6.55 RemoveDistributionTerritories .................................................................................. 84
6.55.1 Request ........................................................................................................................ 84
6.56 CheckComplianceOfInvoice .......................................................................................... 84
6.56.1 Request ........................................................................................................................ 84
6.57 CheckComplianceOfSalesOrder ................................................................................... 85
6.57.1 Request ........................................................................................................................ 85
6.58 CommitSalesOrder ........................................................................................................... 85
6.58.1 Request ........................................................................................................................ 86
6.59 GetAllAvailableProductsInState .................................................................................. 86
6.59.1 Request ........................................................................................................................ 86
6.60 GetProductAvailabilityByState .................................................................................... 86
6.60.1 Request ........................................................................................................................ 87
6.61 GetProductAvailabilityInAllStates.............................................................................. 87
6.61.1 Request ........................................................................................................................ 87
6.62 PersistInvoice ..................................................................................................................... 87
6.62.1 Request ........................................................................................................................ 87
6.63 VoidInvoice.......................................................................................................................... 88
6.63.1 Request ........................................................................................................................ 88
6.64 AddTrackingNumber ....................................................................................................... 88
6.64.1 Request ........................................................................................................................ 88
6.65 AddPackageCost ................................................................................................................ 89
6.65.1 Request ........................................................................................................................ 89
6.66 GetClubShipmentsByBatch ........................................................................................... 89
6.66.1 Request ........................................................................................................................ 89
6.67 GetClubShipmentsReadyForInHouseFulfillment ................................................. 89
6.67.1 Request ........................................................................................................................ 89
6.68 GetDailyShipmentsByOrderNumber ......................................................................... 90
6.68.1 Request ........................................................................................................................ 90
6.69 GetDailyShipmentsReadyForInHouseFulfillment ................................................ 90
6.69.1 Request ........................................................................................................................ 90
6.70 GetMoreShipments........................................................................................................... 90
6.70.1 Request ........................................................................................................................ 90
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 8

of 160

Web Services Reference Guide


6.71 GetShipmentsByBatch .................................................................................................... 91
6.71.1 Request ........................................................................................................................ 91
6.72 GetShipmentsByFulfillmentKey .................................................................................. 91
6.72.1 Request ........................................................................................................................ 91
6.73 RemoveTrackingNumber .............................................................................................. 91
6.73.1 Request ........................................................................................................................ 91
6.74 SetFulfillmentExceptionByFulfillmentOrderKey ................................................. 91
6.74.1 Request ........................................................................................................................ 92
6.75 ClearFulfillmentExceptionByFulfillmentOrderKey ............................................. 92
6.75.1 Request ........................................................................................................................ 92
6.76 GetClubShipmentsReadyForWarehouseFulfillment ........................................... 92
6.76.1 Request ........................................................................................................................ 92
6.77 GetDailyShipmentsReadyForWarehouseFulfillment.......................................... 92
6.77.1 Request ........................................................................................................................ 93
6.78 GetSSOUrl ............................................................................................................................. 93
6.78.1 Request ........................................................................................................................ 93
6.79 GetVersion ........................................................................................................................... 93
6.79.1 Request ........................................................................................................................ 93
6.80 Input Tags ............................................................................................................................ 94
6.80.1 <AllowResultingNegativeQuantity> ................................................................ 94
6.80.2 <BillingCustomerKey> .......................................................................................... 94
6.80.3 <BrandKey> ............................................................................................................... 94
6.80.4 <BrandName> ........................................................................................................... 94
6.80.5 <City> ........................................................................................................................... 94
6.80.6 <ClearExistingInventory> .................................................................................... 95
6.80.7 <ClearType> .............................................................................................................. 95
6.80.8 <CommitOption> ..................................................................................................... 95
6.80.9 <Company> ................................................................................................................ 95
6.80.10
<ComplianceStatus> .......................................................................................... 95
6.80.11
<Country> .............................................................................................................. 96
6.80.12
<County> ................................................................................................................ 96
6.80.13
<DateOfBirth> ...................................................................................................... 96
6.80.14
<DefaultCase> ...................................................................................................... 96
6.80.15
<DefaultWarehouse> ........................................................................................ 98
6.80.16
<Description>....................................................................................................... 98
6.80.17
<DestinationZipcode>....................................................................................... 98
6.80.18
<EffectiveDate> ................................................................................................... 98
6.80.19
<Email>................................................................................................................... 99
6.80.20
<ExternalSalesOrderKey> ............................................................................... 99
6.80.21
<Fax> ....................................................................................................................... 99
6.80.22
<FirstName> ......................................................................................................... 99
6.80.23
<FobPointKey> .................................................................................................... 99
6.80.24
<Freight> ............................................................................................................... 99
6.80.25
<FulfillmentAccount> .....................................................................................100
6.80.26
<FulfillmentExceptionType> .......................................................................100
6.80.27
<FulfillmentHouse> .........................................................................................100
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 9

of 160

Web Services Reference Guide


6.80.28
6.80.29
6.80.30
6.80.31
6.80.32
6.80.33
6.80.34
6.80.35
6.80.36
6.80.37
6.80.38
6.80.39
6.80.40
6.80.41
6.80.42
6.80.43
6.80.44
6.80.45
6.80.46
6.80.47
6.80.48
6.80.49
6.80.50
6.80.51
6.80.52
6.80.53
6.80.54
6.80.55
6.80.56
6.80.57
6.80.58
6.80.59
6.80.60
6.80.61
6.80.62
6.80.63
6.80.64
6.80.65
6.80.66
6.80.67
6.80.68
6.80.69
6.80.70
6.80.71
6.80.72
6.80.73
January 8, 2013

<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

Web Services Reference Guide


6.80.74
<Security> ...........................................................................................................113
6.80.75
<ShipDate> ..........................................................................................................113
6.80.76
<ShipDateMin> ..................................................................................................113
6.80.77
<ShipDateMax> .................................................................................................113
6.80.78
<ShipmentKey> .................................................................................................114
6.80.79
<ShipmentReserved> ......................................................................................114
6.80.80
<ShipmentStatus> ............................................................................................114
6.80.81
<ShippingCustomerKey> ...............................................................................114
6.80.82
<ShippingService> ...........................................................................................114
6.80.83
<SpecialInstructions> .....................................................................................116
6.80.84
<State> ..................................................................................................................116
6.80.85
<Street1> .............................................................................................................117
6.80.86
<Street2> .............................................................................................................117
6.80.87
<Tag> .....................................................................................................................117
6.80.88
<TaxSalesType> ................................................................................................117
6.80.89
<TrackingNumber> .........................................................................................117
6.80.90
<TransactionDate> ..........................................................................................118
6.80.91
<UnitPrice> .........................................................................................................118
6.80.92
<UpdateMode> ..................................................................................................118
6.80.93
<Username>........................................................................................................118
6.80.94
<Varietal> ............................................................................................................118
6.80.95
<VerificationDate> ...........................................................................................119
6.80.96
<VerificationMethod> .....................................................................................119
6.80.97
<VerifiedBy> .......................................................................................................119
6.80.98
<Vintage> .............................................................................................................119
6.80.99
<VolumeAmount> ............................................................................................119
6.80.100 <VolumeUnit> ....................................................................................................120
6.80.101 <WithZipPlus4Rates> .....................................................................................120
6.80.102 <Zip1> ...................................................................................................................120
6.80.103 <Zip2> ...................................................................................................................120
7 Submitting a Request ..............................................................................................................121
7.1
Security ...............................................................................................................................121
7.2
Single Supplier .................................................................................................................122
7.3
Super Supplier..................................................................................................................122
8 Interpreting Responses..........................................................................................................122
8.1
Error Types .......................................................................................................................122
8.2
Handling Errors ...............................................................................................................123
9 Using ShipCompliant as a Gateway to Fulfillment .......................................................126
9.1
Conditions for Fulfillment ...........................................................................................126
9.2
Automatic vs. Batch Mode ...........................................................................................126
9.2.1
Batch...........................................................................................................................126
9.2.2
Automatic .................................................................................................................126
9.3
Fulfillment Status Types ..............................................................................................126
9.4
Overwriting SalesOrders..............................................................................................127
9.5
Custom Service Types ...................................................................................................127
9.6
Sample Workflow ...........................................................................................................127
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 11

of 160

Web Services Reference Guide


9.7

Using ShipCompliant as a Gateway to Fulfillment for Level 1 Customers


128
9.8
Getting Shipment Status and Tracking Numbers ...............................................128
10 Integration ..................................................................................................................................130
10.1 Handling Enumerations ...............................................................................................130
11 Timing and Performance .......................................................................................................130
12 Address Validation ...................................................................................................................130
13 Age Verification .........................................................................................................................134
13.1 Age Verification Response Types .............................................................................134
13.2 Age Checks Not Enabled ...............................................................................................134
13.3 Age Cannot be Confirmed ............................................................................................135
13.4 Is Not of Age ......................................................................................................................135
13.5 Is Of Age ..............................................................................................................................135
14 Sample Workflows ...................................................................................................................136
14.1 E-Commerce Order Real-Time Check ..................................................................136
14.2 E-Commerce Order Pre-Fulfillment Check ........................................................138
15 Appendix A: Sample XML Requests and Responses ...................................................139
15.1 CalculateSalesTaxDueForOrderRequest ................................................................139
15.2 CalculateSalesTaxDueForOrderResponse .............................................................139
15.3 GetTaxRateResponse .....................................................................................................140
15.4 GetTaxRateByAddressRequest ..................................................................................141
15.5 GetTaxRateByAddressResponse ...............................................................................141
15.6 CheckComplianceOfSalesOrderResponse (Sample 1) ......................................142
15.7 CheckComplianceOfSalesOrderResponse (Sample 2 Bypassed compliance
checks)...............................................................................................................................................143
15.8 CheckTemperatureForecastResponse....................................................................144
15.9 CheckComplianceOfSalesOrder (Sample v1.2 SalesTax Response) ............145
15.10
GetInventoryDetails Response .............................................................................146
16 Appendix B: Development Tips & Tricks ........................................................................147
16.1 Use a Packet Sniffer to monitor SOAP requests and responses. ...................147
16.2 SoapUI .................................................................................................................................147
17 Appendix C: List of Values for Standard Fields .............................................................149
18 Appendix D: Version 1.2 Highlights ..................................................................................151
19 Appendix E: WSDL Documentation ...................................................................................158
20 Appendix F: Technical Notes about DateTime ..............................................................159
21 Glossary ........................................................................................................................................159
22
Copyright ................................................................................................................................160
23
Trademarks ............................................................................................................................160

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 12

of 160

Web Services Reference Guide

1 Revision History
Date
1/20/2006

Revision
1.0.0

Description
First release

Author
Jeff Carroll

2/19/2006

1.0.1

Added address validation description

Jeff Carroll

1/10/2007

1.0.2

Jeff Carroll

3/30/2007

1.0.3

Update section 3.1, Shipment


Status Types (added
PaymentAccepted).
Added four new rule types (Can
Not also be a Wholesaler, Per
Bottle Volume Limit, Producer
Consent Required, Samples
Prohibited).
Added AddTrackingNumber
method.
Updated sample workflows.

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

Added tag details to Sales Order


methods
Updated dev. server URLs
Added Default license
relationship to Sales Order
requests
Added license relationship value
to compliance response
Updated available fulfillment
house options
Added IsShippingAvailable
method
Added SearchSalesOrders method
Added SearchMoreSalesOrders
method
Added section for Using
ShipCompliant as a Gateway to
Fulfillment

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Jeff Carroll

Jeff Carroll
Jeff Carroll

Pawel
Smolarkiewicz

Jeff Carroll

Page 13

of 160

Web Services Reference Guide


6/27/2008

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

Added section for Using Tax


Service
Clarified Fulfillment Statuses
Added FulfillmentAcount support
Updated request parameters for
SearchSalesOrders method
Added section for Using
ShipCompliant as a Gateway to
Fulfillment for Level 1
Customers
Updated list of Fulfillment
Houses
Added FulfillmentExceptionType
Added Null RuleType
Updated list of supported
ShippingService types
Updated Account Credentialing
section with authentication
options
Added description of <security>
node
Updated sample responses
Added BrandService description
Removed ComplianceCheckMode
Updated description of
AddUpdateProduct method
Added appendix 18
development tips and tricks
Add Label Registration Required
Rule Type
Add GetInventoryDetails Method
Added SetFulfillmentException
method
Added WithZipPlus4TaxRates
field
Added BrandService description
Added Getting Started section
Added Appendix C: List of Values
for Standard Fields
Appendix E: WSDL
Documentation
Added Custom Service Types
Updated SearchSalesOrder
request parameters to include a
SalesOrderKeys list
Updated section 12, Address
Validation
Updated Error codes
Clarifications in Security section
Added VerifyAgeOfPerson
method
Defined support for international
addresses
Updated list of valid product
types
Updated description of

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Pawel
Smolarkiewicz
Jeff Carroll,
Pawel
Smolarkiewicz

Pawel
Smolarkiewicz

Jeff Carroll,
Pawel
Smolarkiewicz

Jeff Carroll,
Pawel
Smolarkiewicz

Jeff Carroll,
Pawel
Smolarkiewicz

Page 14

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Ryan Cook

Mark Hayes

Page 15

of 160

Web Services Reference Guide

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

Updated Fulfillment House Values


Added Get Possible methods
Added additional Age Service
information/samples
Added
UpdateProductWholesalePrices
method
Added GetProductWholesalePrices
Added "List of Values for Standard
Fields
Added New Shipping Services
Added Sample Tax Rate .XML
Response
Added new fields available under
SalesOrderMethods
Added new fields available under
Brand Methods
Added new fields available under
Product Methods
Added new fields available under
Supplier Methods
Added new fields available under
Wholesale Methods
Updated WSDL links
Added Appendix: V1.2
Enhancements
Updated Fields for V1.2
Updated DOB Requirements
Added Appendix F: Technical Notes
about DateTime
Added Method Descriptions for:
AddExternalClubKey
AddExternalOfferKey
SetExternalClubKeys
SetExternalOfferKey
SetExternalCustomerKey
SetExternalSalesOrderKey
SearchProducts
SearchMoreProducts
ClearFulfillmentException
GetPossibleFulfillmentHouses
GetPossibleRuleTypes
GetPossibleShippingService
ChangeProductKey
UpdateProductWholesalePrices
GetProductWholesalePrices
SearchProducts
IsProductCompliant
Added Sample XML Response for:
GetTaxRatesByAddress
CheckTemperatureForecast
Added the following

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Sam Sexson

Sam Sexson

Sam Sexson

Sam Sexson

Sam Sexson

Page 16

of 160

Web Services Reference Guide


WholesaleService methods:
AddBrandDistribution
AddDistributionTerritories
AddUpdateDistributor"
GetAvailableTerritories
GetDistributor
RemoveBrandDistribution
RemoveDistributionTerritories
8/19/2011

2.0.7

Added <UpdateMode> to
<AddUpdateProduct>
Added <UpdateMode> to
<AddUpdateBrand>

Sam Sexson

9/12/2011

2.0.8

Updated Fulfillment Location


VintageLogistics to
WineShippingSantaMaria for API
V1.1 and 1.2

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

Added WineDirect as a possible


Fulfillment House
Updated Input Tags
Added enhancements for Wholesale
Service
Added enhancements for Product
Service
Added enhancements for Brand
Service
Added <QuantityType> Each
Updated Ignore and Reject Defaults
in AddressOptions

Sam Sexson

10/18/2012

2.0.11

Added <NotTag> and<Channel>


fields to SearchSalesOrders method

Sam Sexson

12/18/2012

2.0.12

Refinements to existing information


and additional clarifications

Sam Sexson

1/8/2012

2.0.13

Added <AddPackageCost> API


Method

Sam Sexson

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 17

of 160

Web Services Reference Guide

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.

2.2 Getting Started


In addition to this reference guide, ShipCompliant has a development
environment that can be used to develop and test your integration. If you are
interested in receiving credentials to the development environment, please
contact ShipCompliant at 303-449-5285 and ask to speak to the person
responsible for managing partner integrations. Once you obtain credentials to the
development environment, it is critical that you log into the portal to do some
initial setup. From the Development Portal, you can also check the status of your
requests and verify that your data is set up as you expected.
We recommend that you walk through the Compliance Wizard (https://portaldev.shipcompliant.com/Web/QuickStartWizard/BasicInformation.aspx) , which
is an eleven-step wizard that helps wineries get setup and compliant in each state.
You can setup a few states to test your sales order requests. To do this, select a
few states under Step 2 Shipping Preferences for offsite and onsite sales, then
follow the rest of the steps, entering test data to make each step have a
Completed status.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 18

of 160

Web Services Reference Guide


We also have a series of training videos and help materials under the Help tab
in the main navigation that you may find helpful in understanding how
ShipCompliant works.
To search for sales orders to review your data, you can go to the Orders tab, then
Search Orders within the development portal (or go directly to https://portaldev.shipcompliant.com/Web/ViewPastOrders/SearchOrders.aspx).

2.3 Current Version


The current version of the ShipCompliant Web Services is 1.2
At the end of May 2011, ShipCompliant released version 1.2 of web services. This
section outlines all the changes that have been made to the ShipCompliant Web
Services API between versions 1.0 , 1.1, and 1.2.
ShipCompliant strongly encourages partners that are currently using version 1.0
or 1.1 of the web services to upgrade to version 1.2 of the web services. When
designing version 1.2, ShipCompliant made an effort to minimize the amount of
effort needed to upgrade.
Most changes made between versions 1.0 and 1.1 involve changing parameters
from type Enum to String. Updating the parameters from enumerations to
strings increases the flexibility of the API. For instance, a new fulfillment house,
product type or rule type can now be added without causing issues to existing
integrations. ShipCompliant recommends that any integration based on version
1.2 takes into consideration that new string values for existing fields may be
added in the future. Please refer to Section 0 for a list of all possible values for
each field supported in version 1.2 of the API.
Other noteworthy updates under version 1.2 include enhancements to the
TaxService to support sales tax rates on additional product types and a new
WholesaleService to support wholesale orders in the API. ShipCompliant has
also added support for Single Sign On into ShipCompliant from external systems.
Version 1.2 also includes the addition of new fields to support the same level of
functionality that is currently available through the web portal.
For those partners who elect not to upgrade to version 1.2, ShipCompliant plans
to continue to support version 1.0 and 1.1 indefinitely.

2.4 Versioning and Services


The production URL follows this format:
https://[DomainName]/Services/[Version]/[ServiceName].asmx

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 19

of 160

Web Services Reference Guide


The development URL follows this format:
https://ws-dev.shipcompliant.com/Services/[Version]/ [ServiceName].asmx
For example, the 1.2 development product services are located here:
https://ws-dev.shipcompliant.com/Services/1.2/ProductService.asmx
To access the field request and response formal definitions, append ?WSDL to
the end of the URL. For example:
https://ws-dev.shipcompliant.com/Services/1.2/ProductService.asmx?WSDL
To access the ShipCompliant Portal on the development server, where you can
setup your development account and view the data that you have inserted via web
services, you can login to https://portal-dev.shipcompliant.com. We will give you
separate sets of credentials to access the web services and portal.
The maintenance URL follows this format:
https://ws-maint.shipcompliant.com/Services/[Version]/ [ServiceName].asmx
The maintenance server always replicates the production database. Typically, the
maintenance database will be restored from production at the beginning of each
month, immedietly following a production update deployment. Therefore,
maintenance is a good way to test on real client data without affecting the
production database. Since the entire database is restored from production, the
usernames and passwords on maintenance will be the same as production. The
URL for the maintenance server portal is https://portalmaint.shipcompliant.com .
We also have a "demo" environment available at https://wsdemo.shipcompliant.com. This environment is "production grade"(stable) and is
available for you to run sales and marketing demonstrations. Please contact us if
you need access to a demo account.
Note: all communications must be via HTTPS (port 443); requests via HTTP
(port 80) will not be accepted.
The versions start at 1.0 and will continue up from there as the web service API is
updated with non-backwards compatible changes, (currently version 1.2 is the
latest available). The methods exposed via the web services are divided into
logical units, similar to a set of domain objects. These are: BrandService,
ProductService, SalesOrderService, TaxService, AgeService, AddressService,
SupplierService, WholesaleService, FulfillmentService, and SSOService.

2.5 Web Service API User Portal


A web service user has the ability to log into the ShipCompliant Web Service API
User Portal by using the existing web service username and password setup for
your account. This portal is available on the development server by going to
https://portal-dev.shipcompliant.com, and is available on the production server
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 20

of 160

Web Services Reference Guide


by going to https://portal.shipcompliant.com. The portal will provide
information regarding all the API requests and responses made by the
corresponding web service user. This portal can be used to monitor current API
activity and can also act as a debug tool if any issues have been encountered with
web services requests. Users have the ability to search for past requests based on
specified date ranges, activity type, and keyword. Users will also be able to view
XML formatted requests and responses. The web service portal also has links to
all the current Web Service Reference Guide and WSDLs for each service and
method. Below is a screen shot outlining the features available.

Figure 1 Web Service API User Portal

2.6 ShipCompliant Partner Keys


ShipCompliant supports the use of a PartnerKey for all API requests for a
specific integrator. This is a unique key provided by ShipCompliant to each
partner. It should be kept confidential. There are many benefits to using the
partner key such as improved support from ShipCompliant, increased security for
requests, and the possibility to track and display all requests made by a specific
partner across all ShipCompliant accounts that use the integration on a specific

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 21

of 160

Web Services Reference Guide


ShipCompliant instance such as the development or production server. The
PartnerKey is under the Security area, and is an alpha-numeric code that matches
the format displayed below.
<Security>
<Username>login</Username>
<Password>password</Password>
<PartnerKey>XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX</PartnerKey>
</Security>
ShipCompliant requests that Partners include their assigned PartnerKey in all
requests.
Please contact ShipCompliant for more information about obtaining and using a
partner key.

2.7 Partner Portal


2.7.1 Introduction
The ShipCompliant Partner Portal is designed to give partners visibility to all
accounts using an integration on a particular ShipCompliant server. This portal
allows partners to log into a single ShipCompliant account and view API requests
and responses for each installation (client) using the integration. The partner
portal also includes usage reports and statistics. To fully leverage the partner
portal, partners should include their assigned PartnerKey in all API
communications. This section includes instructions on how to use the partner
portal.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 22

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 23

of 160

Web Services Reference Guide

2.7.4 Tools Shipment Summary Report


The Shipment Summary Report provides a summary of all committed, nonvoided shipments within an account within a specific date range. This report will
give you a better idea of how many shipments have been processed for a given
account.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 24

of 160

Web Services Reference Guide

2.7.5 Tools Partner API Activity Summary


The API Activity Summary allows you to view a report of the API methods
processed by ShipCompliant over a specific date range.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 25

of 160

Web Services Reference Guide


2.7.6 API Activity Log
This log displays information for each XML request/response processed by
ShipCompliant. It will display details such as the method name, version of the
API used, as well as the results of the request. ShipCompliant will also have the
XML request and response available for download for any methods which result
in an error or non-compliant result.

2.8 Single Sign On


2.8.1 Introduction
ShipCompliant Single-Sign-On has been designed to allow partners with API
access to authenticate ShipCompliant Portal end users (with the users
permission). This enables a seamless user experience when navigating from your
system to ShipCompliant. In addition, it allows ShipCompliant UI components to
be embedded within the user interface of your application.
2.8.2 User Configuration
The user must authorize your system to sign them in to ShipCompliant. This
only needs to be configured once (per user) and can be one of several ways:
by the account administrator when the user is created (My Account >
Manage Users > Add User)
by the account administrator by editing the user (My Account > Manage
Users > Edit)
by the user themselves (My Account > My Settings > Single Sign On
Settings)

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 26

of 160

Web Services Reference Guide

Figure 2 Enabling SSO for a User

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

Sample Code (C# 4.0):


//construct the web service ShipCompliant API request
var req = new SSOUrlRequest
{
Security = new Security()
{
Username = "yourApiUser@winery.com",
Password = "yourPassword",

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 27

of 160

Web Services Reference Guide


PartnerKey = 00000000-0000-0000-0000-000000000000 //Important!
your partner key
},
UserEmail = john@winery.com, //user to "sign on" to ShipCompliant

NavigationToken = "analytics" //(optional) specify the function to navigate to


};
//make the call to ShipCompliant (dev. server)
var proxy = new SSOServiceSoapClient();
proxy.Endpoint.Address = new EndpointAddress("https://wsdev.shipcompliant.com/Services/1.1/SsoService.asmx");

var ssoResponse = proxy.GetSSOUrl(req);


//interpret the result
if (ssoResponse.ResponseStatus == ResponseStatus.Success)
{
//it worked! just redirect browser (or point iFrame) to the Url in the response
Response.Redirect(ssoResponse.Url);
}
else
{
//Oops there was a problem your system should handle this, it likely means the
user has not
//authorized SSO in ShipCompliant as described
var ssoErrorMsg = ssoResponse.Errors[0].Message;
}

SSO requires that your PartnerKey is passed with every request. In


general we ask that all web service requests originating from your system
(across all clients) include your Partner Key in the Security Node. The
Partner Key is supported in all versions of the ShipCompliant API. The
partner key will enable you to quickly view and analyze your API traffic
using the Partner Portal. Please contact ShipCompliant for questions
regarding your Partner Key or the Partner Portal.
The NavigationToken is an optional parameter which may be passed
in a SSO request. It allows ShipCompliant to bring up a specific
screen/function upon successful sign on. If not specified the users home
page in ShipCompliant is loaded. The following options are supported:
o Orders : brings up the search orders function in ShipCompliant
o Fulfillment: opens fulfillment management
o Analytics: opens the analytics table of contents
o Setup: opens the ShipCompliant setup area
o EmbeddedOrders: opens a screen with recent orders optimized
for smaller screens
o EmbeddedHome: opens the ShipCompliant homepage optimized
for smaller screens

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 28

of 160

Web Services Reference Guide


The EmbeddedOrders and EmbeddedHome options are optimized for SSO
and it is highly recommended that one of these is used as your single-sign-on
home page.

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.

3.1 Shipment Status Types


InProcess

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 29

of 160

Web Services Reference Guide


The Delivered status is an internal-only status and should not be set with a
shipment via integration. Delivered shipments count towards all reports. If you
enter tracking numbers with shipments, it is not necessary to manually mark the
shipments as Delivered because the system will track the packages automatically
and update the status to Delivered accordingly. Delivered orders count towards
both reports that are based on ship date as well as reports based on payment
date.

Voided

Voided shipments do not count towards reporting or volume limits. Voided


shipments are not visible in the ShipCompliant Portal

3.2 Compliance Status Types


Compliant

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 30

of 160

Web Services Reference Guide

4.1 Age Verification Required


This checker will use a third party age verification service to check if the
purchaser of the order is over 21.

4.2 Aggregate Volume Limit


This checker examines the volume of past shipments in the timeframe and adds
the volume of compliant shipments in this order to determine if the supplier is
under the aggregate volume limit for the region.

4.3 Brand Registration Required


This checker checks to see if all of the brands associated with the products in the
system have been registered in the region.

4.4 Bypass Compliance Checks


This check only corresponds to Level 1 ShipCompliant customer and will
automatically be returned for compliance checks for this account type. Refer to
Section 9.7 for additional details.

4.5 Can not also be a Wholesaler


This rule is not currently checked on the shipment level.

4.6 Carrier Prohibited


This checker checks to see if the carrier (FedEx, GSO, UPS) is prohibited from
shipping to the region.

4.7 Carrier Service Prohibited


This checker checks to see if the carrier service (FedEx Express, UPS Ground) is
prohibited from shipping to the region.

4.8 Consumer License Required


This rule is not currently checked on the shipment level.

4.9 Control State


This rule is not currently checked on the shipment level.

4.10 Customer Aggregate Volume Limit


This checker examines the volume of past shipments to the individual or
household in the timeframe and adds the volume of compliant shipments in this
order to the individual or household to determine if the supplier is under the
aggregate volume limit for the individual or household.

4.11 Date of Birth Required


This checker checks to see if the Date of Birth is required for orders and will mark
the shipment non-compliant if a date of birth is not included in the order.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 31

of 160

Web Services Reference Guide

4.12 Direct Shipping License Required


This checker examines the licenses on file for this supplier and makes sure a valid
license exists for the date of shipment.

4.13 Direct Shipping Prohibited


Examines the order type (internet, phone, etc.) used in each shipment and marks
the shipment as not compliant if a prohibited order type was used. Also examines
to see if the supplier is above or below and capacity caps that may exist.

4.14 Distributor Appointment Notice Required (Wholesale)


This rule is not currently checked on the shipment level.

4.15 Distribution Change Notice Required (Wholesale)


This rule checks the product registrations for each product in the order and
whether the corresponding relationship with the distributor has changed since
the products were last registered.

4.16 Distribution Territory Change Notice Required


(Wholesale)
This rule is not currently checked on the shipment level.

4.17 Distribution Territory Designation Required


(Wholesale)
This rule is not currently checked on the shipment level.

4.18 Distributor Prohibited


Checks to see if the supplier has had distributor relationships over the prohibited
timeframe.

4.19 Distributor Required


Checks to see if a distributor relationship has been specified over the date of
shipment. Note: this rule sometimes depends on the aggregate volume shipped to
the region.

4.20 Franchise State


This rule is not currently checked on the shipment level.

4.21 Label Registration Required


This checker checks to see if all of the labels associated with the products in the
system have been registered in the region.

4.22 Multiple Distributors Per Brand (Wholesale)


This rule is not currently checked on the shipment level.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 32

of 160

Web Services Reference Guide

4.23 Multiple Distributors Per Territory Prohibited


(Wholesale)
This rule is not currently checked on the shipment level.

4.24 Per Bottle Volume Limit


Examines the volume of each item to make sure that it is under the limit.

4.25 Per Shipment Volume Limit


Examines the volume of this shipment to make sure that it is under the limit.

4.26 Previous Visit Required


This rule is not currently checked on the shipment level.

4.27 Price Posting On New Products Required (Wholesale)


This checker checks to see if all new products included in a wholesale order have
valid price postings for the date of the shipment.

4.28 Price Posting On Periodically Required (Wholesale)


This checker checks to see if all products included in a wholesale order have valid
periodic price postings for the date of the shipment.

4.29 Price Posting On Price Decrease Required (Wholesale)


This checker checks to see if all products with price decreases included in a
wholesale order have valid price postings for the date of the shipment.

4.30 Price Posting On Price Increase Required (Wholesale)


This checker checks to see if all products with price increases included in a
wholesale order have valid price postings for the date of the shipment.

4.31 Price Posting Required (Wholesale)


This checker checks to see if all of the products included in a wholesale order
have valid price postings for the date of the shipment.

4.32 Producer Consent Required


This rule is not currently checked on the shipment level.

4.33 Product Registration Renewal Required (Wholesale)


This checker checks to see if all of the products included in a wholesale order
have active renewals based on the effective dates of product registrations.

4.34 Product Registration Required (Wholesale)


This checker checks to see if all of the products included in a wholesale order
have active product registrations based on the effective dates of product
registrations.
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 33

of 160

Web Services Reference Guide

4.35 Product Registration Revision Required for ABV


Changes (Wholesale)
This checker checks to see if all of the ABVs of the products included in an order
have been registered in the region for wholesale orders.

4.36 Product Registration Revision Required for Additional


Size (Wholesale)
This checker checks to see if all of the bottle sizes of the products included in an
order have been registered in the region for wholesale orders.

4.37 Product Registration Revision Required for New Case


Size (Wholesale)
This checker checks to see if all of the case configurations of the products
included in an order have been registered in the region for wholesale orders.

4.38 Product Registration Revision Required for New


Vintage (Wholesale)
This checker checks to see if all of the vintages of the products included in an
order have been registered in the region for wholesale orders.

4.39 Product Type Not Supported


This checker examines each product type within an order (wine, beer, spirits) and
compares the type with the product types currently supported by ShipCompliant
for compliance checks.

4.40 Sales Person Registration Required (Wholesale)


This rule is not currently checked on the shipment level.

4.41 Samples Prohibited


This rule is not currently checked on the shipment level.

4.42 Solicitation Limit


This rule is not currently checked on the shipment level.

4.43 Special Shipping Label Required


This rule is not currently checked on the shipment level.

4.44 Tax Required


This rule is not currently checked on the shipment level.

4.45 Valid COLA Required (Wholesale)


This rule examines the labels included in each wholesale order and checks
whether the labels have a valid COLA registrated with the TTB or not.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 34

of 160

Web Services Reference Guide

4.46 Valid Product Types Required


Examines the product type (wine, general merchandise, etc.) used in each
shipment and marks the shipment as not compliant if the product type is not
supported by ShipCompliant.

4.47 Valid Region Required


Examines the region in the order and compares it with the regions supported for
compliance checks within ShipCompliant.

4.48 Wholesale License Required (Wholesale)


This checker examines the licenses on file for this supplier and makes sure a valid
license exists for the date of wholesale shipment.

4.49 Wines Not of Our Own Production Prohibited


Examines the producer of each product used in each shipment and marks the
shipment as not compliant if a third party producer is prohibited.

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.

5.1 SalesOrderService Methods


5.1.1 AddExternalClubKey
Description: This method allows one or more External Club keys to be added to
a SalesOrder via the API
Usage: Adding an External Club key allows a user to reconcile Club shipments in
ShipCompliant with the related Club shipments in the Club Management system.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 35

of 160

Web Services Reference Guide


5.1.2 AddExternalOfferKey
Description: This method allows one or more External Offer keys to be added
to a SalesOrder via the API.
Usage: Adding an External Offer key to a sales order will assist the end user in
reconciling SalesOrders in ShipCompliant with offers made through their OMS.
5.1.3 AddOrRemoveTag
Description: This method allows one or more Tags to be added to a SalesOrder
via the API.
Usage: Adding a Tag to a sales order will assist the end user in reconciling
SalesOrders in ShipCompliant with offers made through their OMS by providing
an additional filter for existing orders.
5.1.4 PersistSalesOrder
Description: 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 address (see Section 12, Address Validation) to ensure
compliance data accuracy.
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.1.5 CheckComplianceOfSalesOrder
Description: 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.
Usage: Use this method for real time compliance checks from the order point of
entry (eCommerce, POS). When orders are checked for compliance, they do not
count towards future volume limits or reporting until they are committed.
5.1.6 CommitSalesOrder
Description: This method takes in a Sales Order Key in the request and saves
the order if it has previously been checked for compliance. If the CommitOption
is set to AllShipments, all the shipments in the sales order will be committed. If
it is set to CompliantShipments, just the non-committed compliant sales orders
will be committed. Please keep in mind that if CompliantShipments is selected,

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 36

of 160

Web Services Reference Guide


it will be of great value to the customer if the non-compliant, non-committed
orders were flagged as such for further review. And, if the CommitOption is not
specified, zero shipments will be committed.
Usage: Only sales orders that have been committed will count towards volume
limits or reporting. Use this method to commit all shipments in a sales order that
have previously been checked for compliance.
5.1.7 CheckComplianceOfAndCommitSalesOrder
Description: This method is similar to CheckComplianceOfSalesOrder and
performs the same validation. The difference is the CommitOption, which
provides the ability to commit various shipments in the sales order. If the
CommitOption is set to AllShipments, all the shipments in the sales order will
be committed. If it is set to CompliantShipments, just the non-committed
compliant sales orders will be committed. Please keep in mind that if
CompliantShipments is selected, it will be of great value to the customer if the
non-compliant, non-committed orders were flagged as such for further review.
And, if the CommitOption is not specified, zero shipments will be committed.
This last option is logically equivalent to the CheckCompliantOfSalesOrder
method.
Usage: Use this method to check and commit a single sales order in one
transaction. See the Section 14.1 for a sample E-Commerce workflow. Using this
method does not provide the flexibility that you get by using
CheckComplianceOfSalesOrder and CommitSalesOrder separately.
5.1.8 AddTrackingNumber
Description: This method takes in a salesorder key, an optional shipment key,
and an array of one or more tracking numbers (FedEx, UPS, or GSO). The
tracking numbers are added to the appropriate shipments.
Usage: This method can be used to add one or more tracking numbers to a
shipment. ShipCompliant will then use the tracking number to track the
shipment and update the status of the shipment based on the tracking results
returned from the carrier (FedEx, UPS, or GSO).
5.1.9 AddPackageCost
Description: This method takes in a tracking number, an optional invoice
number, and a description of the costs of fulfillment. The costs are added to the
appropriate shipments.
Usage: This method can be used to add shipping and fulfillment costs to a
shipment.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 37

of 160

Web Services Reference Guide


5.1.10 GetSalesOrder
Description: This method takes in a Sales Order Key and returns detailed data
about the sales order, including compliance status.
Usage: Use this method to query the full details of a sales order and the
shipments in the sales order.
5.1.11 GetSalesOrderStatus
Description: This method takes in a Sales Order Key and returns the
compliance status of the sales order and each shipment within the order.
Usage: Use this method as a quick check to query only the compliance status of
a sales order and the shipments in the sales order. For fully detailed sales order
and shipment information, use GetSalesOrder.
5.1.12 VoidSalesOrder
Description: This method takes in a sales order key and voids all shipments in
an existing sales order.
Usage: Voided shipments do not count towards volume limits or 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.
5.1.13 UpdateShipmentStatus
Description: This method takes in a sales order key and a shipment key to
update the shipment status of a shipment.
Usage: The method will not allow you to change the status of voided shipments.
Use this method to update the status to Shipped or Delivered once they have been
fulfilled and are in transit or delivery confirmation has been received. If
shipments are voided, you must reenter the order via PersistSalesOrder,
CheckComplianceOfSalesOrder, or CheckComplianceOfAndcommitSalesOrder to
make modifications to it.
5.1.14 CommitSalesOrderUpdateKey
Description: This method takes in a Sales Order Key in the request and saves
the order if it has previously been checked for compliance while also updating the
Sales Order Key. If the CommitOption is set to AllShipments, all the shipments
in the sales order will be committed. If it is set to CompliantShipments, just the
non-committed compliant sales orders will be committed. Please keep in mind
that if CompliantShipments is selected, it will be of great value to the customer
if the non-compliant, non-committed orders were flagged as such for further
review. And, if the CommitOption is not specified, zero shipments will be
committed.
Usage: Only sales orders that have been committed will count towards volume
limits or reporting. Use this method to commit all shipments in a sales order that

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 38

of 160

Web Services Reference Guide


have previously been checked for compliance. Use this method instead of
CommitSalesOrder if you would like to also update the Sales Order Key while
committing.
5.1.15 SearchSalesOrders
Description: 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 number list, status, etc. Summary details, including tracking
numbers, of Sales Orders and Shipments are returned for the first 100 orders that
meet the search criteria.
Usage: Use this method to get tracking numbers for a collection of orders, check
shipping status, check compliance status, or check fulfillment status. Results are
paged, and only the first 100 results are returned with this method. Use the
SearchMoreSalesOrders method (below) in conjunction with this method to page
through the result set.
5.1.16 SearchMoreSalesOrders
Description: 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.
Usage: 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.
5.1.17 SetExternalClubKeys
Description: This method allows one or more External Club keys to be assigned
to a SalesOrder.
Usage: Use this method to add External Club keys to a SalesOrder.
5.1.18 SetExternalCustomerKey
Description: This method allows an External Customer key to be assigned to a
SalesOrder in ShipCompliant.
Usage: Use this method to maintain Customer Numbers in both the OMS and
ShipCompliant.
5.1.19 SetExternalOfferKeys
Description: This method allows one or more External Offer keys to be added
to a specific SalesOrder.
Usage: Use this method to add External Offer keys assigned to a SalesOrder.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 39

of 160

Web Services Reference Guide


5.1.20 SetExternalSalesOrderKey
Description: This method allows an External SalesOrder key to be assigned to a
ShipCompliant SalesOrder.
Usage: Use of this method will allow easier reconciliation between
ShipCompliant and the customers OMS in cases where a SalesOrder is given a
key different from that maintained within the OMS.
5.1.21 SetFulfillmentException
Description: This method is used to mark a shipment with an 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.
Usage: This method can be used to mark a shipment with a fulfillment
exception, thus putting a fulfillment hold on the shipment. For example, if
inventory is not available for the shipment, use this method to put the shipment
on inventory hold.
5.1.22 ClearFulfillmentException
Description: This method is used to clear a fulfillment exception. 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.
Usage: This method can be used to clear a fulfillment exception from one or
more shipments in a SalesOrder, thus releasing a fulfillment hold on the
shipment(s).
5.1.23 GetPossibleFulfillmentHouses
Description: This method is used to determine all the acceptable values that
can be used when specifying the FulfillmentHouse of an order.
Usage: This method can be used to retrieve an up-to-date list of possible
FulfillmentHouse values.
5.1.24 GetPossibeRuleTypes
Description: This method is used to produce a full list of all RuleTypes which
may be returned when checking the compliance of orders.
Usage: This method may be used to preview all rule types which orders are
checked against for determining compliance results. Producing this list allows

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 40

of 160

Web Services Reference Guide


you to match returned values with an appropriate friendly message for end
users.
5.1.25 GetPossibleShippingService
Description: This method is used to retrieve an up to date list of possible
ShippingService values and their related Descriptions.
Usage: This method can be used to provide an up to date list of potential
ShippingServices values as well as to provide a reference between
ShippingService values and their corresponding service descriptions.

5.2 Brand Service Methods


5.2.1 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.
Usage: Use this method to add a new brand or update an existing brand in the
system. A brand must be defined before adding products.
5.2.2 AddUpdateBrandInGroup
Description: This method updates all brands with the same key across all
suppliers connected to a SuperSupplier.
Usage: Use this method to add or update a brand across multiple accounts
under a SuperSupplier simultaneously. This can be used to update brand
ownership, bottling, operation, acquisition, and trade name information.

5.3 ProductService Methods


5.3.1 AddUpdateProduct
Description: 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 already exists with the same product key and
brand key, then the product will be updated. Note: updating a product does NOT
change previously saved shipments and sales orders. However, all future use of
the product will reflect the updated properties.
Usage: Use this method to add a new product or update an existing products
specifications.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 41

of 160

Web Services Reference Guide


5.3.2 GetProduct
Description: This method takes in a product key and a brand key and returns
the product details.
Usage: Use this method to retrieve the details of an existing product.
5.3.3 DeleteProduct
Description: 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. A new product with the same product key and brand key can be
added once the existing product has been disabled.
Usage: Use this method to permanently remove or disable an existing product.
Once disabled, a new product with the same product key and brand key and be
added.
5.3.4 GetInventoryDetails
Description: This method provides inventory details for each Product on a
Fulfillment Location, Fulfillment Account basis.
Usage: Use this method to read inventory levels from a supported Fulfillment
Location. Data is usually available on a nightly basis from the Fulfillment
Location.
5.3.5 AdjustInventory
Description: This method adjusts (increments or decrements) one or several
logical inventory levels.
Usage: Use this method to adjust the current inventory level for one or more
products. This method will increment or decrement the current inventory
amount stored in ShipCompliant.
5.3.6 SetInventory
Description: This method sets the logical inventory level for one or more
products.
Usage: Use this method to set the logical inventory level for one or more
products. Note that the previous inventory level will be overwritten by the
inventory quantity specified in the request.
5.3.7 ChangeProductKey
Description: This method updates the Key/SKU assigned to a product.
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 42

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 43

of 160

Web Services Reference Guide


5.3.13 AllocateToMarkeplace
Description: This method updates the Partner Allocation and Minimum Price
for existing MarketPlace products.
Usage: Use this method to add or update marketplace advertisers and/or
minimum sale price for products that currently exist in the ShipCompliant
MarketPlace.
5.3.14 ClearAllPrices
Description: This method clears all specified wholesale prices for the specified
product.
Usage: Use this method to clear all previously specified wholesale distribution
prices for a specific wholesale product.
5.3.15 ClearFuturePrices
Description: This method clears only future prices for a specified product.
Usage: Use this method to clear all previously specified future wholesale
distribution prices for a specific wholesale product.

5.4 AddressService Methods


5.4.1 ValidateAddress
Description: This method is a standalone version of the address validation that
occurs within the SalesOrder mehods.
Usage: Use this method to validate the shipping address of individuals on a
customer profile to avoid address issues during the compliance check process.
5.4.2 CheckTemperatureForecast
Description: Get the temperature forecast and shipping preference by
destination zip code.
Usage: Use this method to retrieve the temperature forecast for the destination
zip code before shipping an order. This method will also return a shipping
decision (OKToShip, TooHot, or TooCold) based upon the supplier preferences.

5.5 AgeService Methods


5.5.1 CheckAgeOfPerson
Description: This method validates that an individual is 21 years of age or
above by calling a third party service. The interface to both providers is the same
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 44

of 160

Web Services Reference Guide


to the developer, but the supplier can choose between ChoicePoint and Idology
for running the age checks.
Usage: Use this method on the creation of a customer profile or when they first
enter an eCommerce site to verify that they are 21 years or older.
5.5.2 VerifyAgeOfPerson
Description: This method creates an override for the specified customer so
that future age checks on the same customer will pass.
Usage: Use this method to override a customer if that customer is known to be
of legal drinking age. For example, if the winery inspected the government-issued
ID of the customer, an override would reflect that they have already verified this
customer.

5.6 TaxService Methods


5.6.1 GetTaxRate
Description: ShipCompliant tracks sales, excise, and markup tax rates for
shipping wine throughout the United States. This method will return the tax rates
based on a full address, zip code, or all of the rates for a state.
Usage: Use this method at the time of transaction to charge accurate sales tax to
the consumer or as a regular service to update local tax tables.
5.6.2 GetSalesTaxRatesByAddress
Description: 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.
Usage: Use this method at the time of transaction to charge accurate sales tax to
the consumer or as a regular service to update local tax tables for the different
product types supported by ShipCompliant.
5.6.3 CalculateSalesTaxDueForOrder
Description: This method will return the sales tax rates for food, freight,
general merchandise, and wine products based on the destination address and
product provided in the request.
Usage: Use this method at the time of transaction to charge accurate sales tax to
the consumer or as a regular service to update local tax tables for the different
product types supported by ShipCompliant. This method returns product level
tax rates, so will be equally effective in Super Supplier implementation.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 45

of 160

Web Services Reference Guide

5.7 SupplierService Methods


5.7.1 GetShippingPreferences
Description: By sending a request for a single state, a response will be returned
listing whether the account has enabled preferences for any of the four different
relevant channels: direct off-site, direct on-site, three-tier, and wholesale. If a
request is sent with no state specified, the response will return the preferences for
every state.
Usage: Use this method to retrieve a list of all available channels in a specific
state. For example, call this method to determine availability for direct, threetier, or wholesale shipping on a state-by-state or all-at-once level.
5.7.2 IsShippingAvailable
Description: 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?
Usage: Use this method to do a light compliance check to determine if shipping
is available. For example, on the website, if the user has told you their zip code,
call this method with the zip code to determine if the supplier can even ship to
this zip code.
5.7.3 IsProductCompliant
Description: Check the compliance of a specific product in all states for a given
date. Passing this request will return one of three responses: NotAvialable
indicates that a state has not been selected as a shipping state in the account
setup; IsCompliant indicates that the product can be shipped to the indicated
state on the date referenced; or IsNotCompliant which indicates that current
account information indicates that the product may not be shipped compliantly
to the state and at the time referenced in the request. If the product is found to be
non-compliant, a list of the related Compliance Rules will be listed as part of the
response.
Usage: Use this method to confirm in which regions a product is available to be
shipped using the Direct to Consumer model.

5.8 WholesaleService Methods


5.8.1 AddBrandDistribution
Description: Associate existing Brand or Brands to a Distributor that has been
previously set up within ShipCompliant.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 46

of 160

Web Services Reference Guide


Usage: Use this method to indicate the specific Brands that a Distributor is
designated to sell by including the specified Brand Key and the Distributor Key
for the associated Distributor.
5.8.2 AddDistributionTerritories
Description: Indicate to which territories a Distributor ships.
Usage: Use this method to associate specific territories within a state to an
existing Distributor. The available territories can be retrieved using the
<GetAvailableTerritories> request and indicating the relevant state.
5.8.3 AddUpdateDistributor
Description: Add or Update a new or existing Distributor.
Usage: Use this method to add new Distributors to the associated ShipCompliant
account, as well as updating existing Distributors.
5.8.4 GetAvailableTerritories
Description: Retrieve a list of available distribution Territories within a given
state.
Usage: Use this method to find the available Territory values for a state. These
values can then be utilized in the <AddDistributionTerritories> and
<RemoveDistributionTerritories> requests.
5.8.5 GetDistributor
Description: Retrieve Distributor data for an existing Distributor.
Usage: Use this method to retrieve existing Distributor data. In addition to
Distributor Name, State, and Permit Number, the response to this request will
include Bill To/Ship To addresses, Owner and Licensing data, Effective Date
ranges, Distributed Brands, and Distribution Territories.
5.8.6 RemoveBrandDistribution
Description: Remove a Brand from an associated Distributor.
Usage: Use this method to indicate that a Brand is no longer distributed by an
associated Distributor by removing it from the Distributors list of associated
Brands.
5.8.7 RemoveDistributionTerritories
Description: Reduce the number of Distribution Territories associated with a
specific Distributor.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 47

of 160

Web Services Reference Guide


Usage: Use this method to remove a Territory from a Distributors list of
controlled territories. This indicates that the specified Distributor does not ship
to the removed Territory. A list of available Territories may be retrieved using
the <GetAvailableTerritories> method.
5.8.8 CheckComplianceOfInvoice
Description: 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.
Usage: Use this method to check the compliance of the invoice and to commit
the invoice to the database.
5.8.9 CheckComplianceOfSalesOrder
Description: This method takes in an order in the request and checks the order
for compliance after performing the same validation as PersistInvoice. The order
will not be committed via this method. Use CommitSalesOrder to persist an order
that was previously checked for compliance.
Usage: Use this method for real time compliance checks from the order point of
entry without committing the order in the database.
5.8.10 CommitSalesOrder
Description: This method takes in an order number in the request and saves
the order if it has previously been checked for compliance.
Usage: Only orders that have been committed will be considered for reporting.
Use this method to commit all shipments in an order that have previously been
checked for compliance.
5.8.11 GetAllAvailableProductsInState
Description: This method returns all the products available for distribution in a
single state based upon the compliance rules for the state.
Usage: Use this method to get a list of all products that can be sold in a specific
state. The response will be based upon the distributors configured for the
product as well as current price postings and product registrations.
5.8.12 GetProductAvailabilityByState
Description: This method returns the availability of a single product within a
single state.
Usage: Use this method to determine if a specific product can be sold in a single
state. The response will be based upon the distributors configured for the
product as well as current price postings and product registrations.
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 48

of 160

Web Services Reference Guide

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.

5.9 FulfillmentService Methods


5.9.1 AddTrackingNumber
Description: This method takes in a fulfillment key (SalesOrderKeyShipmentKey), and an array of one or more tracking numbers (FedEx, UPS, or
GSO). The tracking numbers are added to the appropriate shipments.
Usage: This method can be used to add one or more tracking numbers to a
shipment. ShipCompliant will then use the tracking number to track the
shipment and update the status of the shipment based on the tracking results
returned from the carrier (FedEx, UPS, or GSO).

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 49

of 160

Web Services Reference Guide


5.9.2 AddPackageCost
Description: This method takes in a tracking number, an optional invoice
number, and a description of the costs of fulfillment. The costs are added to the
appropriate shipments.
Usage: This method can be used to add shipping and fulfillment costs to a
shipment.
5.9.3 GetClubShipmentsByBatch
Description: Retrieves club shipments by fulfillment batch key.
Usage: Use this method to retrieve all club orders based upon the fulfillment
batch id assigned to the orders. Note that the fulfillment batch id is assigned
when orders are processed for fulfillment via the API or the Fulfillment
Management screen in ShipCompliant.
5.9.4 GetClubShipmentsReadyForInHouseFulfillment
Description: This method retrieves club shipments ready for InHouse
fulfillment.
Usage: Use this method to retrieve all club orders with a fulfillment location of
InHouse, a shipping status of SentToFulfillment, and a fulfillment status of None.
All club orders returned will be automatically added to a fulfillment batch and
given a fulfillment status of Accepted.
5.9.5 GetDailyShipmentsByOrderNumber
Description: This method retrieves daily shipments for fulfillment based upon
the sales order number of the shipments.
Usage: Use this method to retrieve daily shipments based upon the
corresponding sales order number of the shipments. Note that the sales order
must have a shipment status of SentToFulfillment, Shipped, or Delivered. If the
shipments have not been placed into a fulfillment batch, the shipments returned
will be added a to a fulfillment batch and given a fulfillment status of Accepted.
5.9.6 GetDailyShipmentsReadyForInHouseFulfillment
Description: This method retrieves daily shipments ready for InHouse
fulfillment.
Usage: Use this method to retrieve all daily orders with a fulfillment location of
InHouse, a shipping status of SentToFulfillment, and a fulfillment status of None.
All daily orders returned will be automatically added to a fulfillment batch and
given a fulfillment status of Accepted.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 50

of 160

Web Services Reference Guide


5.9.7 GetMoreShipments
Description: This method retrieves the next page of shipment results based on
a previous search for shipments. This method will return 100 results each time.
Usage: Use this method in conjunction with the other fulfillment service
methods that retrieve shipments. When there are more results available from the
search, call this method with the token returned from the original results or
returned from a subsequent call of GetMoreShipments to see the next page of
results.
5.9.8 GetShipmentsByBatch
Description: Retrieves shipments by fulfillment batch id.
Usage: Use this method to retrieve all sales orders based upon the fulfillment
batch id assigned to the orders. Note that the fulfillment batch id is assigned
when orders are processed for fulfillment via the API or the Fulfillment
Management screen in ShipCompliant.
5.9.9 GetShipmentsByFulfillmentKey
Description: This method retrieves shipments based upon the fulfillment key
(SalesOrderKey-ShipmentKey) of the shipments.
Usage: Use this method to retrieve shipments based upon the corresponding
fulfillment key of the shipments. If the shipments have not been placed into a
fulfillment batch, the fulfillment key used in the request will be added a to a
fulfillment batch and given a fulfillment status of Accepted. Note that the
fulfillment order must have a shipment status of SentToFulfillment, Shipped, or
Delivered to be returned by this method.
5.9.10 RemoveTrackingNumber
Description: This method takes in a fulfillment key (SalesOrderKeyShipmentKey), and an array of one or more tracking numbers (FedEx, UPS, or
GSO). The method will remove the tracking number(s) from the specified
shipment of the fulfillment order.
Usage: This method can be used to remove one or more tracking numbers from
a shipment.
5.9.11 SetFulfillmentExceptionByFulfillmentOrderKey
Description: This method sets a fulfillment exception for an order based upon
the fulfillment key specified in the request.
Usage: Use this method to create a fulfillment exception for a fulfillment order.
Examples of exceptions include Inventory, Setup, Temperature, or Other. These

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 51

of 160

Web Services Reference Guide


fulfillment exceptions be visible in the ShipCompliant portal and generate
Fulfillment Exception Alerts for users.
5.9.12 ClearFulfillmentExceptionByFulfillmentOrderKey
Description: This method clears a fulfillment exception for an order based
upon the fulfillment key specified in the request.
Usage: Use this method to clear a fulfillment exception for a fulfillment order.
When clearing an exception, the fulfillment status of the order can be set to
Accepted or None (Retry) based upon the parameters of the request.
5.9.13 GetDailyShipmentsReadyForWarehouseFulfillment
Description: This method retrieves daily shipments ready for fulfillment by the
specified warehouse.
Usage: Use this method to retrieve all daily orders with a fulfillment warehouse
specified, a shipping status of SentToFulfillment, and a fulfillment status of
None. All daily orders returned will be automatically added to a fulfillment batch
and given a fulfillment status of Accepted.
5.9.14 GetClubShipmentsReadyForWarehouseFulfillment
Description: This method retrieves club shipments ready for by the specified
warehouse.
Usage: Use this method to retrieve all club orders with a fulfillment warehouse
specified, a shipping status of SentToFulfillment, and a fulfillment status of
None. All club orders returned will be automatically added to a fulfillment batch
and given a fulfillment status of Accepted.

5.10 SSOService Methods


5.10.1 GetSSOUrl
Description: Get a nonce SSO url for the SSO token provided.
Usage: Use this method to perform a SSO into ShipCompliant. Note that an
optional navigation token can be included to launch a specific screen/function
upon successful sign on.

5.11 All Service Methods


5.11.1 GetVersion
Description: This method returns the current version of the web services.
Usage: Use this method to get the current version of the web services. This
method is also useful as a simple test method.
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 52

of 160

Web Services Reference Guide

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

This method associates one or tags to a sales order.

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

Tag is associated with sales order.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 53

of 160

Web Services Reference Guide


6.3.1 Request
Element

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide


ExternalOfferKeys
ExternalSalesOrderKey
FulfillmentType
OrderType
Payment
PurchaseDate
ReferenceNumber
RefundedOrderReference
RegisterID
SalesAssociateKey
SalesOrderKey
SalesTaxCollected
SettlementBatchNumber
ShipmentDiscount
ExternalClubKeys
FulfillmentAccount
FulfillmentHouse
FulfillmentExceptionReason
FulfillmentExceptionType
FulfillmentStatus
GiftNote
Freight
Shipping
Handling
LicenseRelationship
ShipDate
ShipmentKey
ShipmentStatus
ShippingService
InsuredAmount
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
Ship To:Zip2

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

Enumeration (V1.0) | String 50


(V1.1, 1.2)
Double
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
String 20

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 55

of 160

Web Services Reference Guide


TrackingNumbers
BrandKey
ProductKey
ProductQuantity
ProductPrice
CITB
ShipmentItemDiscount
Tag
Method Name

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 57

of 160

Web Services Reference Guide


Ship To:Zip2
TrackingNumbers
BrandKey
ProductKey
ProductQuantity
ProductPrice
CITB
ShipmentItemDiscount
Tag
Method
Name
Description
PreConditions
PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide


SalesOrderDiscount
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

January 8, 2013

Amount:Decimal, Code: String,


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
Enumeration (V1.0) |String 50
(V1.1, 1.2)
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

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 59

of 160

Web Services Reference Guide


Ship To:Zip1
Ship To:Zip2
TrackingNumbers
BrandKey
ProductKey
ProductQuantity
ProductUnitPrice
CITB
ShipmentItemDiscount
Tag
Method
Name
Description
PreConditions
PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 60

of 160

Web Services Reference Guide


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. The Sales Order Key will be updated to from the
Old key to the key specified in the Sales Order Key field.
6.8.1 Request
Element
CommitOption
SalesOrderKey
ExternalSalesOrderKey
OldSalesOrderKey
Payment
SalesTaxCollected
Method
Name
Description
PreConditions
PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 61

V1.2
Y

of 160

Web Services Reference Guide


Method
Name
Description
PreConditions
PostConditions

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

The ShipmentStatus is updated.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 62

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 63

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 64

V1.2
N
Y

of 160

Web Services Reference Guide


Method
Name
Description
PreConditions
PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

N
N

Page 65

V1.2
Y
N
N

of 160

Web Services Reference Guide


ProductKey
InventoryType
QuantityAdjustment
AllowResultingNegativeQuantity

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

This method can be used to change the ProductKey of an existing product.

PreConditions

An enabled product with the same product key and brand key exists.

PostConditions

Product key is updated.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 66

of 160

Web Services Reference Guide


PostConditions

Product future wholesale prices are removed.

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

Product wholesale prices and discount comment data is updated.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 67

V1.2
N
Y
Y

of 160

Web Services Reference Guide


FOBKey: String 20(Optional)
(If not indicated, prices are
applied to Default FOB only),
CasePrice: Int, (Optional) (If
not indicated, prices will be
removed/zeroed.
DiscountComment: String
4000 (Optional)
EffectiveDate: DateTime
(Optional)
Method
Name

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

Product wholesale prices and discount comment data is returned.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 68

V1.2
N
N
N
N

of 160

Web Services Reference Guide

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

The brand is created or updated.

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

The brand is created or updated.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 69

V1.2
Y
Y
N
N
N

of 160

Web Services Reference Guide


State
Street1
Street2
Zip
ThisBrandIsBottledByAThirdParty
ThisBrandIsProducedByAThirdParty
ThisBrandOperatesUnderATradeName
ThisBrandWasAcquiredFromAThirdParty
UpdateMode

Method
Name
Description

PreConditions
PostConditions

String 50
String 50
String 50
String 50
Boolean
Boolean
Boolean
Boolean
Enumeration

The shipments fulfillment status is updated.

FulfillmentExceptionType
Reason
SalesOrderKey
ShipmentKey

Enumeration
String 50
String 50
String 50

PreConditions
PostConditions

N
N
N
N
N
N
N
N
N

This method is used to mark a shipment with an 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 to be marked with a fulfillment exception must be committed
and not voided in ShipCompliant.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 70

V1.2
Y
Y
N

of 160

Web Services Reference Guide


Description
PreConditions
PostConditions

This method returns available values for the <FulfillmentHouse> field.


Option to return only account relevant values by including optional Boolean.
None.
Either All or Relevant FulfillmentHouse values returned.

6.31.1 Request
Element

Format

ReturnOnlyActiveForSupplier

Boolean

Method
Name
Description
PreConditions
PostConditions

Description
PreConditions
PostConditions

This method returns all possible RuleTypes checked against when


determining compliance results.
None.
All possible Compliance RuleTypes returned.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 71

of 160

Web Services Reference Guide


-UnknownStreet
-Validated
-ZipCodeDoesNotExist
-ZipCodeDoesNotMatchCityState
If the AddressStatus result is AddressSuggested, an AddressSuggestion object
is returned with the recommended address data. This object has these fields:
-City
-County
-State
-Street1
- Street2
-Zip1
-Zip2
The AddressSuggestion object also has Details and Parts that can be used
for a more detailed address lookup:
-Details
CityAbbreviation
CongressionalDistrict
CountyFips
TimeZone
TimeZoneCode
-Parts
Company
MailBoxName
PostDirection
PreDirection
StreetName
StreetNumber
StreetSuffix
SuiteName
SuiteNumber
Please note that the Street2 value that is returned in the AddressSuggestion
is our interpretation of the Address Parts that come back from the address
lookup service. You can optionally use the Parts to construct the Street1 or
Street2 differently if you wish.
If an invalid request is made, we return an AddressStatus of Null and one or
more of these errors:

PreConditions

January 8, 2013

257 - Country field is not a recognized ISO country code.


269 - County lookup failed.
260 - State field is not a recognized ISO state code.
250 - City field is required.
251 - Country field is required.
254 - State field is required.
255 - Address1 field is required.
256 - Zip1 field is required.
None.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 72

of 160

Web Services Reference Guide


PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 73

of 160

Web Services Reference Guide


-ServiceUnavailable
If an invalid request is made, we return an AgeStatus of Null and one or more
of these errors:

PreConditions
PostConditions

500 - Age checks are not enabled for this supplier.


501 - Address not specified.
502 - FirstName not specified.
503 - LastName not specified.
504 - Street1 not specified.
505 - City not specified.
506 - State not specified.
507 - Zip1 not specified.
None.
The result is stored in the ShipCompliant database. If a subsequent check is
run on an individual that has been previously determined to be of age based
on a matching name and address, we will not run the check against the third
party and will simply return IsOfAge.

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.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 74

of 160

Web Services Reference Guide


6.37.1 Request
Element
Address
City
Company
County
Country
DateOfBirth
Fax
FirstName
LastName
Phone
Email
State
Street1
Street2
Zip1
Zip2
VerificationDate
VerificationMethod
VerifiedBy
Method
Name
Description

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 75

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 76

V1.2
Y
Y
Y
N
Y
N
N
Y

of 160

Web Services Reference Guide


Method
Name
Description
PreConditions
PostConditions

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 77

V1.2
Y
N
N
N

of 160

Web Services Reference Guide


DateOfBirth
Email
Fax
FirstName
LastName
Phone
State
Street1
Street2
Zip1
Zip2
Method
Name
Description

PreConditions
PostConditions

DateTime
String 255
String 20
String 50
String 50
String 20
String 20
String 255
String 255
String 20
String 20

Details about availability in each channel will be returned in Boolean format.

State

String

PreConditions
PostConditions

Details about availability in each state will be returned in Boolean format.

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

By sending a request for a single state, a response will be returned listing


whether the account has enabled preferences for any of the four different
relevant channels: direct off-site, direct on-site, three-tier, and wholesale. If a
request is sent with no state specified, the response will return the
preferences for every state.
None

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 78

of 160

Web Services Reference Guide


list, status, etc. Summary details, including tracking numbers, of Sales Orders
and Shipments are returned for the first 100 orders that meet the search
criteria. Use this method to get tracking numbers for a collection of orders,
check shipping status, check compliance status, or check fulfillment status.
Results are paged, and only the first 100 results are returned with this
method. Use the SearchMoreSalesOrders method (below) in conjunction with
this method to page through the result set. You must specify at least one of
the date range options or an invoice number range in this request.
Results can be further filtered by using the <Channel> and <NotTag> fields.
<NotTag>: Populating this field allows the results returned to be filtered to
NOT include orders with the specified Tag applied.
<Channel>: This field specifies the sales channel from this the returned
orders originate. Available values include: All, MyOrders and
ThridPartyAdvertiser.

PreConditions
PostConditions

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. In addition a PagingCookie will be
returned which can be used to retrieve additional results via the
SearchMoreSalesOrders method described below.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide


Tag
TrackingExistence
FulfillmentAccount
FulfillmentExceptionType
SalesOrderKeys
NotTag
Channel
Method
Name
Description

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 80

V1.2
Y
N
Y

of 160

Web Services Reference Guide

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

External Club Key is associated with sales order.

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

External Offer Key is updated on sales order.

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

This method associates an External SalesOrder Key to a sales order.

PreConditions

A sales order with the same sales order key exists in the database with nonvoided shipments.

PostConditions

External SalesOrder Key is updated for sales order.

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

This method updates the Brands distributed by a Distributor.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 81

V1.2
Y
Y

of 160

Web Services Reference Guide


PreConditions

An existing Brand and an existing Distributor.

PostConditions

Brand is associated with the Distributor.

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

This method updates the Territories shipped to by a Distributor.

PreConditions

An existing Distributor.

PostConditions

Distribution Territory is associated with the Distributor.

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

2 digit ISO state code


String 50
String 50
String 50
String 50
String 50
String 50
String 255
String 100
String 255

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 82

V1.2
Y
N
N
Y
Y
N
Y
Y
N
N

of 160

Web Services Reference Guide


Ship To:Fax
Ship To:Phone
Ship To:StateCode
Ship To:Street1
Ship To:Street2
Ship To:Zip1
Ship To:Zip2
Bill To: City
Bill To:Company
Bill To:County
Bill To:Email
Bill p To:Fax
Bill To:Phone
Bill To:StateCode
Bill To:Street1
Bill To:Street2
Bill To:Zip1
Bill To:Zip2
HandlesCompliance
IsSelfDistribution
EffectiveDate
ExpirationDate
AdditionalNotes

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

This method retrieves all data related to an existing Distributor.

PreConditions

An existing Distributor.

PostConditions

Distributor information is returned.

6.53.1 Request
Element

Format

DistributorKey

String 50

Required
V1.0
V1.1
N/A
N/A

Method
Name

6.54 RemoveBrandDistribution

Description

This method removes a Brand from association with a Distributor.

PreConditions

An existing Brand associated with an existing Distributor.

PostConditions

Brand is disassociated from the Distributor.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide

Method
Name

6.55 RemoveDistributionTerritories

Description

This method updates the Territories shipped to by a Distributor.

PreConditions

An existing Distributor with one or more existing associated Territories.

PostConditions

Distribution Territory is disassociated from the Distributor.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

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

Web Services Reference Guide


ShippingCustomerKey
ShippingService
Tag
TransactionDate
Method
Name

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 85

of 160

Web Services Reference Guide

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

The shipments in the order number are marked as committed in the


database.

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.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 86

of 160

Web Services Reference Guide


6.60.1 Request
Element

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 87

V1.2
Y
Y
Y
N

of 160

Web Services Reference Guide


ReferenceNumber
DefaultWarehouse
Freight
ShipDate
BrandKey
FobPointKey
ItemReserved
ProductKey
Quantity
QuantityType
UnitPrice
ShipmentKey
ShipmentReserved
ShippingService
Tag
TransactionDate
Method
Name
Description
PreConditions
PostConditions

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

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 added to the appropriate shipments.
A sales order with the same sales order key exists in the database with nonvoided shipments.
The tracking number will be stored with the appropriate shipments.

6.64.1 Request
Element

Format

FulfillmentOrderKey
TrackingNumbers

String 50
String 50

January 8, 2013

Required
V1.0
V1.1
Y
Y
Y
Y

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 88

V1.2`
Y
Y

of 160

Web Services Reference Guide


Method
Name

6.65 AddPackageCost
(Fulfillment Service)

Description
PreConditions
PostConditions

This method takes in a tracking number and a description of the fulfillment


costs.
A package with the same tracking number exists in the database with nonvoided shipments.
The package cost will be stored with the appropriate shipments.

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

Retrieves club shipments by fulfillment batch key.

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

This method retrieves club shipments ready for InHouse fulfillment.

PreConditions

Club shipments with a fulfillment house of InHouse, shipping status of


SentToFulfillment, and a fulfillment status of None exist in the database.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 89

V1.2
N
N
N

of 160

Web Services Reference Guide

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

This method retrieves daily shipments ready for InHouse fulfillment.

PreConditions

Daily shipments with a fulfillment house of InHouse, shipping status of


SentToFulfillment, and a fulfillment status of None exist in the database.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 90

V1.2
Y

of 160

V1.2
N
N

Web Services Reference Guide

Method
Name

6.71 GetShipmentsByBatch

Description

Retrieves shipments by fulfillment batch key.

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

This method retrieves shipments for fulfillment based upon the


FulfillmentKey (SalesOrderKey-ShipmentKey) of the shipments.
A fulfillment order with the same order key exists in the database with nonvoided shipments. The fulfillment order must have a shipment status of
SentToFulfillment, Shipped, or Delivered.
All shipments returned by the method will be placed into a fulfillment batch
and the fulfillment status of each shipment will be updated to Accepted.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 91

of 160

Web Services Reference Guide


specified in the request.
PreConditions

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

This method retrieves club shipments ready for Warehouse fulfillment.

PreConditions

Club shipments with a fulfillment house specified, shipping status of


SentToFulfillment, and a fulfillment status of None exist in the database.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 92

of 160

Web Services Reference Guide


Description

This method retrieves daily shipments ready for Warehouse fulfillment.

PreConditions

Daily shipments with a fulfillment house specified, shipping status of SentToFulfillment,


and a fulfillment status of None exist in the database.

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

This method returns the current version of the web services.

PreConditions

None.

PostConditions

The current version of the web services is returned.

6.79.1 Request
Element

January 8, 2013

V1.1
N
N

Format

V1.1
N
Y

Required
V1.0
V1.1

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 93

V1.2

of 160

V1.2
N
Y

Web Services Reference Guide

6.80 Input Tags


Tag Name

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

Keep it as short as possible (2-3 characters)

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 94

of 160

Web Services Reference Guide


Tag Name

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

This option is available in the CheckComplianceOfSalesOrder,


CommitSalesOrder, and CommitSalesOrderUpdateKey. In general, you
should always use the AllShipments option. CompliantShipments is
useful in very few circumstances, and poses risks. Please contact
ShipCompliant to review your workflow and recommend the appropriate
option.

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>

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 95

of 160

Web Services Reference Guide

Example

When used as a filter option, filters on compliant vs. not compliant vs.
any.
<ComplianceStatus>Compliant</ComplianceStatus>

Data Type

Enumeration

Comments

Options are Compliant, NotCompliant, or Any. Any is the default


behavior.

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

International shipping addresses are supported for both billing and


shipping addresses. If ShipTo.Country is not (empty), "US", "USA",
"U.S.", "U.S.A.", "United States", or "United States of America", then it
will be interpreted as international and handled as follow. Address
validation is bypassed . Compliance checks are not run on international
shipping addresses. Instead, a non-compliant result will be returned
with a ValidRegionRequired rule type and appropriate message.
Because of this guaranteed compliance failure for shipments with
international delivery addresses, it is important to use the AllShipments
choice as the CommitOption.

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

Date of birth is required for many state reports. If a date is specified,


validation is performed to ensure the recipient is 21.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 96

of 160

Web Services Reference Guide


750ml, the default case is:
12X750
For a complete listing contact ShipCompliant support. A subset of the
possible values is included below for wine products:
12X750
12X1000
6X1500
4X3000
4X4000
4X5000
1X18000
120X50
120X100
48X187
24X375
1X6000
1X27000
12X375
6X750
15X750
6X1000
1X3000
1X9000
12X187
24X187
8X1500
12X500
3X1500
1X12000
6X375
1X15000
1X5000
50X50
96X50
4X750
12X1500
3X3000
6X3000
24X200
24X250
24X355

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 97

of 160

Web Services Reference Guide


6X500
2X1500
1X1500
Example

<DefaultCase></DefaultCase>

Data Type

String 50

Comments

For a complete listing contact ShipCompliant support. To request a new


DefaulCase configuration please contact ShipCompliant support.

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

<Description>2001 Angelic Merlot</Description>

Data Type

String 50

Comments

Optional field to help wineries identify products.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 98

of 160

Web Services Reference Guide


Tag Name
Description

6.80.19
<Email>
Email address.

Example

<Email>test@test.com</Email>

Data Type

String 255

Comments

If specified, validation is performed to ensure proper email format.

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

This field is optional.

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.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 99

of 160

Web Services Reference Guide


Example

<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

Some wineries will have multiple fulfillment accounts at a third party


fulfillment house. For example, a given winery may have one fulfillment
account for web orders and a different account for club orders. This field
is used to indicate the fulfillment account under which the shipment
should be shipped. This is an optional field.

Tag Name
Description

6.80.26
<FulfillmentExceptionType>
The type of fulfillment exception.

Example

<FulfillmentExceptionType>Inventory</FulfillmentExceptionType>

Data Type

String 50

Comments

If a shipment has a FulfillmentStatus of type Exception, the


FulfillmentExceptionType will tell you the kind of exception that
occurred. Possible values are:
None
Inventory
NonCompliant
Other
Updated
Setup
Temperature
Voided

Tag Name
Description

6.80.27
<FulfillmentHouse>
The fulfillment location to be used for this shipment.

Example

<FulfillmentHouse>WineShipping</FulfillmentHouse>

Data Type

Enumeration (V1.0), String (V1.1)

Comments

Note: FulfillmentHouse is sometimes referred to FulfillmentLocation


within the ShipCompliant portal.
Default behavior is Null (not specified). Options are:

Description

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 100

of 160

Web Services Reference Guide


AlexanderValleyCellars
BacchusFulfillment (V1.0)
BacchusDistribution (V1.1, 1.2)
CopperPeakLogistics
Groskopf
InHouse
InHouseFedEx
InHouseUPS
NewVineLogistics (V1.0)
IBG (V1.1, 1.2)
WineDirect (V1.1, 1.2)

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

The fulfillment order key is used to specify a specific shipment belonging


to a sales order. It is constructed by taking the SalesOrderKey and
appending a - character, followed by the ShipmentKey.

Tag Name

6.80.29
<FulfillmentStatus>
A Status used for tracking the workflow of communicating order data to
third party fulfillment location.

Description

Description

See 9.3, Fulfillment Status Types, for more information.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 101

of 160

Web Services Reference Guide


Example

<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

Default behavior is Null (not specified). Options are Club or Daily if


used.

Tag Name
Description

6.80.31
<GiftNote>
Gift note for a shipment.

Example

<GiftNote>Happy Birthday</GiftNote>

Data Type

String 1024

Comments

Optional field for each shipment.

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

Options are Yes, No, Any. Any is the default behavior.

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

Default behavior is false. Address verification is an extremely important


component of ShipCompliant. Since rules can be on the city, county, zip,
state, or national level, it is important to know the exact shipping
destination address. We recommend that you leave this value as false
and allow the end user to correct/review street level errors.
See section 12, Address Validation, for more information.

Description

Description

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 102

of 160

Web Services Reference Guide

Tag Name
Description

6.80.34
<InsuredAmount>
Amount of insurance for a shipment.

Example

<InsuredAmount>10</InsuredAmount>

Data Type

Double

Comments

Optional field for each shipment. If specified, validation is performed to


ensure the value is not negative or non-numeric.

Tag Name
Description

6.80.35
<InventoryType>
The type of inventory level.

Example

<InventoryType>Available</InventoryType>

Data Type

Enumeration

Comments

Note: InventoryType is also referred to as Level Type in some inventory


methods.
Possible Values:
Null
All
Available
BackOrder
Cosmetic
Custom1
Custom2
Custom3
Damage
Held
OnHand
OnOrder
Reserved

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>

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 103

of 160

Web Services Reference Guide


Example

<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

The Default license relationship should be used in general. This allows


ShipCompliant to determine the correct license relationship type based
on your accounts configuration. The specific types may be used as an
override.

Description

Setting the correct license relationship type is important because it


controls which shipments are checked for compliance against which set
of rules and which shipments count towards reports.
Tag Name

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

ShipCompliant provides a temperature forecast for up to 7 days in the


future, therefore this field should not be set to greater than 7.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 104

of 160

Web Services Reference Guide

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

This is also referred to as Invoice Number.

Tag Name
Description

6.80.44
<OrderNumber>
A unique identifier for the wholesale order

Example

<OrderNumber>INV1001</OrderNumber>

Data Type

String 50

Comments

This is also referred to as Invoice Number.

Tag Name
Description

6.80.45
<OrderReserved>
This is a reserved field for future use.

Example

<OrderReserved></OrderReserved>

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 105

of 160

Web Services Reference Guide


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.46
<OrderType>
The type of order source. Possible values are
Internet
Phone
Mail
Fax
Club
InPerson
<OrderType>Internet</OrderType>

Data Type

Enumeration

Comments

InPerson implies an onsite order. The other options imply an offsite


order.

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

Date range searches are inclusive of the end dates

Tag Name

6.80.50
<PaymentDateMax>
When using a ship date range, this is the high end of the range

Description

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 106

of 160

Web Services Reference Guide


Example

<PaymentDateMax>2006-02-02</PaymentDateMax>

Data Type

DateTime

Comments

Date range searches are inclusive of the end dates

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 107

of 160

Web Services Reference Guide


Example

<ProductQuantity>6</ProductQuantity>

Data Type

Int

Comments

A shipment with only one shipment item with a ProductQuantity of 12


that referencecs a product with a volume of 1 bottle (750 mL) would give
you a total volume of 1 case (12 bottles or 9 L) for the shipment. Rejected
if negative or non-numeric.

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

Only wine and sparkling wine products are included in direct to


consumer compliance checks. On a report by report basis, we determine
the taxability of each product type. For example, in some states food
items are exempt from sales tax and in some states freight is exempt.

Tag Name
Description

6.80.57
<ProductUnitPrice>
The actual unit price charged for the product.

Example

<ProductUnitPrice>25.95</ProductUnitPrice>

Data Type

Double

Comments

If not specified, the default price for the BrandKey/ProductKey


combination specified will be used. The product unit price is used in
reporting. Rejected if negative or non-numeric.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 108

of 160

Web Services Reference Guide


Comments

Necessary for some reports. Also known as Payment Date.

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

This number can be a positive or negative number.

Tag Name
Description

6.80.60
<QuantityAdjustment>
The date when payment was taken for an order.

Example

<QuantityAdjustment>30</QuantityAdjustment>

Data Type

Double

Comments

This number can be a positive or negative number.

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

This field is optional.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 109

of 160

Web Services Reference Guide


Example

<ReferenceNumber>PO130</ReferenceNumber>

Data Type

String 50

Comments

This field is optional.

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

This field is optional.

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

This field is optional.

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

Default behavior is true. Address verification is an extremely important


component of ShipCompliant. Since rules can be on the city, county, zip,
state, or national level, it is important to know the exact shipping
destination address. We recommend that you leave this value as true and
accept the address suggestions.
See section 12, Address Validation, for more information.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 110

of 160

Web Services Reference Guide


DirectShippingLicenseRequired
DirectShippingProhibited
DistributorProhibited
DistributorRequired
PerShipmentVolumeLimit
PreviousVisitRequired
ReportingInformationRequired
SolicitationLimit
SpecialShippingLabelRequired
TaxRequired
AgeVerificationRequired
PerBottleVolumeLimit
LabelRegistrationRequired
ProducerConsentRequired
CannotAlsoBeAWholesaler
SamplesProhibited
ValidRegionRequired
ValidProductsRequired
BypassComplianceChecks
ABVChangeLabelRevisionRequired
VintageChangeLabelRevisionRequired
VolumeChangeLabelRevisionRequired
CaseSizeChangeLabelRevisionRequired
ProductRegistrationRenewalRequired
DistributorAppointmentLetterRequired
ControlState
FranchiseState
OneDistributorPerBrandRequired
DistributionTerritoryDesignationRequired
SingleDistributorPerTerritoryRequired
DistributionTerritoryChangeNoticeRequired
WholesaleLicenseRequired
ProductRegistrationRequired
DistributorChangeNoticeRequired
PricePostingRequired
PricePostingOnNewRequired
PricePostingOnIncreaseRequired
PricePostingOnDecreaseRequired
PricePostingOnPeriodicallyRequired
SolicitorRegistrationRequired
WinesNotOfOwnProductionProhibited
DateOfBirthRequired
ProductTypeNotSupported
ValidCOLARequired
Example

<RuleType>BrandRegistrationRequired</RuleType>

Data Type

String

Comments
Tag Name

January 8, 2013

6.80.68

<SalesAssociatreKey>

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 111

of 160

Web Services Reference Guide

Example

Tye SalesAssociateKey is a string used to identify the person responsible


for processing a specific SalesOrder.
< SalesAssociateKey >SA001</ SalesAssociateKey >

Data Type

String 50

Comments

This field is optional.

Tag Name
Description

6.80.69
<SalesOrderKey>
A unique identifier for each sales order.

Example

<SalesOrderKey>INV001</SalesOrderKey>

Data Type

String 50

Comments

This is also referred to as Invoice Number.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 112

of 160

Web Services Reference Guide


Tag Name
Description

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

Every request requires credentials to be passed either via a <security>


node or UserNameToken in the SOAP header.

Tag Name
Description

6.80.75
<ShipDate>
The requested date of shipment.

Example

<ShipDate>2006-02-09</ShipDate>

Data Type

DateTime

Comments

This field is critical for determining the compliance of each shipment.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 113

of 160

Web Services Reference Guide

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

Shipment keys do not have to be unique across sales orders. Best


practice is to set the first shipment of each sales order to a ShipmentKey
of 1, the second shipment to 2, etc.

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

See section 3.1, Shipment Status Types, for a detailed description of


possible values. ShipDate range searches are inclusive of the end dates.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 114

of 160

Web Services Reference Guide

January 8, 2013

FXP

FedEx Priority Overnight

FXO

FedEx Standard Overnight

FXG

FedEx Ground

FGH

FedEx Ground Home

UP2

UPS 2nd Day

UPS

UPS Ground

PIC

Pickup

UPO

UPS Next Day Air

UPA

UPS Next Day Air Early A.M.

DHLG

DHL Ground

DHL2

DHL 2nd Day

DHLS

DHL Same Day

DHLN

DHL Next Day

OTHER

Other

UP3

UPS 3 Day

FXE

FedEx Express Service

UP1

UPS Next Day

UPSNS

UPS Next Day Air Service

USPSPM

USPS Priority Mail

USPSPP

USPS parcel post

USPSMM

USPS media Mail

USPSGPM

USPS Global Priority Mail

USPSGEM

USPS Global Express Mail

USPSGEG

USPS Global Express guaranteed

USPSGE

USPS Global economy

USPSAPP

USPS Global AirMail parcel post

USPSGALP

USPS Global AirMail letter-post

USPSFCM

USPS First class Mail

USPSEM

USPS Express Mail

DHLIE

DHL International Express

FXES

FedEx Express Saver

FXFO

FedEx First overnight

FXIE

FedEx International economy

FXIF

FedEx International First

FXIP

FedEx International Priority

UPAS

UPS next Day Air Saver

UPSA

UPS Saver

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 115

of 160

Web Services Reference Guide


UPWEXD

UPS worldwide expedited sm

UPWEXS

UPS worldwide Express sm

UPWEXP

UPS worldwide Express plus sm

FEX3

FedEX 3Day

2DM

UPS 2nd Day Air AM

FTX

UPS LTL Express

FTS

UPS LTL Standard

GSO

Golden State Overnight

CST1
CST2
CST3
CST4
CST5
CST6
CST7
CST8
CST9

Custom Shipping Service used to map to unique service


types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.
Custom Shipping Service used to map to unique service
types for certain fulfillment houses.

PDS

GSO Priority Delivery Service

EPS

GSO Early Priority Service

ESS

GSO Early Saturday Service

SDS

GSO Saturday Delivery Service

NPS

GSO Noon Priority Service

CPS

GSO California Parcel Service

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

<SpecialInstructions>Use gift wrap # 206</SpecialInstructions>

Data Type

String 1024

Comments

Optional field for each shipment.

Tag Name

6.80.84
<State>
The state name specified for billing or shipping addresses.

Description

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 116

of 160

Web Services Reference Guide


Example

<State>CO</State>

Data Type

String 20

Comments
Tag Name
Description

6.80.85
<Street1>
The first line of the address provided.

Example

<Street1>1320 Pearl St.</Street1>

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.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 117

of 160

Web Services Reference Guide


Example

<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

<Username>user@company.com</ Username >

Data Type

String

Comments

See <Security>

Tag Name

6.80.94
<Varietal>
Varietal of a product.

Description

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 118

of 160

Web Services Reference Guide


Example

<Varietal>Merlot</Varietal>

Data Type

String 50

Comments

Optional field for products.

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

Optional field for a product.

Tag Name

6.80.99

January 8, 2013

<VolumeAmount>

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 119

of 160

Web Services Reference Guide


Description

The amount of volume units in a product.

Example

<VolumeAmount>1</VolumeAmount>

Data Type

Double

Comments

See comments for VolumeUnit. Rejected if negative or non-numeric.

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

A Bottle is equivalent to 750 milliliters. A Case is equivalent to 12 750


milliliter bottles (9 Liters).
The VolumeAmount multiplied by the VolumeUnit gives you the total
volume of a product. So, with a VolumeAmount of 6 and a VolumeUnit
of Bottle, the total product volume is 4.5 Liters = 4500 Milliters = .5
Cases.

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

Default value is false

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 120

of 160

Web Services Reference Guide


Example

<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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 121

of 160

Web Services Reference Guide

7.2 Single Supplier


Most wineries will have a single Supplier account within ShipCompliant. To
request access to web service credentials for a given Supplier, please email
support@shipcompliant.com .

7.3 Super Supplier


Some wineries will have or belong to multiple supplier accounts that are
sometimes permitted separately with the states and sometimes permitted as one
entity. In this case, the winery will have a Super Supplier account. This account
should be used any time there are orders that contain products from more than
one Supplier. ShipCompliant will disaggregate these orders, run compliance
checks on the appropriate Supplier account(s), and re-aggregate the results in the
web service response.

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.

8.1 Error Types


When sending a request to ShipCompliants APIs, there are three different types
of responses that can be received
1. WSDL Validation Failure: This type of response typically means that the
wrong type of data was in the wrong field, or the data was not formatted
correctly. Invalid date formats can trigger these errors, for example. These

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 122

of 160

Web Services Reference Guide


errors cannot be overridden and would necessitate a code fix and resend of
the request.
2. ShipCompliant Validation Failure: A response of this type means that,
although your data validated to the correct type based on the WSDL, there
is a problem with the data itself. An example of this could be an invalid
product SKU or an unknown enumeration value. These errors cannot be
overridden and would require action before a resend of the request.
3. ShipCompliant Address/Compliance Results: A response of this type
means that all of your data validated and was processed, but that we have
a specific response for you. Handle as follows
a. Address Result Our address validation service may have
suggestions or notice of outright failure. Use the
<IgnoreStreetLevelErrors> and <RejectIfAddressSuggested>
Boolean flags in your request to to handle these appropriately.
b. Compliance Result The compliance check on an order has a
specific response. These could be volume limit overages, carrier
prohibited notices, or any other compliance failures. Use the
<CommitOption> and <PersistOption> Boolean flags in your
request to handle these appropriately.

8.2 Handling Errors


If the value of the ResponseStatus specified in the response object is Failure,
the client should inspect for Errors collection to determine why the transaction
failed. Each error falls into one of these types: Authentication, Server, or
Validation. Further information about each error is specified with the error
code and the error message. In addition, the key and the target indicate to which
domain object the error refers. (Note, the API activity log provided by
ShipCompliant, accessible via the Partner Portal, is very helpful in diagnosing
errors during development. The complete SOAP request and response is
automatically logged for all webservice calls resulting in an error response.)
Server Error Codes & Messages
-1: A server error has occurred.
-2: Invalid Request; server unable to de-serialize request.

Authentication Related Error Codes & Messages


1:
2:
3:
4:
5:
6:

A SoapContext was not specified in the request.


A valid UsernameToken was not specified in the SoapContext.
Invalid credentials provided.
User has not been granted access to the web service.
User cannot access requested web method.
Access to this method is denied for all super suppliers.

Product Related Error Codes & Messages


100:
101:
102:
103:
104:
104:

Brand does not exist [DATA].


Product does not exist [DATA].
BrandKey field is required.
ProductKey field is required.
Alcoholic products must have an alcohol percentage between 0 and 100
Non-alcoholic products must have an alcohol percentage equal to zero [DATA].

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 123

of 160

Web Services Reference Guide


105:
106:
106:
108:
109:
110:
111:
112:
113:
114:
115:

Product unit price must be greater than or equal to zero [DATA].


Alcoholic products must have a volume amount between 50mL and 27L [DATA].
Non-alcoholic products must have a volume greater than or equal to zero [DATA].
ProductType was not specified.
VolumeUnit was not specified.
VolumeUnit specified was not found.
Product description cannot be null.
Product exists in more than one child Supplier of SuperSupplier [DATA].
DefaultCase specified was not found [DATA].
Brand does not exist in any child Supplier of the current SuperSupplier [DATA].
Brand exists in more than one child Supplier of the current SuperSupplier [DATA].

Sales Order Related Error Codes & Messages


200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
218:
219:
220:
221:
222:
223:
224:
225:
226:
228:
229:
230:
231:
232:
233:
234:
235:
217:
236:
237:
238:
239:
240:
241:
243:
244:
244:
246:
247:
248:
249:
250:

SalesOrder does not exist [DATA].


Product matching given BrandKey/ProductKey does not exist [DATA].
CustomerKey field is required.
SalesOrderKey field is required.
ShipmentKey field is required.
Duplicate ShipmentKey found [DATA].
InsuredAmount must be greater than or equal to zero [DATA].
ProductQuantity must be greater than zero.
ShippingService not found in system [DATA].
Product unit price must be greater than or equal to zero [DATA].
LicenseRelationship was not specified.
OrderType was not specified.
ShipmentStatus was not specified.
ShippingService was not specified.
A required tracking number was not specified.
SalesOrder has been committed [DATA].
SalesOrder has been voided [DATA].
Shipment is voided; therefore, its status may not be changed.
At least one shipment must be specified in the sales order.
PurchaseDate must be between 1/1/1900 and TODAYPLUSONEYEAR.
RequestedShipDate must be between 1/1/1900 and TODAYPLUSONEYEAR.
Shipment does not exist [DATA].
The specified tracking number did not match a known Fedex or UPS format[DATA].
FreightCost must be greater than or equal to zero [DATA].
At least one shipment item must be specified in the shipment.
ProductUnitPrice may not be negative.
Product matching given BrandKey/ProductKey exists in more than one supplier [DATA].
Tag was specified without a name.
Tag name may not contain the following characters: , : ' "
Tag name may not exceed 50 characters.
ProductQuantity must be a whole number.
The SalesOrderKey was not specified.
A non-voided SalesOrder exists matching the intended updated SalesOrderKey.
SalesOrder has multiple Shipments where some ShipmentKeys are set and some are not.
Shipment may not be submitted with a ShipmentStatus of Voided.
PagingCookie was not found [DATA].
PagingCookie has expired [DATA].
SalesOrder search must include at least one criteria.
FulfillmentStatus is read-only in the web services.
TrackingStatus is read-only in the web services.
FulfillmentLocation not found in system [DATA].
FulfillmentAccount was specified without a corresponding FulfillmentLocation [DATA].
FulfillmentExceptionType must be specified.
Invalid FulfillmentStatus
The SupplierToDistributor LicenseRelationship is not supported
SetFulfillmentException may not be called on a voided Shipment.
FulfillmentAccount matching current Supplier not found [DATA].
Conflicting SalesOrderKey search criteria specified.
Too many (>100) SalesOrderKeys specified in request.

Address Related Error Codes & Messages


250:
251:
252:
253:
254:

[City | Billing City | Shipping City] field is required.


[Country | Billing Country | Shipping Country] field is required.
[Billing | Shipping] FirstName field is required.
[Billing | Shipping] LastName field is required.
[State | Billing State | Shipping State] field is required.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 124

of 160

Web Services Reference Guide


255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:

[Address1 | Billing Address1 | Shipping Address1] field is required.


[Zip1 | Billing Zip1 | Shipping Zip1] field is required.
[Country | Billing Country | Shipping Country] field is not an ISO country code.
Specified [Billing | Shipping] DateOfBirth must be at least 21 years old.
Specified [Billing | Shipping] Email is not a valid email address.
[State | Billing State | Shipping State] field is not a recognized ISO state code.
Address out of range in [billing | shipping] address.
[Billing | Shipping] address is incorrect.
Component mismatch in [billing | shipping] address.
Multiple matches found for [billing | shipping] address.
Non-deliverable [billing | shipping] address specified.
No street data found for [billing | shipping] address.
Unknown street specified in [billing | shipping] address.
[Billing | Shipping] Zip1 does not match city/state.
[County | Billing County | Shipping County] lookup failed.
[Billing | Shipping] Zip1 does not exist in the United States.

Tax Related Error Codes & Messages


400: Address not specified.
401: Tax rate lookup region not specified. A state, zip, or address must be specified.
402: State is not a recognized ISO state code.

Age Related Error Codes & Messages


500:
501:
502:
503:
504:
505:
506:
507:

Age checks are not enabled for this supplier.


Address not specified.
FirstName not specified.
LastName not specified.
Street1 not specified.
City not specified.
State not specified.
Zip1 not specified.

Supplier Related Error Codes & Messages


600:
601:
602:
603:

Address is incomplete.
Either State or Zip1 must be specified.
SaleType was not specified.
Unable to confirm given address.

Brand Related Error Codes & Messages


701: AddUpdateBrand method not available for SuperSuppliers.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 125

of 160

Web Services Reference Guide

9 Using ShipCompliant as a Gateway to Fulfillment


ShipCompliant has partner relationships with over a dozen third party logistics
providers (3PLs) that have agreed to allow ShipCompliant to be used as a
gateway to fulfillment. In this case, when a shipment meets the Conditions for
fulfillment (see below), the shipment will be shipped by the 3PL (we use the term
Fulfillment Location to collectively refer to both 3PLs and in-house fulfillment
options).

9.1 Conditions for Fulfillment


For any given shipment, the conditions for fulfillment are as below. These
conditions will hold whether the shipment was originally created with these
conditions, the shipment was updated via web services to meet the conditions, or
if a user modified a shipment (for example, by changing the shipment status via
View Past Orders) in the ShipCompliant portal.
1) Shipments must have a shipment status of Sent To Fulfillment
2) The shipments must have a Fulfillment House specified that is enabled for
fulfillment.
3) The shipment must not have a fulfillment status of Transmitted, Accepted,
or Exception (see below). In other words, it hasnt been transmitted for
fulfillment in the past.
4) Depending on the suppliers preference, the order must be either
compliant committed (compliant shipments only) or any committed
shipment. If the supplier wishes to only have compliant shipments
shipped, non-compliant shipments will not be sent to fulfillment.

9.2 Automatic vs. Batch Mode


On a fulfillment location by fulfillment location basis, we have an option available
which controls how order data will be sent to the fulfillment location.
9.2.1 Batch
In this mode, fulfillment locations will receive an alert notification that notifies
them that orders are ready to be fulfilled. From this email, they can click on a link
that will take them to a fulfillment management page associated with their
account (aka supplier) (they can also visit this management page directly via the
portal). They will then see a summary of shipments that are waiting to be fulfilled
and can download a file in their preferred format for fulfillment.
9.2.2 Automatic
In the automatic mode (for fulfillment locations that have an API for pushing
orders), orders which meet the conditions for fulfillment will be automatically
sent to the fulfillment locations system in real-time.

9.3 Fulfillment Status Types

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 126

of 160

Web Services Reference Guide


1. None: The shipment has not been transmitted (or downloaded) for
fulfillment.
2. Transmitted: The shipment has been transmitted to the fulfillment
location, but we have not yet received confirmation that it has been
received .
3. Accepted: The orders have been transmitted and receipt of the data has
been confirmed by the fulfillment location.
4. Exception: If there were any problems with the transmission of data for
fulfillment, the shipments will move into an exception status.

9.4 Overwriting SalesOrders


When creating an order via web services with the option to overwrite existing
sales orders, we take care in how we handle the fulfillment status. If the
fulfillment status of any of the shipments is Transmitted or Accepted we create
the corresponding new shipments with a fulfillment status of Exception.. In this
case, the winery or the fulfillment house should actively clears the exception
status to Accepted or to Ready if it is desirable to resend the shipment
information to the fulfillment location. Screens for managing fulfillment
exceptions will be made available in the ShipCompliant portal.

9.5 Custom Service Types


Some fulfillment locations have special service types that can be transmitted via
integration with their web services by using the ShipCompliant Custom Service
Types (ShippingService = CST1-CST9) as follows:
ShipCompliant
Shipping
Service Code
CST1
CST2
CST3
CST4
CST5

Fulfillment
Location

Fulfillment
Service

Description

New Vine Logistics


New Vine Logistics
New Vine Logistics
New Vine Logistics
New Vine Logistics

STANDARD
GROUND
EXPEDITED
2DAY
3DAY

Default handling
Best ground method
Best express method
Best 2 day service
Best 3 day service

9.6 Sample Workflow


For an integrator that is using the ShipCompliant web services as a gateway to
fulfillment, two things are important. First, the shipment status must be set to
SentToFulfillment. Second, the fulfillment house must be set. There are a number
of possible workflows for achieving these two goals. A few examples are below.
1. Persist Only: If you want only to persist orders (save without running a
compliance check) so they can be sent to fulfillment, use
PersistSalesOrder and set the shipment status to Sent To Fulfillment and
set the Fulfillment House to the appropriate location.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 127

of 160

Web Services Reference Guide


2. Check then Commit: In a typical workflow, orders are checked for
compliance, payment is accepted and authorized, then on successful
compliance and payment authorization, the order is committed. In this
case, when checking for compliance, use CheckComplianceOfSalesOrder
and set the shipment status to Sent To Fulfillment and set the Fulfillment
House to the appropriate location. The order will not be sent to
fulfillment until CommitSalesOrder or CommitSalesOrderUpdateKey are
called on that order.
3. Check then Commit: If you want to use the option above, but do it all
in one call, use CheckComplianceOfAndCommitSalesOrder and set the
shipment status to Sent To Fulfillment and set the Fulfillment House to
the appropriate location. This will send orders to fulfillment immediately
if they are committed with the conditions for fulfillment met.
4. Check, Commit, then Update: In a wine club scenario, for example, a
typical workflow is to check each order in the batch for compliance before
processing credit cards and committing the order. These pre-batch
steps can typically be performed a day or two in advance of the date of
shipment. In this case, you can use CheckComplianceOfSalesOrder and
set the shipment status to Payment Accepted and set the Fulfillment
House to the appropriate location. In this case, calling CommitSalesOrder
or CommitSalesOrderUpdateKey will not send the orders to fulfillment.
When the batch is ready to be shipped, you can call
UpdateShipmentStatus on each of the orders to update all of the
shipments to a status of SentToFulfillment, which will trigger the
fulfillment process.

9.7 Using ShipCompliant as a Gateway to Fulfillment for


Level 1 Customers
ShipCompliant can be used as a gateway to fulfillment for wineries and wine
retailers that are not signed up for full access to ShipCompliant. In this case,
we will bypass compliance checks if the CheckComplianceOfSalesOrder or
CheckComplianceOfAndCommitSalesOrder methods are called. We then
return a special, non-compliant result. The salesorder, shipment, and
RuleComplianceResponse nodes will all have the IsCompliant flag set to
false. The RuleComplianceResponse node will have a RuleType of Null and
a RuleDescription of Compliance checks are not enabled for this account.
See section 16.7: GetInventoryDetailsResponse for an example XML
response. We recommend that you detect this special response and treat
these orders the same as you would treat a compliant order in your
workflow (release it for fulfillment instead of using a quarantine approach).

9.8 Getting Shipment Status and Tracking Numbers


To get tracking numbers and query shipment status, you can search orders
in ShipCompliant using the SearchSalesOrders and SearchMoreSalesOrders
methods. See the diagram below for a recommended workflow. We

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 128

of 160

Web Services Reference Guide


recommend that you run this process on a scheduled basis (once a night, for
example) to poll for shipping status.
SearchSalesOrder
s
(criteria)

More
Results?

SearchMoreSalesOr
ders
(token)

done

The calls to both SearchSalesOrders and SearchMoreSalesOrders return


the following information:
SalesOrderSummary (collection)
o SalesOrderKey
o PaymemtDate
o Tags (collection, may be empty)
o Shipment Summary (collection)
Shipment Key
Shipment Status
Fulfillment Status
(actual) Ship Date
FulFillment House
Compliance Status (Compliant | Not Compliant)
ShipTo
o First Name
o LastName
o Zip
Tracking Numbers (collection, may be empty)
Last Tracking Status (In Transit | Delivered |
Exception )
Sales Orders Returned (int) : number returned in the response
More Sales Orders Available (int) : 0 is no more
More Sales Orders Token (guid)
More Sales Orders Token Expires (date time)
Note: The SearchSalesOrders and SearchMoreSalesOrders methods both return
up to 100 sales orders. Along with each call to these methods we will return an
indication how many more results are available, and a paging token. A non-

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 129

of 160

Web Services Reference Guide


expired paging token can be used to call SearchMoreSalesOrders(token) until all
results have been retrieved.

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.

10.1 Handling Enumerations


ShipCompliant web services expose enumerations for various parameters for
your convenience. Enumerations have the benefit over string parameters in that
all possible values are listed as part of the WSDL. From time to time
enumerations will be expanded to offer support for additional options. To
preserve backwards compatibility enumerated values will never be removed.
However, the order (and thus the index) of enumerated values is arbitrary and
may change.Because of the possibility of changing enumeration order/indexed it
is critical that your integration maps directly to the enumerated string values,
NOT to the index representation of the enumerated value. The index is arbitrary
and *may* change when the enumeration is expanded and may be dependand on
the toolkit you use to integrate with the API.

11 Timing and Performance


A portion of time spent on any transaction using a Service Oriented Architecture
(SOA) will be sending and receiving a response over the Internet. ShipCompliant
web services will not be able to control this time; however, the developer can vary
the amount of time a request waits as well as build in logic to retry. In general,
ShipCompliant Web Services will follow the following rules:
It is very important the client side processing of a compliance check be processed
as efficiently as possible so the overall wait time the End User experiences is less
than 3 seconds for non peak, average sized orders, between 1 and 3 shipments.
Obviously, as the number of shipments on the order increase, processing time
will be affected; however, the client side processing needs to be extremely
efficient.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 130

of 160

Web Services Reference Guide


ValidateAddress method. All validated shipping addresses in ShipCompliant are
normalized for consistency per USPS standards.
Two different address flags in the SalesOrder Service methods can be used to
control the address validation behavior. If RejectIfAddressSuggested is set to
true, addresses returned with suggestions will be rejected.
If IgnoreStreetLevelErrors is set to true, addresses with a good city/state/zip
combination will be accepted regardless of errors or suggestions on Address 1.
These two flags can be used together to configure the address validation behavior
appropriate for your workflow. For example, if you want to get the most
information back from the service, you can set RejectIfAddressSuggested to
TRUE and IgnoreStreetLevelErrors to FALSE. If you want to force an address
through after a user has agreed that it is the appropriate address, you can flip the
flags and set RejectIfAddressSuggested to FALSE and IgnoreStreetLevelErrors to
TRUE. We recommend that you use these flags carefully to ensure rigorous
address validation for fulfillment purposes.
This example demonstrates the most stringent settings for address suggestions:

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 vs. Address Suggestion


The key difference between a correctable address error and an "Address Failure" is the presence
of the <AddressSuggestion> node - an "Address Failure" will not have a suggestion and generally
should be updated by the user in order to be accepted by ShipCompliant.

Address Failure

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 131

of 160

Web Services Reference Guide

Address Suggestion

Additionally, the individual Error Codes (related to Addresses) can be classified


into categories of severity, as shown below:
Address Failure Errors - Missing Required data
250: [City | Billing City | Shipping City] field is required.
251: [Country | Billing Country | Shipping Country] field is required.
252: [Billing | Shipping] FirstName field is required.
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 132

of 160

Web Services Reference Guide


253: [Billing | Shipping] LastName field is required.
254: [State | Billing State | Shipping State] field is required.
255: [Address1 | Billing Address1 | Shipping Address1] field is required.
256: [Zip1 | Billing Zip1 | Shipping Zip1] field is required.
257: [Country | Billing Country | Shipping Country] field is not an ISO country
code.
258: Specified [Billing | Shipping] DateOfBirth must be at least 21 years old.
259: Specified [Billing | Shipping] Email is not a valid email address.
260: [State | Billing State | Shipping State] field is not a recognized ISO state
code.
Street Level and Auto Correctable Errors
261: Address out of range in [billing | shipping] address.
262: [Billing | Shipping] address is incorrect.
263: Component mismatch in [billing | shipping] address.
264: Multiple matches found for [billing | shipping] address.
265: Non-deliverable [billing | shipping] address specified.
266: No street data found for [billing | shipping] address.
267: Unknown street specified in [billing | shipping] address.
Address Failure Errors - Invalid Address NOT Auto Correctable
268: [Billing | Shipping] Zip1 does not match city/state.
269: [County | Billing County | Shipping County] lookup failed.
270: [Billing | Shipping] Zip1 does not exist in the United States.
Handling Address Suggestions and Street Level Errors
Address Options give varying leniency when it comes to address suggestions.
These options will not allow an Address Failure (Critical error or missing
required data) to pass but can be used to ignore non critical errors and/or
automatically correct most address discrepancies.
Address Errors 261, 263-267 are considered street level errors and may be
ignored via the IgnoreStreetLevelErrors request option. Error 262 may be a
street level error or something more serious but will always be accompanied
with an AddressSuggestion and can thus be fixed automatically by setting the
RejectIfAddressSuggested option to false.
Foreign/Non-US Addresses
ShipCompliant does provide the ability to pass foreign addresses with the simple
change of indicating a <Country> code of anything other than US, USA, or
(blank). Most two digit ISO country codes are supported. NOTE: Indicating a
foreign country code will bypass all Address Validation, Compliance
Check and Reporting functionality at this time!
Sample Addresses for Testing

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 133

of 160

Web Services Reference Guide

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.

13.2 Age Checks Not Enabled


Look for <ResponseStatus>Failure</ResponseStatus> and error message to indicate that
Age Checks have not been enabled (or are temporarily unavailable)

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 134

of 160

Web Services Reference Guide

13.3 Age Cannot be Confirmed


Look for <ResponseStatus>Success</ResponseStatus> +
<AgeStatus>CouldNotBeConfirmed</AgeStatus> to indicate that the customer being
referenced cannot be verified as either Of Age or Not Of Age.

13.4 Is Not of Age


Look for <ResponseStatus>Success</ResponseStatus> +
<AgeStatus>IsNotOfAge</AgeStatus> in responses that indicate that the
customer is verifiably under 21 (very rare)

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 135

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 136

of 160

Web Services Reference Guide

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

Warn user that


shipment may
be potentially
delayed

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Success

Page 137

of 160

Web Services Reference Guide

14.2 E-Commerce Order Pre-Fulfillment Check


This workflow is similar, but more simplified than the real-time compliance
check. Our best practices suggest that you should run two compliance checks on
all orders (real-time and pre-fulfillment), but this pre-fulfillment check should
always be run at a minimum.
CheckCompli
anceOfSales
Order()

Update ship date if


there is better
information at this
point. Use a status
of Payment
Accepted.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 138

of 160

Web Services Reference Guide

15 Appendix A: Sample XML Requests and


Responses
15.1 CalculateSalesTaxDueForOrderRequest

15.2 CalculateSalesTaxDueForOrderResponse

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 139

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 140

of 160

Web Services Reference Guide

15.4 GetTaxRateByAddressRequest

15.5 GetTaxRateByAddressResponse

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 141

of 160

Web Services Reference Guide

15.6 CheckComplianceOfSalesOrderResponse (Sample 1)


<?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>
<CheckComplianceOfSalesOrderResponse xmlns="http://ws.shipcompliant.com/">
<CheckComplianceOfSalesOrderResult>
<ResponseStatus>Success</ResponseStatus>
<SalesOrder>
<IsCompliant>true</IsCompliant>
<Key>12345</Key>
<Shipments>
<ShipmentComplianceResponse>
<IsCompliant>true</IsCompliant>
<Key>SHP001</Key>
<Rules>
<RuleComplianceResponse>
<ComplianceDescription>You have 1 current license in this region for the time of
this shipment.</ComplianceDescription>
<IsCompliant>true</IsCompliant>
<LicenseRelationship>SupplierToConsumer</LicenseRelationship>
<RuleDescription>A license is required for shipping offsite sales and must be
renewed every 1 year with the following note: Shippers who have previously been
approved for shipments into CO do not have to complete a new application . The
cost of this license is $50.00. Valid license types include 'Direct Shipping
Permits' and 'Certificates Of Compliance'.</RuleDescription>
<RuleType>DirectShippingLicenseRequired</RuleType>
</RuleComplianceResponse>
<RuleComplianceResponse>
<ComplianceDescription>Rule has been acknowledged.</ComplianceDescription>
<IsCompliant>true</IsCompliant>
<LicenseRelationship>SupplierToConsumer</LicenseRelationship>
<RuleDescription>Shipments to this region for offsite sales require the
following shipping label: this package contains wine and must be delivered to a
person 21 years of age or older and cannot be delivered to an intoxicated person
with the following note: Proof of age is required from the recipient upon
deliver.</RuleDescription>
<RuleType>SpecialShippingLabelRequired</RuleType>
</RuleComplianceResponse>
<RuleComplianceResponse>
<ComplianceDescription>Rule has been acknowledged.</ComplianceDescription>
<IsCompliant>true</IsCompliant>
<LicenseRelationship>SupplierToConsumer</LicenseRelationship>
<RuleDescription>Shipments to this region require a excise tax of $.0833 per 1
liter on offsite sales of wine due within 20 days after every month starting
7/1/2006.with the following note: The excise tax rate is $0.0733 per liter, with
an additional "vinous surcharge" of $0.01 Note that this region requires a
periodic tax report even if no orders have been made.</RuleDescription>
<RuleType>TaxRequired</RuleType>
</RuleComplianceResponse>
<RuleComplianceResponse>
<ComplianceDescription>No prohibited products in
shipment.</ComplianceDescription>
<IsCompliant>true</IsCompliant>
<LicenseRelationship>SupplierToConsumer</LicenseRelationship>
<RuleDescription>Some Products are always non-compliant.</RuleDescription>
<RuleType>Null</RuleType>
</RuleComplianceResponse>
</Rules>
</ShipmentComplianceResponse>
</Shipments>
</SalesOrder>
</CheckComplianceOfSalesOrderResult>
</CheckComplianceOfSalesOrderResponse>
</soap:Body>
January 8, 2013
SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL Page 142 of 160
</soap:Envelope>

Web Services Reference Guide

15.7 CheckComplianceOfSalesOrderResponse (Sample 2


Bypassed compliance checks)
<?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>
<CheckComplianceOfSalesOrderResponse xmlns="http://ws.shipcompliant.com/">
<CheckComplianceOfSalesOrderResult>
<ResponseStatus>Success</ResponseStatus>
<SalesOrder>
<IsCompliant>false</IsCompliant>
<Key>12345</Key>
<Shipments>
<ShipmentComplianceResponse>
<IsCompliant>false</IsCompliant>
<Key>SHP001</Key>
<Rules>
<RuleComplianceResponse>
<ComplianceDescription>Compliance checks are not enabled for this
account.</ComplianceDescription>
<IsCompliant>false</IsCompliant>
<LicenseRelationship>SupplierToConsumer</LicenseRelationship>
<RuleDescription> Compliance checks are not enabled for this account.<
RuleDescription>
<RuleType>Null</RuleType>
</RuleComplianceResponse>
</Rules>
</ShipmentComplianceResponse>
</Shipments>
</SalesOrder>
</CheckComplianceOfSalesOrderResult>
</CheckComplianceOfSalesOrderResponse>
</soap:Body>
</soap:Envelope>

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 143

of 160

Web Services Reference Guide

15.8 CheckTemperatureForecastResponse

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 144

of 160

Web Services Reference Guide

15.9 CheckComplianceOfSalesOrder (Sample v1.2 SalesTax


Response)

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 145

of 160

Web Services Reference Guide

15.10

GetInventoryDetails Response

<?xml version="1.0" encoding="utf-8" ?>


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
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>
<GetInventoryDetailsResponse xmlns="http://ws.shipcompliant.com/">
<GetInventoryDetailsResult>
<InventoryLocations>
<InventoryLocation>
<Supplier>Angelic Cellars</Supplier>
<FulfillmentLocation>ThirdPartyShipper</FulfillmentLocation>
<FulfillmentAccount />
<SubInventoryCode />
<InventoryProducts>
<InventoryProduct>
<BrandKey>AC</BrandKey>
<DefaultCase />
<Description>93 SPARKLING 750ML</Description>
<FulfillmentSku>AC5550</FulfillmentSku>
<InventoryLevels>
<InventoryLevel>
<EffectiveDate>2008-10-21T10:54:29.0000000-06:00</EffectiveDate>
<InventoryType>OnHand</InventoryType>
<Quantity>2</Quantity>
<SynchronizationDate>2008-10-21T10:54:49.0000000-06:00</SynchronizationDate>
</InventoryLevel>
<InventoryLevel>
<EffectiveDate>2008-10-21T10:54:29.0000000-06:00</EffectiveDate>
<InventoryType>Damage</InventoryType>
<Quantity>1</Quantity>
<SynchronizationDate>2008-10-21T10:54:49.0000000-06:00</SynchronizationDate>
</InventoryLevel>
<InventoryLevel>
<EffectiveDate>2008-10-21T10:54:29.0000000-06:00</EffectiveDate>
<InventoryType>Available</InventoryType>
<Quantity>1</Quantity>
<SynchronizationDate>2008-10-21T10:54:49.0000000-06:00</SynchronizationDate>
</InventoryLevel>
</InventoryLevels>
<PercentAlcohol>13</PercentAlcohol>
<ProductKey>5550</ProductKey>
<ProductType>SparklingWine</ProductType>
<UnitPrice>40</UnitPrice>
<Varietal>Sparkling</Varietal>
<Vintage>1993</Vintage>
<VolumeAmount>750</VolumeAmount>
<VolumeML>750</VolumeML>
<VolumeUnit>Milliliter</VolumeUnit>
</InventoryProduct>
</InventoryProducts>
</InventoryLocation>
</InventoryLocations>
<ResponseStatus>Success</ResponseStatus>
</GetInventoryDetailsResult>
</GetInventoryDetailsResponse>
</soap:Body>
</soap:Envelope>

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 146

of 160

Web Services Reference Guide

16 Appendix B: Development Tips & Tricks


16.1 Use a Packet Sniffer to monitor SOAP requests and
responses.
When developing web service integrations it can be very useful to be able to see the raw SOAP
requests and responses which are being passed between your application and the server.
Surprisingly many platforms do not provide easy to use tools to accomplish this; I guess the goal
of modern development tools is to abstract the technical details of web services. Nonetheless, the
ability to review the raw requests or responses is often a valuable debugging tool.
For this purpose I like to use a network packet sniffer. There are many free options of such tools
available. (For Windows I recommend SmartSniff:
http://www.nirsoft.net/utils/smsniff.html)
Unfortunately, a packet sniffer will not do you much good when monitoring SSL traffic (because
the network traffic is encrypted and thus not readable). If you are going to be using a sniffer for
debug purposes temporarily redirect your calls to: http://ws-devunsecure.shipcompliant.com.
This is simply an alias to https://ws-dev.shipcompliant.com which does not require secure
communication. Note, you will need to demonstrate that your solution makes secure web service
calls to be certified, the production environment does NOT support unsecure communication.
Sample Output from a Packet Sniffer:

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 147

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 148

of 160

Web Services Reference Guide

17 Appendix C: List of Values for Standard Fields


This appendix lists all of the possible values for the standard fields available in
version 1.2. Note that in the future the list of possible values may be updated to
include additional values to support new functionality such as new fulfillment house
locations, product types, and rule types. ShipCompliant recommends that any
integration based on version 1.2 takes this scenario into account when developing a
solution. Note each value is case sensitive, therefore the capitalization of values
should match the items listed below.
<FulfillmentHouse> A dynamic list of possible Fulfillment House values can be
found by using the <GetPossibleFulfillmentHouses> method.
<RuleType> A dynamic list of Rule Types can be retrieved by utilizing the
<GetPossibleRuleTypes> method.
<ShippingServices> A dynamic list of possible Shipping Service values can
retrieved by using the <GetPossibleShippingServices> method.
Additional Fields Include:
<LicenseRelationship>
Default
SupplierToConsumer
RetailerToConsumer
SupplierToThreeTier
RetailerToThreeTier
DirectToTrade
Null
<ProductType>
Wine
SparklingWine
MerchandiseNonTaxable
MerchandiseTaxable
Food
Ale
AppleCider

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 149

of 160

Web Services Reference Guide


Beer
Cider
MaltLiquor
Spirits
<VolumeUnit>
Bottle
Case
Gallon
Liter
Milliliter
Ounce
Quart
WineGallon
<Payment>
<Type>
Cash
Check
CreditCard
GiftCard
GiftCertificate
Invoice
MoneyOrder
Other
StoreAccount
TravelersCheck
Note The table below only applies to a Payment Type of CreditCard. For all other Payment Types the SubType is a
string field that is user defined.
<Payment>
<Type>CreditCard</Type>
<SubType>
AmericanExpress
DinersClub
DiscoverCard
JCB
MasterCard
Other

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 150

of 160

Web Services Reference Guide

18 Appendix D: Version 1.2 Highlights


Comparison of Real-Time Tax Calculation - Version 1.2 Enhancements
Version 1.1
1.

Version 1.2

<GetSalesTaxRatesByAddress>

1.

<CheckComplianceOfSalesorder>

2.

Partner: Record <CheckSalesOrderResponse> <RecommendedSalesTaxDue>

3.

<CommitSalesOrder> including <SalesTaxCollected>


from Step 2

This method will return either Onsite or Offsite rates


for all available product types.

2.

Partner: Calculate total tax due by processing


order items.

In this step, the rates returned in Step 1 must be


sorted by SaleType and TaxType. The remaining
rates must then be applied to the relevant products
contained within the SalesOrder.

3.

<CheckComplianceOfSalesOrder> including
<SalesTaxCollected> calculated in Step 2

4.

Commit SalesOrder

Version 1.2 Benefits:


- Faster: Eliminate a call to the ShipCompliant API
- More Accurate: This method always uses the most accurate Tax Rates
available by Address and Product Type
- Super Supplier Support
- Easier: Let the ShipCompliant API do the work and receive a precalculated Tax Amount to Charge, rather than a Tax Rate to Apply.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 151

of 160

Web Services Reference Guide

Important Changes:
The following represent changes to the API that are not compatible with previous
versions:
ProductService
<AddUpdateProduct>
<GetProduct>
-

<UnitPrice> has been deprecated and replaced by <DefaultRetailUnitPrice>

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>
-

<Freight> has been deprecated and replaced by <Shipping> and <Handling>.


Traditional <Freight> values should now be entered as <Shipping>.

Services Updated Since Version 1.1


This section outlines the specific changes made from version 1.1 to version 1.2 of
the API. When a new field has been defined, the type of the field has been specified
in parenthesis along with whether it is required or optional. All new fields that have
been added are optional fields, which allows for backwards compatibility with the
previous version of the API.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 152

of 160

Web Services Reference Guide


<ThisBrandIsProducedByAThirdParty> (Boolean, Optional) added under <Brand>
<ThisBrandOperatesUnderATradeName> (Boolean, Optional) added under <Brand>
<ThisBrandWasAcquiredFromAThirdParty> (Boolean, Optional) added under
<Brand>
<UpdateMode> (Enum) added under <Brand>
- Available options include: UpdateExisting, IgnoreExisting, ErrorOnExisting

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 153

of 160

Web Services Reference Guide


<Payment> includes (Amount, Decimal), (SubType, String), (TransactionID, String),
and (Type, String) added under <Payments>
- 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.
<ReferenceNumber> (String, Optional) added under <SalesOrder>
<RefundedOrderReference> (String, Optional) added under <SalesOrder>
- The RefundedOrderReference is a string used to identify the invoice to be
refunded.
<RegisterID> (String, Optional) added under <SalesOrder>
- The RegisterID is a string used to identify the register source of a specific
SalesOrder.
<SalesAssociateKey> (String, Optional) added under <SalesOrder>
- The SalesAssociateKey is a string used to identify the person responsible for
processing the sales order.
<SettlementBatchNumber> (String, Optional) added under <SalesOrder>
- The SettlementBatchNumber is a string used to identify the settlement batch in
which the SalesOrder was processed
<ShipmentDiscount> 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. This discount occurs at the Shipment level.
<ExternalClubKeys>
- The ExternalClubKeys field maintains the Club indicator data assigned by the
OMS. Added under <Shipment>
CommitSalesOrder
<SalesTaxCollected> (Decimal, Optional) added under <SalesOrder>
- The SalesTaxCollected field should be used to capture the actual sales tax
collected from the customer at the time of the sale.
<Amount> (Decimal, Optional) added under <Payment>
<SubType> (Enum, Optional) added under <Payment>
<TransactionID> (String, Optional) added under <Payment>
<Type> (Enum, Optional) added under <Payment>
PersistSalesOrder
<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
January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 154

of 160

Web Services Reference Guide


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.
<Payment> includes (Amount, Decimal), (SubType, String), (TransactionID, String),
and (Type, String) added under <Payments>
- 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.
<RefundedOrderReference> (String, Optional) added under <SalesOrder>
- The RefundedOrderReference is a string used to identify the invoice to be
refunded.
<RegisterID> (String, Optional) added under <SalesOrder>
- The RegisterID is a string used to identify the register source of a specific
SalesOrder.
<SalesAssociateKey> (String, Optional) added under <SalesOrder>
- The SalesAssociateKey is a string used to identify the person responsible for
processing the sales order.
<SettlementBatchNumber> (String, Optional) added under <SalesOrder>
The SettlementBatchNumber is a string used to identify the settlement batch in
which the SalesOrder was processed
<ShipmentDiscount> 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. This discount occurs at the Shipment level.
<ExternalClubKeys>
- The ExternalClubKeys field maintains the Club indicator data assigned by the
OMS.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 155

of 160

Web Services Reference Guide


- Shipping has replaced Freight and will appear under <Shipment>
<Handling>
- Handling has replaced Freight and will appear under <Shipment>
SearchSalesOrder
<ExternalClubKey>
<ExternalOfferKey>
<ExternalSalesOrderKeyMin>
<ExternalSalesOrderKeyMax>
<ExternalSalesOrderKeys>
<RequestedShipDateMin>
<RequestedShipDateMax>
<SettlementBatchNumber>

New Method Fields Added in v1.2


SalesOrderService
<AddExternalClubKeys>
- TheAddExternalClubKeys method allows Club Keys to be added to specific
SalesOrders within ShipCompliant.
<AddExternalOfferKeys>
- The AddExternalOfferKeys method allows Offer Keys to be added to specific
SalesOrders within ShipCompliant.
<SetExternalClubKeys>
- The SetExternalClub method will replace existing Club Keys with updated Club
Keys.
<SetExternalOfferKeys>
- The SetExternalOfferKeys method will replace existing Offer Keys with updated
OfferKeys.
<SetExternalSalesOrderKey>
- The SetExternalSalesOrderKey method will update existing External SalesOrder key
Values.
<SetExternalCustomerKey>
- The SetExternalCustomerKey method will update existing Customer Key values.

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 156

of 160

Web Services Reference Guide


<SearchMoreProducts>
- The SearchMoreProducts method allows additional pages of product data to be
retrieved.

TaxService
<CalculateSalesTaxDueForOrder>
- The CalculateSalesTaxDueForOrder method provides Product Level tax
calculations, including a suggested amount of tax due.

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 157

of 160

Web Services Reference Guide

19 Appendix E: WSDL Documentation


ShipCompliant maintains online documentation for all available API services. A
complete list of the WSDL documentation is included below for the development
server. Note that this documentation is maintained on all ShipCompliant
instances.
1. SalesOrderService
https://ws-dev.shipcompliant.com/services/1.2/salesorderservice.asmx
2. BrandService
https://ws-dev.shipcompliant.com/services/1.2/brandservice.asmx
3. ProductService
https://ws-dev.shipcompliant.com/services/1.2/productservice.asmx
4. AddressService
https://ws-dev.shipcompliant.com/services/1.2/addressservice.asmx
5. AgeService
https://ws-dev.shipcompliant.com/services/1.2/ageservice.asmx
6. TaxService
https://ws-dev.shipcompliant.com/services/1.2/taxservice.asmx
7. SupplierService
https://ws-dev.shipcompliant.com/services/1.2/supplierservice.asmx
8. WholesaleService
https://ws-dev.shipcompliant.com/services/1.2/wholesaleservice.asmx
9. FulfillmentService
https://ws-dev.shipcompliant.com/services/1.2/fulfillmentservice.asmx
10. SSOService
https://ws-dev.shipcompliant.com/services/1.2/ssoservice.asmx

January 8, 2013

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 158

of 160

Web Services Reference Guide

20 Appendix F: Technical Notes about DateTime


In efforts to support all platforms, ShipCompliant API indicates Date type
variables are required by the WSDL. The reason behind this is that some older
platforms, eg .NET 1.1, do not support nullable Date types.
Therefore, to pass an empty Date type, the value of 1753-01-01 is recommended.
Also, the ShipCompliant API uses [YYYY-MM-DD], [YYYY-MM-DD HH:MM:SS]
formats, eg: [1753-01-01], [1753-01-01 11:25:42], etc.

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.

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 159

of 160

Web Services Reference Guide

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

SIX88 SOLUTIONS PROPRIETARY AND CONFIDENTIAL

Page 160

of 160

Das könnte Ihnen auch gefallen