Connecting ShipStation Sales to Pipe17

The ShipStation Sales integration connects ShipStation to Pipe17, enabling order, product, fulfillment, location, and inventory data to flow between both systems. It is used for businesses that use ShipStation as their order management and shipping platform and want Pipe17 to serve as the central hub for fulfillment operations.

What this connector does:

  • Pulls orders from ShipStation into Pipe17 for routing and fulfillment
  • Pushes fulfillment and shipping updates back to ShipStation
  • Syncs your ShipStation product catalog with Pipe17
  • Maps ShipStation warehouses as Pipe17 fulfillment locations
  • Pushes available inventory levels from Pipe17 to ShipStation (new)

What this connector does not do:

  • Pull fulfillments from ShipStation into Pipe17
  • Create new products in ShipStation (product push supports updates only)

How It Works

All syncs run on a 5-minute polling cycle. The connector checks for new and updated data at each interval and processes changes incrementally using timestamps.

Direction What moves Frequency
ShipStation → Pipe17 Orders, products, locations Every 5 min
Pipe17 → ShipStation Fulfillments, order status updates, product updates, inventory Every 5 min

Authentication uses four separate credential sets:

  1. ShipStation API Key — The primary V1 API key for authenticating with ShipStation. Required for orders, fulfillments, products, and locations. Values are masked (eye-slash icon).
  2. ShipStation API Secret — The V1 API secret that pairs with the API Key. Both the key and secret are required together for V1 authentication.
  3. ShipStation API Partner ID — An optional partner identifier. Only needed if ShipStation has provided one as part of a partner arrangement. Can be left blank for standard accounts.
  4. ShipStation API V2 Key — A separate, newer API key used exclusively for the inventory push feature (V2 API). Not required unless you intend to push inventory levels from Pipe17 to ShipStation. Generated separately in ShipStation from the V1 credentials.

You should check the expiration date of your ShipStation V1 API key or keep a reminder to rotate the key before it expires. Check the ShipStation API documentation and Updating Your Expired API Keys for your reference.

On connection, the connector validates your credentials by fetching your ShipStation tag and warehouse lists. If credentials are invalid, the integration fails immediately.


Connect ShipStation Sales

Step 1: Find your ShipStation API credentials

  1. Log into ShipStation.
  2. Click your account name in the upper-right corner and go to Account Settings.
  3. Click the Account tab, then scroll to API Settings.
  4. Copy your API Key and API Secret.

If you plan to use inventory push, also generate a V2 API Key from the same API Settings page.

Step 2: Connect in Pipe17

  1. Go to Integrations and search for ShipStation Sales.
  2. Enter your API Key and API Secret.
  3. If using inventory push, enter your ShipStation API V2 Key.
  4. Click Connect.

Once connected, Pipe17 validates the credentials and pulls your warehouse list. You can then configure which data flows to enable.


ShipStation Sales Settings

Orders

General

Setting Default Description
Pull orders from ShipStation Off Enables order polling. When on, the connector pulls new and updated orders every 5 minutes.
Exclude orders created before this date Only pulls orders created after this date. If left empty, uses the integration creation date as the start point.
Process only orders with specific order IDs Allowlist of ShipStation order numbers. If set, only these orders are pulled. Leave empty to pull all.
Pull orders from specific warehouse(s) Filters orders by ShipStation warehouse name. Only orders assigned to listed warehouses are pulled. Leave empty to pull from all warehouses.

Order Status Handling

Setting Default Description
Mark ShipStation order as pending When sent to fulfillment Controls when Pipe17 marks the ShipStation order as pending_fulfillment. Options: Disabled / When pulled / When sent to fulfillment.
Mark order as On Hold in Pipe17 when on hold in ShipStation Off When enabled, ShipStation on_hold orders are pulled and set to onHold in Pipe17.
Cancel order in Pipe17 when cancelled in ShipStation Off When enabled, ShipStation cancelled orders are synced back to Pipe17 and marked canceled.
Cancel order in ShipStation when cancelled in Pipe17 Off When enabled, orders canceled in Pipe17 are pushed back to ShipStation and marked cancelled there. Orders already shipped or cancelled in ShipStation cannot be updated.

Tag-Based Order Ingestion

Use these settings when you want to control which orders are pulled using ShipStation tags rather than order status.

Setting Default Description
Pull orders only when assigned a specific tag When set, the connector pulls only orders tagged with this tag name or tag ID. Overrides status-based filtering. The tag is removed from the order after it is pulled.
After pulling a tagged order, assign this tag Tag name or ID to add to the order after it has been pulled. Use to mark orders as processed.

When tag-based ingestion is active, only orders in awaiting_shipment status are considered.

Split Orders

Setting Default Description
Create split ShipStation orders as separate orders in Pipe17 Off When off, split orders are merged in Pipe17 using the order number as the identifier. When on, each split is treated as a separate Pipe17 order.

Fulfillments

Setting Default Description
Push fulfillments to ShipStation Off Enables pushing Pipe17 fulfillments to ShipStation's mark-as-shipped endpoint.
Only mark shipped when fully shipped in Pipe17 Off When on, only the final fulfillment (when the order is fully fulfilled) is pushed. Intermediate partial fulfillments are skipped. All tracking numbers are combined and sent together.
Allow ShipStation to notify the customer Off Passes the notifyCustomer flag to ShipStation when marking an order as shipped.
Allow ShipStation to notify the marketplace Off Passes the notifySalesChannel flag to ShipStation when marking an order as shipped.
Skip carrier code matching Off By default, Pipe17 fuzzy-matches your carrier name against ShipStation's registered carriers. Enable this to skip matching and send the carrier code exactly as received.

Products

Setting Default Description
Process product catalog Disabled Options: Disabled / Pull products from ShipStation to Pipe17 / Push products from Pipe17 to ShipStation. Pull and push are mutually exclusive.
Process only products with specific SKU patterns Allowlist filter. Accepts exact SKU strings (case-insensitive) or regex patterns in the format /pattern/. Leave empty to process all SKUs.
Do not process products with specific SKU patterns Blocklist filter. Same syntax as the allowlist. Matching SKUs are always skipped, even if they match the allowlist.
Create bundle when fulfillment SKU differs from product SKU Off When on, if ShipStation's fulfillment SKU is different from the product SKU, Pipe17 creates a bundle product with the fulfillment SKU as the component.
Force product catalog resync Off Triggers a full product resync. Resets automatically when complete. Use after major catalog changes.

Inventory (Push only)

Setting Default Description
Push inventory updates to ShipStation Off Enables sending Pipe17 available inventory quantities to ShipStation. Requires the V2 API Key.
Inventory location mapping Maps Pipe17 location names to ShipStation warehouse names. Format: Pipe17 Location Name:ShipStation Warehouse Name. Add one entry per location. Unmapped locations are skipped.
Report inventory only for specific SKUs Allowlist filter for inventory push. Accepts exact strings or regex patterns.
Do not push inventory for specific SKUs Blocklist filter for inventory push. Same syntax as the allowlist.
Force inventory resync Off Triggers a full inventory resync to ShipStation. Resets automatically when complete.

Locations

Setting Default Description
Pull locations from ShipStation On Pulls ShipStation warehouses into Pipe17 as fulfillment locations. Each warehouse becomes a separate location. Locations with duplicate names or IDs are skipped.

Flows

Orders: ShipStation → Pipe17

  1. Every 5 minutes, the connector polls ShipStation for new and updated orders.
  2. Orders are filtered by status (awaiting_shipment by default), warehouse, order ID allowlist, or tag — depending on your settings.
  3. Matching orders are mapped to Pipe17's order format and created or updated.
  4. If Mark as pending is set to When pulled, the order is immediately marked pending_fulfillment in ShipStation.
  5. If a tag-based ingest tag is configured, the tag is removed from the order in ShipStation and a processed tag is added (if configured).

Order status mapping:

ShipStation status Pipe17 status Condition
awaiting_shipment readyForFulfillment Default
on_hold onHold Only if On Hold sync is enabled
cancelled canceled Only if Cancel sync is enabled

Orders: Pipe17 → ShipStation

The connector pushes order updates back to ShipStation in two scenarios:

Trigger What happens in ShipStation
Order marked sentToFulfillment in Pipe17 Order status set to pending_fulfillment (if When sent mode is on)
Order marked canceled in Pipe17 Order status set to cancelled (if outbound cancel is enabled)

Orders that are already shipped or cancelled in ShipStation cannot be updated.

Fulfillments: Pipe17 → ShipStation

  1. When a Pipe17 fulfillment is created or updated, the connector pushes it to ShipStation's mark-as-shipped endpoint.
  2. The carrier code is fuzzy-matched against ShipStation's registered carriers (unless carrier matching is disabled).
  3. The tracking number, ship date, and warehouse are included in the payload.
  4. If Only mark shipped when fully fulfilled is on, intermediate fulfillments are held and only the final fulfillment is sent, combining all tracking numbers.

Tracking numbers are joined with commas. If the combined length exceeds 50 characters, older tracking numbers are dropped. This is a ShipStation API limit.

Products: ShipStation → Pipe17

  • Runs as a full catalog snapshot, not incrementally.
  • Scheduled daily at 4 AM UTC (or 4 hours after the previous sync, whichever is later).
  • SKU allowlist/blocklist filters are applied during the pull.
  • If a product's fulfillment SKU differs from its product SKU and the bundle setting is enabled, a bundle is created in Pipe17 with the fulfillment SKU as its component.

Products: Pipe17 → ShipStation

  • Runs every 5 minutes for changed products.
  • Updates only — the connector cannot create new products in ShipStation.
  • Product must already exist in ShipStation for the update to apply.
  • Fields pushed: name, price, cost, weight, dimensions, description, harmonized code, country of origin, active status.

Inventory: Pipe17 → ShipStation

  1. When available inventory changes in Pipe17 for a tracked SKU–location record, the connector pushes the updated available quantity to ShipStation.
  2. The Pipe17 location is resolved to a ShipStation warehouse and inventory location using your location mapping.
  3. The update is sent to ShipStation's V2 inventory API as an adjust transaction.
  4. Records for unmapped locations or filtered SKUs are skipped silently.

See Push Inventory to ShipStation for full setup details.

Cancellations

Flow Setting to enable Behavior
ShipStation → Pipe17 Cancel order in Pipe17 when cancelled in ShipStation Cancelled ShipStation orders are pulled and matched to Pipe17 orders. If the Pipe17 order is in a cancellable status, it is marked canceled.
Pipe17 → ShipStation Cancel order in ShipStation when cancelled in Pipe17 Pipe17 canceled orders are pushed to ShipStation and set to cancelled. Orders already shipped or cancelled in ShipStation are not changed.

Manual Actions

You can trigger the following actions on demand from the integration settings:

Action What it does
Pull orders by order number Pulls specific ShipStation orders by their order numbers, bypassing the normal polling cycle.
Pull orders by date range Pulls all orders created within a specific date and time window. Triggers a one-time pull of orders within a lookback window. Choose from fixed intervals: 1h, 2h, 4h, 8h, 12h, 24h, or 48h (defaults to 1h if not specified).
Pull products by SKU Pulls specific products by SKU list. Optionally ignores SKU filters.

Troubleshooting

Area Check What to do
Orders not appearing in the app Orders pull is disabled Enable Pull orders from ShipStation in settings
  Order has wrong status Only awaiting_shipment orders are pulled by default. Verify the order status in ShipStation
  Tag-based ingestion is configured If ordersIngestTag is set, only tagged orders are pulled. Confirm the tag exists on the order
  Warehouse filter is set If ordersLocations is configured, orders from other warehouses are skipped. Add the warehouse or clear the filter
  Order is outside the date filter Review the Exclude orders created before date setting
Order updates not syncing to ShipStation Outbound cancel is disabled Enable Cancel order in ShipStation when cancelled in the app
  Order already shipped or cancelled ShipStation does not allow updates in these states
  Mark as pending is disabled Set Mark ShipStation order as pending to When sent to fulfillment to push updates
Fulfillments not appearing in ShipStation Fulfillments push is disabled Enable Push fulfillments to ShipStation
  Merge mode is on If Only mark shipped when fully fulfilled is enabled, partial fulfillments are held until complete
  Carrier code mismatch Enable Skip carrier code matching if carrier codes don’t align
  Tracking number too long ShipStation rejects tracking numbers over 50 characters; only recent ones are kept
Products not syncing Product sync is disabled Set Process product catalog to Pull or Push
  SKU filter is too restrictive Review allowlist and blocklist patterns
  Product doesn't exist in ShipStation Product push cannot create products. Ensure the product exists in ShipStation
  Pull hasn't run yet Product pull runs daily. Use Force product catalog resync to trigger immediately
Inventory not updating in ShipStation Inventory push is disabled Enable Push inventory updates to ShipStation
  V2 API Key not configured Inventory push requires the ShipStation V2 API Key
  Location not mapped Add mapping in format Pipe17 Location:ShipStation Warehouse
  SKU is filtered out Review inventory SKU allowlist and blocklist
  Data is stale Toggle Force inventory resync to push current values
Credentials or connection errors Invalid API Key or Secret Regenerate credentials in ShipStation (Account Settings → API Settings)
  Wrong API version key Use V1 (key + secret) for orders/products and V2 key for inventory

Need Help?

If you need additional assistance:

We're here to help you succeed with your operations.

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.

Have more questions?
Submit a request
Share it, if you like it.