---
title: "ShipStation"
description: "Connect with ShipStation for shipping and fulfillment"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.firearmcart.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ShipStation

# ShipStation Integration

Connect your FirearmCart store with ShipStation for multi-carrier shipping and label printing.
---

## Features

| Feature | Description |
|---------|-------------|
| **Order push** | Fulfillments sent to your ShipStation queue |
| **Real-time rates** | Compare rates across your ShipStation carriers at checkout |
| **Label printing** | Print shipping labels in ShipStation |
| **Tracking sync** | Tracking updates flow back to FirearmCart automatically |

---

## Prerequisites

Before connecting, you need:

- Active ShipStation subscription
- Carrier accounts connected in ShipStation (UPS, FedEx, etc.)
- API key and secret from ShipStation

### Getting API Credentials

1. Log into ShipStation
2. Go to **Settings > Account > API Settings**
3. Generate new API Key
4. Copy API Key and Secret

---

## Setting Up

1. Navigate to **Plugins > Marketplace**
2. Find **ShipStation**
3. Click **Activate**
4. Enter your **API Key** and **API Secret**
5. Pick your **Store** — FirearmCart lists the stores on your ShipStation account and selects it for you if you only have one
6. Click **Activate Plugin**

Your credentials are verified against ShipStation before activation, and the tracking webhook is registered for you automatically — there is nothing to paste into ShipStation by hand. Once active, a **ShipStation** entry appears under **Plugins** in the sidebar.

### Configuration Options

Configure these on **Plugins > ShipStation**:

| Setting | Description |
|---------|-------------|
| **Ship From Address** | Address, apartment/suite, city, state, ZIP — used to calculate rates |
| **Carriers** | Which of your ShipStation carriers to use for real-time rates |
| **Services** | Which services from each carrier to offer at checkout |
| **Enable real-time rates at checkout** | Master switch for checkout rating through ShipStation |
| **Max box weight (lb)** | Weight ceiling used when splitting an order across multiple boxes |
| **Test Connection** | Verify your API key and secret authenticate with ShipStation |

Only one ShipStation connection is allowed per store.

---

## Order Push

Orders reach ShipStation per **fulfillment**, not automatically on every order:

1. Customer places order in FirearmCart
2. The order's fulfillments are processed — automatically if you have fulfillment auto-processing turned on in **Settings > Fulfillment**, otherwise when you process them from the order page
3. Each ShipStation-routed fulfillment is pushed into your ShipStation queue
4. Create the shipping label in ShipStation
5. Tracking syncs back to FirearmCart
6. Customer receives shipping notification

### What Gets Pushed

- Order number (order ID plus fulfillment ID)
- Customer email
- Bill-to address (always the customer)
- Ship-to address — the FFL for firearm fulfillments, otherwise the customer's shipping address
- Line items: SKU, name, quantity, unit price, UPC
- Amount paid, shipping and tax
- The order note

> Dropship lines are stripped before the push — only warehouse-shippable items are sent.

---

## Real-Time Rates

With **Enable real-time rates at checkout** on, ShipStation returns live rates at checkout:

- Rates come from the carriers and services you selected
- Rated against your Ship From address and the customer's destination
- Options that aren't legal for the shipment's item class (for example, handguns) are filtered out before the customer sees them
- The customer's selected rate is applied to the order

---

## FFL Shipping

For firearm orders:

- The FFL's address is used as the ship-to on the fulfillment pushed to ShipStation, with the FFL's business name as the company
- The customer remains the bill-to
- When a label is purchased through ShipStation rating rather than in the ShipStation UI, adult signature is set automatically for handgun and long-gun shipments

---

## Tracking Sync

Tracking flows back two ways, and the two are de-duplicated by tracking number:

- **Webhook** — ShipStation's `SHIP_NOTIFY` notification, registered automatically at activation with a per-store secret
- **Polling** — every 10 minutes FirearmCart also queries ShipStation for shipments on any fulfillment still awaiting tracking, because `SHIP_NOTIFY` is delivered best-effort and can be delayed or dropped

When tracking arrives the fulfillment is marked shipped, registered for tracking updates, and the customer notification fires.

---

## Troubleshooting

### Orders Not Reaching ShipStation

- Use **Test Connection** on the ShipStation page to confirm the API credentials still authenticate
- Confirm the fulfillment is actually routed to ShipStation
- Confirm the fulfillment has warehouse-shippable items — dropship-only fulfillments are never pushed
- Check that the fulfillment was processed (automatically or from the order page)

### Tracking Not Updating

- Give the 10-minute polling sweep a chance to run — it picks up shipments the webhook missed
- Use **Test Connection** to confirm the API connection
- If the webhook registration failed at activation, deactivate and re-activate the plugin to re-register it
- Enter tracking manually on the fulfillment if needed

---

## Related Documentation

- [Integrations Overview](/integrations) - All integrations
- [Fulfillment](/orders/fulfillment) - Order fulfillment
- [Shipping](/store-setup/shipping) - Shipping configuration
- [Shipping Firearms](/ffl-compliance/shipping-firearms) - Firearm shipping requirements

Source: https://docs.firearmcart.com/integrations/shipstation/index.mdx
