# Wineshipping API
The Wineshipping API is a programmatic communications interface designed to enable Wineshipping’s customer and partner applications to natively transmit and manage shipping orders, inventory, package tracking, and other key business and operational functions.
Try out the API methods in in our [postman collection](https://wineshipping.postman.co/workspace/Wineshipping-API---Public~2cf99dd4-d2b7-4e17-a992-fc2cbf33a9dd/collection/31241720-e423159e-ecde-4241-bd43-44c5609a78e3).
- [Overview](/docs/Overview.md)
- [Infrastructure](/docs/Infrastructure.md)
- [Codes & Descriptions](/docs/Codes-Descriptions.md)
- [Event Driven Tracking](/docs/EventDrivenTracking.md)
Version: 3.1.3
License: Proprietary
## Servers
Test
```
https://api-test.wineshipping.com/v3
```
Production
```
https://api.wineshipping.com/v3
```
## Security
### Authentication
Credentials supplied in the request body Authentication object.
Type: http
Scheme: WineshippingAuth
## Download OpenAPI description
[Wineshipping API](https://developer.wineshipping.com/_spec/api/v3.1/openapi.yaml)
## Fulfillment
API Methods for order processing and fulfillment.
### Create sales order
- [POST /api/SalesOrder/CreateSalesOrder](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/createsalesorder.md): Successful execution of this method will generate a new shipment order in Wineshipping's system and will return a transaction reference identifier. Store this identifier back into your system for reference later in the event there is an issue with your order.
### Update sales order
- [POST /api/SalesOrder/UpdateSalesOrder](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/updatesalesorder.md): Use this operation to update an existing open sales order. If you are using the IsCancelOnly flag, please migrate to use the Cancel Sales Order method instead.
### Cancel sales order
- [POST /api/SalesOrder/CancelSalesOrder](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/cancelsalesorder.md): Use this operation to cancel an existing open sales order. Successful execution of this method will cancel the sales order in Wineshipping system. If the order cannot be cancelled for some reason standard HTTP Status Code and a reason will be returned.
### Get orders on hold
- [POST /api/SalesOrder/GetOrdersOnHold](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/getordersonhold.md): Use this operation to retrieve a list of on-hold orders for a customer. Successful execution of this method will generate a list of on hold orders from Wineshipping's system and if no orders are on hold, HTTP status code Not Found response will be returned.
### Get returns
- [POST /api/SalesOrder/GetReturns](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/getreturns.md): Use this operation to retrieve a list of return sales orders for a customer. Successful execution of this method will generate a list of returns from Wineshipping system.
### Generate JIT label
- [POST /api/SalesOrder/GenerateJitLabel](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/generatejitlabel.md): This method is used to generate a Just-In-Time shipping label for your Orders. It can be used to print just a label or a packingslip and a label. You can choose from PDF or PNG format.
### Create multiple orders (deprecated)
- [POST /api/SalesOrder/BatchSalesOrder](https://developer.wineshipping.com/api/v3.1/openapi/fulfillment/batchsalesorder.md): This operation is used to create new orders in batch. The response will contain order creation status for each order along with individual order transaction number for reference later in the event there is an issue with an order.
## Inventory
API Methods for inventory management.
### Create purchase order
- [POST /api/InventoryMovement/CreatePurchaseOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/createpurchaseorder.md): This operation is used to create an inbound inventory request. Successful execution of this operation will generate a new purchase order in Wineshipping system. The inbound request can be a pickup from customer address or a drop-off at a Wineshipping warehouse location. A transaction reference identifier is returned in this operation. Store this identifier in your application and systems as applicable. This reference ID is available in the event a problem occurs with the associated request.
### Update purchase order
- [POST /api/InventoryMovement/UpdatePurchaseOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/updatepurchaseorder.md): Update an existing inventory receipt request
### Cancel purchase order
- [POST /api/InventoryMovement/CancelPurchaseOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/cancelpurchaseorder.md): This operation is used to cancel a purchase order request. A transaction reference identifier is required to post using this operation. A transaction reference identifier will be returned upon use of the operation. Store this identifier in your application and systems as applicable. This reference ID is available in the event a problem occurs with the associated request. Successful execution of this method will cancel an open Purchase Order in Wineshipping's system and will return a transaction reference identifier.
### Create transfer order
- [POST /api/InventoryMovement/CreateTransferOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/createtransferorder.md): This operation is used to create a inventory transfer request between two Wineshipping managed inventory locations. Successful execution of this operation will generate a new transfer order in Wineshipping system. A transaction reference identifier is returned in this operation. Store this identifier in your application and systems as applicable. This reference ID is available in the event a problem occurs with the associated request.
### Update transfer order
- [POST /api/InventoryMovement/UpdateTransferOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/updatetransferorder.md): Use this operation to update an existing open transfer order. Successful execution of this method will update an open transfer order in Wineshipping system. If for some reason the order cannot be updated standard HTTP Status Code and a reason will be returned.
### Cancel a transfer order
- [POST /api/InventoryMovement/CancelTransferOrder](https://developer.wineshipping.com/api/v3.1/openapi/inventory/canceltransferorder.md): This operation is used to cancel a transfer order request. A transaction reference identifier is required to post using this operation. A transaction reference identifier will be returned upon use of the operation. Store this identifier in your application and systems as applicable. This reference ID is available in the event a problem occurs with the associated request. Successful execution of this method will cancel an Open Purchase Order in Wineshipping's system and will return a transaction reference identifier. Please note that Transfer Orders can only be canceled and are considered "open" as long as work has not been started.
### Get inventory transactions
- [POST /api/Inventory/GetTransactions](https://developer.wineshipping.com/api/v3.1/openapi/inventory/getinventorytransactions.md): This method allows a customer to retrieve inventory transactions. Inventory transactions include Sales Orders, Purchase Orders, Transfer In, Transfer Out, Production Lines, Inventory Adjustments and Inventory Status Changes. There are multiple input filters available for use, including filters to retrieve specific types of inventory transactions, to retrieve transactions processed on a particular date, or to retrieve transactions in a specific Wineshipping warehouse.There are also pagination and skip/top query parameters that allow customers to further control the inventory transactions that are returned in the response.
### Get inventory information
- [POST /api/Inventory/GetStatus](https://developer.wineshipping.com/api/v3.1/openapi/inventory/getinventorystatus.md): This operation provides inventory information with warehouse, status, quantity on hand, quantity reserved on orders, quantity on backorder, quantity available, and quantity on an inbound PO. This operation optionally accepts a warehouse code to return related inventory records for a specific Wineshipping warehouse, if omitted the operation will return inventory records for all warehouses. The operation also accepts an array of items to query inventory records, if omitted returns inventory records for all items in the warehouse specified.
### Get sellable inventory
- [POST /api/Inventory/GetSellable](https://developer.wineshipping.com/api/v3.1/openapi/inventory/getsellable.md): This operation provides the total, aggregated inventory available to sell. This operation optionally accepts a list of warehouse codes to return sellable inventory totals for a specific subset of Wineshipping warehouses, otherwise all physical locations with sellable inventory are considered.This method is specifically designed to efficiently sync available inventory quantities with Commerce, pos or other order management systems for all skus. See the GetInventoryStatus for retrieving more detailed inventory information for an individual sku.
## Product
API Methods for item management.
### Create item
- [POST /api/SKU/CreateSKU](https://developer.wineshipping.com/api/v3.1/openapi/product/createsku.md): Successful execution of this method will generate a new SKU in Wineshipping's system and will return a transaction reference identifier. Store this identifier back into your system for reference later in the event there is an issue with the SKU.
### Update item
- [POST /api/SKU/UpdateSKU](https://developer.wineshipping.com/api/v3.1/openapi/product/updatesku.md): Update an inventory item
### Retire item
- [POST /api/SKU/RetireSku](https://developer.wineshipping.com/api/v3.1/openapi/product/retiresku.md): Successful execution of this method will deactivate a SKU in Wineshipping's system and will return a transaction reference identifier.
## Tracking
API Methods for tracking and shipments.
### Get order tracking details
- [POST /api/Tracking/GetDetails](https://developer.wineshipping.com/api/v3.1/openapi/tracking/getdetails.md): Order tracking details and status from shipping carriers when available. Use customer and order identifiers to locate associated records, including tracking numbers, order fulfillment and carrier status, and shipping information. event driven tracking
### Get package shipping details
- [POST /api/Tracking/GetPackages](https://developer.wineshipping.com/api/v3.1/openapi/tracking/getpackages.md): This operation provides package information in batches once warehouse activity started in order fulfillment. Provides filters options to search for packages by ship date range, last activity date range, shipping carrier, order numbers and options to paginate through the result set.
Please also see our event-based API:
event driven tracking
## Commerce
API Methods for carriers, expected delivery dates and addresses.
### Validate delivery address
- [POST /api/Address/Validation](https://developer.wineshipping.com/api/v3.1/openapi/commerce/addressvalidation.md): Use the Wineshipping Address Validation and Classification API operation to validate/correct and classify recipient addresses before you send the order to Wineshipping for fulfillment service. This API operation formats an input to some degree, and returns validation and classification indicators along with formatted addresses if any matching addresses are found. The operation also support searching pickup location as an option for UPS and FedEx only. Successful execution of this method will return a transaction reference identifier.Store this identifier back into your system for reference later in the event there is an issue with a specific address validation and classification result.
### Get carrier hold locations
- [POST /api/Address/GetCarrierLocations](https://developer.wineshipping.com/api/v3.1/openapi/commerce/getcarrierlocations.md): This operation returns carrier pickup locations where wine shipments are allowed. You can filter your search by carrier, city, state, ZIP code, and paginate through the result set.
_ The information provided by the Wineshipping Get Carrier Locations API service is based on the corresponding FedEx and/or UPS service information available at the time of inquiry and is subject to change without notice. Due to these factors, Wineshipping cannot guarantee the accuracy of current or future information generated by this API service._
### Estimate delivery dates
- [POST /api/Tracking/GetDeliveryEstimates](https://developer.wineshipping.com/api/v3.1/openapi/commerce/getdeliveryestimates.md): This operation provides delivery date estimation for Wineshipping fulfillment using FedEx and UPS carrier services within the USA. It requires an authenticated request with the recipient delivery address and desired range of future ship dates to generate a set of results for each applicable carrier and service class combination available for the delivery address and specified dates.
Note: The information provided by the Wineshipping Delivery Date Estimate API service is for estimating approximate delivery dates based on the corresponding FedEx and/or UPS carrier service information available at the time of inquiry, and is subject to change without notice. Due to these factors, Wineshipping cannot guarantee the accuracy of current or future information generated by the Delivery Date Estimate API service.