Integrations

ShipStation integration for Amazon, Shopify and 3PL operations

Updated · By Ecomsellertool editorial team

Short answer

A custom ShipStation integration connects ShipStation to what it does not run on its own: your warehouse system, Amazon's FBA inbound workflow, client billing and channels it does not connect. ShipStation keeps printing labels and tracking parcels; the integration decides which orders reach it and where tracking and stock go next. We built one into Pacific Prep's 3PL system, alongside Amazon inbound and Shopify orders.

  • Pacific Prep's warehouse system, which we built, connects Amazon's inbound shipment flow, Shopify orders synced in real time, ScanPower and ShipStation.
  • ShipStation's pricing page lists API access on its Standard and Premium plans, not on Starter (checked September 25, 2026).
  • ShipStation API V1 allows 40 requests a minute per API key and secret; V2 allows 200 a minute by default. Both return a 429 error at the limit.
  • ShipStation calls V1 legacy and says it will be removed in the future. V2 is in early release and adds batch labels, return labels and manifests.
  • For small-parcel FBA boxes shipped on your own carrier, Amazon's Fulfillment Inbound API needs the tracking ID of every box, sent with updateShipmentTrackingDetails.
  • We are not in ShipStation's partner program. The integrations we build run on your own ShipStation, Amazon and Shopify accounts and API keys.

What syncs with ShipStation

What syncsDirectionWhat starts it
Shopify ordersShopify to the warehouse systemA Shopify order notification, synced in real time and counted as received, processed and fulfilled
Shipping labels for non-FBA ordersWarehouse system to ShipStation, label back to the pack stationAn order packed and its items scanned
FBA inbound shipmentsWarehouse system to Amazon (not through ShipStation)A client's send-in, run through Amazon's inbound shipment flow
FBA inventory per seller accountAmazon to the warehouse systemA request for Amazon's FBA manage-inventory report
Return ordersInto the warehouse system, per clientA return received at the warehouse
Billable activityWarehouse system to each client's billing recordsEach billable transaction or activity, reported with custom reports

Shipped in: Pacific Prep: 3PL warehouse management system

This page is for 3PLs, FBA prep centers and brands that print labels in ShipStation and need it joined to Amazon, Shopify or their own warehouse system. It covers what a custom integration adds to ShipStation's own connections, the sync map from a 3PL system we built, where ShipStation fits in Amazon's inbound workflow, when the standard connector is enough, and what the API asks of the code. ShipStation, Amazon and Shopify facts link to their own documentation, checked September 25, 2026.

What does a custom ShipStation integration do?

It joins ShipStation to the parts of the operation that ShipStation does not own. ShipStation is good at what it was built for: importing orders from connected stores, comparing carrier rates, printing labels and sending tracking back. ShipStation's order management page says that once labels are created, orders move to Shipped with tracking sent back to your stores (checked September 25, 2026). A custom integration takes over where the operation has rules ShipStation cannot see: stock kept in a warehouse system, Amazon inbound shipments, per-client billing, or a channel with no ready connection.

JobShipStation on its ownWhat a custom integration adds
OrdersImports orders from connected stores and marketplacesSends orders from your warehouse system, ERP or a channel ShipStation does not connect
Labels and ratesRate shopping and labels across your carrier accountsLabels requested from the pack station at the moment of the scan, tagged with the client they belong to
TrackingWrites tracking back to stores it connectsDecides which one system writes tracking to each channel, so nothing is written twice
StockInventory tracking by warehouse, synced to marketplaces and cartsCounts from a WMS with bins, license plates and quarantined units, sent from one place only
Amazon inboundPlans, placement and Amazon's labels live in Amazon's toolsTracking for FBA boxes shipped on your own carrier, matched to Amazon's box IDs
Client billingThe postage cost on each labelEvery billable event, from receiving and prep to storage, pick and pack and postage, priced per client

The integration is code that runs on your accounts and calls ShipStation's API, Amazon's Selling Partner API and Shopify's APIs. It does not replace ShipStation. For most teams, the goal is to keep the label workflow packers already know and remove the copying, re-keying and double updates around it: tracking numbers pasted into Send to Amazon, orders typed into a second system, stock counts fixed by hand.

What moves between ShipStation, Amazon, Shopify and the warehouse system?

Our evidence is Pacific Prep, a full-service prep and ship company in Oregon. We built its warehouse management system, which integrates Amazon, Shopify, ScanPower and ShipStation. It runs Amazon's inbound shipment flow for FBA orders and handles non-FBA shipments with packing, item scanning and label printing. It also covers receiving, bin locations and license plates, returns and billing. The map below lists each lane of that build, what the case study records about it, and how that lane runs on today's APIs.

The Pacific Prep sync map

LaneDirection and triggerWhat the case study recordsWhere it runs on today's APIsWhat breaks first
Shopify ordersShopify to the WMS, on each order notificationReal-time synchronization of Shopify orders; notifications counted as received, processed and fulfilledShopify order webhooks, plus a scheduled pull that catches missed onesA webhook that never arrives, or arrives out of order
Non-FBA labelsWMS to ShipStation when an order is packed and scanned; label and tracking number back to the pack stationPacking, item scanning and label printing for non-FBA shipments; ShipStation is one of the platforms the system integratesV1: create or update the order by its order key, then create a label; V2: shipments, labels and batchesA retry that creates a second order instead of updating the first
FBA inboundWMS to Amazon, when a client's send-in is readyAmazon's full inbound shipment flow, with packing, scanning and label printingAmazon's Fulfillment Inbound API: inbound plan, packing, placement, transport and labelsNot a ShipStation flow, unless the boxes go on your own carrier (next section)
FBA stockAmazon to the WMS, on a report requestInventory linked to each seller account, from Amazon's FBA manage-inventory reportThe SP-API Reports APIA report snapshot treated as a live count
Warehouse stockKept in the WMS; changes on every receive, move and pickTotal, available, reserved and quarantined units; license plates tied to bin locationsShipStation's V2 inventory endpoints, if ShipStation must see the countsTwo systems pushing stock to the same store
ReturnsInto the WMS, per client, when a return arrivesReturn order processingShipStation V2 return labels, where the warehouse issues the labelA returned unit counted as sellable before anyone checks it
Client billingWMS to each client's billing records, on every billable eventA billing module with transaction records and custom reportsNot a ShipStation flow; postage is read from each labelPostage billed to the wrong client when clients share one account

The case study names the flows the system runs, not the API calls behind them, so the direction and trigger in each row are our description of how that flow runs, not a quote from the case study. The fourth column maps each lane onto the APIs as they stand today, from ShipStation's, Amazon's and Shopify's documentation, and the last column is the failure we design against first. Shopify's guide About webhooks says an app can miss webhook events, that events can arrive out of order, and that apps should run reconciliation jobs that fetch data periodically (checked September 25, 2026). That is why every event-driven lane in the map also has a catch-up pull.

One account’s screen, from software we built
Pacific Prep: Prep-centre stock per client and SKU: total, reserved, available, quarantined
Pacific Prep

Prep-centre stock per client and SKU: total, reserved, available, quarantined

Read the Pacific Prep case study ↗

The screen above is the Pacific Prep inventory table: stock per client and SKU, split into total, reserved, available and quarantined units. Those counts, plus the license plate each unit sits on, hold more than ShipStation's inventory model, which tracks on hand, allocated and available units (see the API section below). In a build like this, the WMS is the one place that knows what can really ship, so it should be the one system that sends stock to the stores, and ShipStation should read stock rather than own it.

How do orders, labels and tracking flow between ShipStation and your channels?

The first decision in any ShipStation build is who owns the channel connection. If two systems both import a Shopify order, it can be picked and shipped twice. If both write tracking back, the customer can get two shipping emails, or the channel keeps whichever update arrived last. There are two sound patterns, and a build should pick one per channel and write it down.

PatternOrders enter throughTracking written back byFits when
ShipStation owns the channelShipStation's own store connectionShipStation, when the label is createdA brand ships its own orders and the warehouse system only needs to know what shipped
The warehouse system owns the channelA direct connection from the WMS, as in Pacific Prep's Shopify syncThe WMS, after ShipStation returns the label and tracking numberA 3PL with many clients, a channel ShipStation does not connect, or routing rules that live in the WMS

In the first pattern, the integration listens. ShipStation's webhook subscription covers ORDER_NOTIFY, ITEM_ORDER_NOTIFY, SHIP_NOTIFY, ITEM_SHIP_NOTIFY, FULFILLMENT_SHIPPED and FULFILLMENT_REJECTED events, and can be limited to one store. The webhook payload carries only a resource URL and the event type; the integration then fetches that URL with its API credentials to get the orders or shipments (both checked September 25, 2026). ShipStation's Shopify connection says it imports Shopify orders with physical products and that tracking can flow back when you create a label (checked September 25, 2026).

In the second pattern, the integration drives. ShipStation's Create/Update Order call updates the order with a matching order key or creates a new one, and only open orders (awaiting payment, awaiting shipment or on hold) can be updated; shipped and canceled orders cannot (checked September 25, 2026). The integration should derive the order key from the channel order ID, so a retry after a timeout updates the same order instead of creating a duplicate.

Create Label for Order returns the label as a base64-encoded PDF, and the pack station prints it straight away. If a parcel ships outside ShipStation, Mark an Order as Shipped records it without a label; it notifies neither the customer nor the sales channel unless the request asks it to (checked September 25, 2026). Which node and carrier each order should use is a separate question: our guide to multi-marketplace order routing covers routing by stock, cost and each channel's ship-by date, including when an order should go to Amazon Multi-Channel Fulfillment instead of a 3PL.

How does it work with Amazon inbound and FBA?

Amazon inbound runs on Amazon's systems, not ShipStation's. The Fulfillment Inbound API (version 2024-03-20) creates inbound plans, sets packing information and generates placement and transportation options; the v0 getLabels operation, which Amazon has not deprecated, prints the box labels. API plans open in Send to Amazon once placement and transportation are confirmed. The same page says the seller must prep and label all products before sending them to Amazon's US network, and it lists the Amazon Fulfillment role for these operations (checked September 25, 2026). In the Pacific Prep build, this flow runs inside the warehouse system against Amazon's APIs; our Amazon SP-API development page covers the inbound, label and tracking work we build on them.

ShipStation enters the inbound picture in one case: small-parcel boxes shipped to Amazon on your own carrier account. Amazon's guide to shipping with a non-partnered carrier says Amazon-partnered carrier shipments are available only in the contiguous United States. With your own carrier, you pick the transportation option whose shipping mode is ground small parcel and whose shipping solution is "use your own carrier". You then confirm a delivery window for each shipment, 7 days for domestic shipments, and print Amazon's labels for each shipment (checked September 25, 2026). The carrier label on each box can come from ShipStation.

The last step is the one that gets missed. Amazon's updateShipmentTrackingDetails operation takes the tracking ID for each box, matched to the box ID from Amazon's list of inbound plan boxes, and the non-partnered carrier guide says tracking IDs must be updated for all of the boxes (checked September 25, 2026). Done by hand, that means copying one tracking number per box from ShipStation into Send to Amazon, client by client. An integration reads them from the labels and sends them to Amazon in one call per shipment.

Checklist: FBA boxes on your own carrier through ShipStation

  • Every unit prepped and labeled before packing, as Amazon requires for its US network, with prep and label owners set on each plan item
  • The transportation option with ground small parcel as the shipping mode and "use your own carrier" as the shipping solution
  • A 7-day delivery window confirmed for each domestic shipment, with the ShipStation ship date set so the boxes arrive inside it
  • Amazon's labels printed for each shipment, and one carrier label per box bought in ShipStation
  • Each ShipStation tracking number stored against Amazon's box ID at the packing station, not afterwards
  • Tracking IDs for every box sent to Amazon, then the shipment checked in Send to Amazon

Once the boxes arrive, the count Amazon receives has to be matched to what left your dock. When the warehouse system keeps each box's ShipStation tracking number, Amazon box ID and carton contents together, a shortfall can be traced to a single box instead of a whole shipment. That reconciliation is its own job with its own deadlines, and our page on 3PL and FBA inventory reconciliation explains how brands run it.

When is the standard ShipStation connector enough?

More often than you might expect. ShipStation's inventory management page says its tracking syncs stock levels across marketplaces and carts, and its order management page lists rules that send orders to specific warehouses, tag them, choose carriers and services, or hold them for review. Check your plan first: ShipStation's pricing page lists Inventory Sync and unlimited automation rule types on Standard and Premium, not on Starter (all checked September 25, 2026). If your operation fits those tools, switch them on and skip the build. The table below is the test we use in scoping.

If this is trueStart withWhy
You ship your own orders from one or two warehouses, and ShipStation connects every channel you sell onShipStation's standard store connectionsOrders import and tracking goes back without code
Your routing fits warehouse, tag, carrier and hold rulesShipStation's automation rulesThose are the rule types ShipStation lists
Purchasing and stock are the gap, and labels already work in ShipStationAn inventory system with a ShipStation connectorThe connector already moves orders, statuses and tracking between the two
You run a multi-client warehouse on a single ShipStation accountShipStation's 3PL manager add-on, or a 3PL WMSCheck whether your billing rules fit before you build
Stock sits in a WMS with bins, license plates or quarantined units, you ship FBA inbound on your own carrier, or a client channel has no connectionA custom integrationThe rules live outside ShipStation, so code has to join them to it

Two inventory systems with ready ShipStation connectors show what "buy first" looks like. Cin7's ShipStation integration says orders from any sales channel are automatically pushed to ShipStation, and tracking flows back into Cin7. Finale Inventory's ShipStation page says Finale verifies inventory levels when orders sync from ShipStation, identifies which shipments can be sent and updates their status in ShipStation (both checked September 25, 2026). For a brand whose gap is purchasing and stock, either is likely the better choice over a custom build.

For multi-client warehouses, ShipStation's pricing page lists a 3PL manager as an add-on with its own fee (checked September 25, 2026). Ask ShipStation how it handles your rate card before you commission anything. If you are comparing full 3PL and prep-center platforms, our page for 3PLs and prep centers sets PrepBusiness, Extensiv and Packiyo against a custom build.

What does a ShipStation API integration have to handle?

Two APIs, two sets of limits and two webhook systems. ShipStation's API overview lists V2 as available with the Standard and Premium plans and says the original V1 is still supported and maintained for existing integrations. Its authentication page calls V1 legacy and says it will be removed in the future. The V2 getting-started guide says V2 is in an early release stage and that some familiar V1 features are not in V2 yet (all checked September 25, 2026).

ShipStation API V1 (legacy)ShipStation API V2
Base URLssapi.shipstation.comapi.shipstation.com/v2
AuthenticationBasic authentication with an API key and secretAn API-Key header
Rate limit40 requests a minute per key and secret200 requests a minute by default
Keys per accountTwo sets of V1 credentials active at a timeOne V2 key active at a time
WebhooksOrder and shipment events; the payload is a link to fetchBatch, tracking, shipment, label and fulfillment events, created only through the API
Used forOrder create and update, mark as shipped, labels for ordersShipments, labels, batch labels, return labels, manifests, pickups and inventory

The limits come from ShipStation's V1 requirements page and its V2 usage and rate limits page: both return 429 Too Many Requests at the limit, V1 with rate-limit headers and V2 with a Retry-After header (checked September 25, 2026). The V1 limit shapes the design. If each order takes three calls on V1, an update, a label and a webhook fetch, one key pair tops out at 2,400 requests an hour, or about 800 orders. V2's higher limit and its bulk endpoints, which ShipStation points to for creating hundreds of labels at once, move that ceiling.

Webhooks differ too. A V1 webhook carries only a resource URL and the event type, so every event costs at least one more call. ShipStation's V2 webhooks overview lists events for processed batches, tracking updates, shipments and labels created, and fulfillments shipped or rejected, with richer payloads. V2 events can be created only through the API, not in the ShipStation app, and each webhook needs a unique combination of URL, event and store (checked September 25, 2026). A build that moves to V2 should register its webhooks from code, so a new environment gets the same set.

Three more build notes. ShipStation's V2 guide says label documents are stored for a finite period, so the integration saves each label PDF on your side. The V2 shipment endpoints need create_sales_order: true for a shipment to appear on the Orders tab, and ShipStation advises building against a duplicate store connection so production is not disturbed. With one V2 key per account, rotating it means a short, planned swap, so we keep the key in one secret store rather than in several services.

The V2 inventory endpoint reports on hand, allocated and available units per SKU, warehouse and location, where available is on hand minus allocated (checked September 25, 2026). That is the field list to check before you let ShipStation show your stock. A WMS that also holds reserved, quarantined or license-plated units has to decide which of its counts maps to on hand, or ShipStation will show stock that cannot ship.

Who builds custom ShipStation integrations?

Ecomsellertool is a tech agency that builds integrations and operations software on brands' and 3PLs' own accounts. We built Pacific Prep's warehouse system, connected to Amazon inbound, Shopify and ShipStation, and prep systems for Little Owl and EzBookPrep. For a ShipStation integration, we map every lane and choose who owns each channel before writing code. We have built on Amazon's seller APIs since 2017 and shipped 50+ tools.

For brands, the order side is part of Ecomsellertool Growth OS: orders from every channel in one queue, routed to the right warehouse, 3PL or Amazon MCF, with carrier selection across 13+ carriers. If your team already prints labels in ShipStation, we connect it rather than replace it. We are not in ShipStation's partner program. What we build runs on your ShipStation, Amazon and Shopify accounts with your API keys, which your admins can revoke at any time.

You keep your accounts, your data and the custom code we build; the Growth OS base is licensed to you. If you stop working with us, your accounts, data and custom code stay with you; the Growth OS base continues under its license terms. Custom modules and AI agents are scoped in an architecture doc with a fixed price and go-live date, which you approve before work starts.

The other connections we have shipped are on the integrations hub, including the Walmart Marketplace API. To walk through your lanes with the engineers who would build them, schedule a call from the card below. If you are a brand selling on Amazon, the free 24-hour diagnostic connects through Login with Amazon, with no password shared, and reports within 24 hours of connecting, on business days. We only read data; we never change listings, prices, stock or ads.

Frequently asked questions

Do we need ShipStation for FBA inbound shipments?

No. Inbound plans, packing, placement and Amazon's box labels run through Send to Amazon or Amazon's Fulfillment Inbound API. ShipStation has a role only when you ship small-parcel boxes on your own carrier account and buy those carrier labels in ShipStation. Its labels then supply the tracking IDs Amazon needs for every box in the shipment.

Which ShipStation plan do we need for an API integration?

ShipStation's pricing page lists API access on the Standard and Premium plans and not on Starter, as of September 25, 2026. ShipStation's developer docs also tell platform customers to check the API Settings page in their account to see whether their plan supports API access.

Should a new integration use ShipStation API V1 or V2?

Use V2 for new label, rate, batch, return-label and inventory work: it has the higher rate limit and the newer endpoints. ShipStation says some V1 features are not in V2 yet, so check each endpoint you rely on. Keep any V1 calls in one module, because ShipStation says V1 will be removed in the future.

Should our 3PL use one ShipStation account or one per client?

Both work. With one account the 3PL controls carrier accounts and postage, and the integration must tag every order and label with its client so postage is billed correctly. With one account per client, the client keeps its own store connections and carrier rates, and the integration holds one API key per account. We settle this in scoping, before any code.

How do you test a ShipStation integration without buying real labels?

ShipStation's V1 label calls take a test-label flag, but only for USPS labels. Sandbox keys starting with TEST_ are for ShipStation API customers, formerly ShipEngine, not for ShipStation platform accounts. For the V2 shipment endpoints, ShipStation advises building against a duplicate store connection so production orders are not disturbed, and it recommends a mock in automated tests, because tests that call the API can hit the rate limit. We also void any label created during testing.

What happens to the integration if we stop working with you?

It runs on your ShipStation, Amazon and Shopify accounts with your API keys, so the connections and the data are already on your side, and your admins can revoke the keys we use. You keep your accounts, your data and the custom code we build; the Growth OS base is licensed to you. After an engagement ends, your accounts, data and custom code stay with you; the Growth OS base continues under its license terms.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Scope this integration with the engineers who build it.

Enter your email, connect your Amazon account with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a free report of what is going wrong within 24 hours of connecting, on business days. Prefer to talk it through? Schedule a call with the team that built these systems.

Free · 30 minutes · Pick any open slot