Purchase orders help you manage inventory replenishment from suppliers. Create orders, track deliveries, and automatically update inventory when products arrive.
ShipStation provides comprehensive purchase order management through the following endpoints:
- List & Get Purchase Orders - Retrieve all purchase orders with filtering, or get details for a specific order
GET /v2/purchase_orders- List purchase orders with paginationGET /v2/purchase_orders/{purchase_order_id}- Get detailed information
Create Purchase Orders - Create new orders to suppliers
POST /v2/purchase_orders- Create a purchase order with products
Update Purchase Orders - Modify orders and change status
PUT /v2/purchase_orders/{purchase_order_id}- Update all order details (draft status only)POST /v2/purchase_orders/{purchase_order_id}/shipping_details- Update shipping details (open status only)POST /v2/purchase_orders/{purchase_order_id}/status- Update order status
- Receive Products - Record product receipts and update inventory
POST /v2/purchase_orders/{purchase_order_id}/receives- Receive products from an order
- Purchase Order Documents - Generate PDF documents for purchase orders
GET /v2/purchase_orders/{purchase_order_id}/documents/order_summary- Print order summaryGET /v2/purchase_orders/{purchase_order_id}/documents/received_summary- Print received products summary
Purchase orders follow a specific workflow:
- Create - Set up a new purchase order with products and supplier information
- Order - Mark as
openwhen sent to supplier - Receive - Record product receipts as they arrive. Automatically marked as
receivedwhen all products are in - Complete - Marked as
closedwhen the purchase order has been fully processed.
| Status | Description | Next Steps |
|---|---|---|
draft | Initial state after creation | Review and finalize details, then mark as open when sent to supplier and awaiting delivery |
open | Order finalized and ready | Wait for shipment, then use receive endpoint to record arrivals |
receiving | Partially received | Continue receiving remaining products |
received | All products received | Mark as closed when no further action needed |
cancelled | Order cancelled | No further action possible |
When you receive products through the /receives endpoint:
- Inventory levels automatically increase at the specified location
- Purchase order status updates based on receipt completion
- Order multiple products in a single purchase order
- Track costs, supplier SKUs
- Support for lot numbers and expiration dates
- Handle rejected or damaged items
- Link to suppliers via
supplier_id - Track carrier and tracking information
- Add custom reference numbers
Before creating purchase orders, you should:
- Set up your suppliers with contact information
- Configure your inventory warehouses
- Create inventory locations where products will be received
Create a Supplier
POST /v2/suppliers { "supplier_name": "Acme Widgets Inc", "supplier_email": "orders@acmewidgets.com" }Create a Purchase Order
POST /v2/purchase_orders { "supplier_id": "se-567", "products": [ { "sku": "WIDGET-001", "quantity": 100, "cost": 9.99 } ] }Mark as Ordered
POST /v2/purchase_orders/se-234/status { "status": "open" }Receive Products
POST /v2/purchase_orders/se-234/receives { "product_receives": [ { "sku": "WIDGET-001", "inventory_location_id": "se-12345", "received_quantity": 100 } ] }Close Purchase Order
POST /v2/purchase_orders/se-234/status { "status": "closed" }
- Manage Suppliers - Set up supplier information
- Manage Inventory Levels - Track inventory after receiving
- Manage Inventory Locations - Configure receiving locations