ShipStation Webhooks

If you're using ShipStation's API to communicate order information, or if you're using a third-party system that wants to pull data from ShipStation, it may be beneficial for you to set up webhooks. After you set up webhooks, ShipStation can push alerts when certain events occur in your account. These alerts will help guide the system to an endpoint you can use to gather data from the ShipStation account.

For information about using V2 Webhooks, please see the V2 Developer Portal guide on Webhooks.

Webhooks Basics

Webhooks allow ShipStation to automatically send data to an external application when specific events occur in your account. When a webhook is triggered, ShipStation sends a payload to the target URL you specify, allowing external systems to receive updates about orders, shipments, fulfillment activity, and tracking events.

Learn about the webhook types available in ShipStation and the events that trigger them.

Available Webhooks

Use the information below to determine which webhook best fits your integration needs.

Order Webhooks

Webhook

Event ID

Trigger

On New Orders

ORDER_NOTIFY

New order created

On New Items

ITEM_ORDER_NOTIFY

New order created

Shipment Webhooks

Webhook

Event ID

Trigger

On Orders Shipped

SHIP_NOTIFY

New order created

On Items Shipped

ITEM_SHIP_NOTIFY

New order created

Fulfillment Webhooks

Webhook

Event ID

Trigger

On Items Shipped by Fulfillment Provider

FULFILLMENT_SHIPPED

Fulfillment provider ships order

On Items Rejected by Fulfillment Provider

FULFILLMENT_REJECTED

Fulfillment provider rejects order

V2 Webhooks

Webhook

Event ID

Trigger

(V2) On Batch Processed

BATCH_PROCESSED_V2

Shipping batch completes processing

(V2) On New Track Event

TRACK_EVENT_V2

Tracking update received

(V2) On New Order Created

SHIPMENT_CREATED_V2

Order imported into ShipStation

(V2) On New Label Created

LABEL_CREATED_V2

Shipping or return label created

(V2) On Fulfillment Shipped

FULFILLMENT_SHIPPED_V2

Order marked as shipped or fulfilled

(V2) On Fulfillment Rejected

FULFILLMENT_REJECTED_V2

Fulfillment provider rejects order

Webhook Event Reference

Review the webhook descriptions below to understand when each webhook is triggered and any behaviors or limitations that may apply.

Order Webhooks

On New Orders (ORDER_NOTIFY)

Triggers when a new order is created in ShipStation in any status other than Awaiting Payment, or when an order in Awaiting Payment is updated to any status other than Canceled.

Additional details:

  • A webhook payload is created for each import action that creates at least one new paid order.

  • Orders created at the same time are included in a single webhook payload.

On New Items (ITEM_ORDER_NOTIFY)

Triggers under the same conditions as the On New Orders webhook, but returns item-level data.

Shipment Webhooks

On Orders Shipped (SHIP_NOTIFY)

Triggers when a new outbound shipping label is created for an order.

Additional details:

  • Return shipments do not trigger this webhook.

  • Fulfillments created through a fulfillment provider do not trigger this webhook.

  • Orders marked as shipped using Mark as Shipped do not trigger this webhook.

  • Individual shipments create individual webhook events.

  • Batch shipments create a single webhook event.

On Items Shipped (ITEM_SHIP_NOTIFY)

Triggers when a new outbound shipping label is created for an order and returns item-level shipment data.

The same limitations and behaviors that apply to On Orders Shipped also apply to this webhook.

Fulfillment Webhooks

On Items Shipped by Fulfillment Provider (FULFILLMENT_SHIPPED)

Triggers when a delegated order moves from Pending Fulfillment to Shipped status.

Additional details:

  • Also triggers when using the Mark as Shipped action.

On Items Rejected by Fulfillment Provider (FULFILLMENT_REJECTED)

Triggers when a fulfillment provider rejects an order that has been delegated for fulfillment.

V2 Webhooks

(V2) On Batch Processed (BATCH_PROCESSED_V2)

Triggers when a shipping batch finishes processing.

Common use cases:

  • Updating internal dashboards

  • Tracking shipping throughput

  • Triggering downstream fulfillment workflows

(V2) On New Track Event (TRACK_EVENT_V2)

Triggers when a new order is successfully imported into ShipStation.

Common use cases:

  • Reserving inventory in external systems

  • Initiating fulfillment workflows

  • Synchronizing order data with warehouse management systems (WMS)

(V2) On New Label Created (LABEL_CREATED_V2)

Triggers when a shipping or return label is created in ShipStation.

Common use cases:

  • Recording shipping costs in accounting systems

  • Tracking label creation activity

  • Retrieving label documents for external workflows

(V2) On Fulfillment Shipped (FULFILLMENT_SHIPPED_V2)

Triggers when an order is marked as shipped or fulfilled by a fulfillment provider.

Common use cases:

  • Triggering post-purchase communications

  • Synchronizing fulfillment data across systems

  • Tracking fulfillment activity performed outside of ShipStation

(V2) On Fulfillment Rejected (FULFILLMENT_REJECTED_V2)

Triggers when a fulfillment provider rejects an order.

Common use cases:

  • Alerting customer service teams

  • Initiating exception-handling workflows

  • Updating inventory and fulfillment systems

  • Notifying downstream systems that manual intervention may be required

Create Webhooks

You can create new webhooks in your ShipStation account in two different ways:

  • API calls

  • ShipStation account settings

This section explains how to create webhooks through the ShipStation Settings page. For information on using API calls, see our in-depth API documentation for more details on how to list webhooksubscribe to a webhook, and unsubscribe from webhooks.

To create a webhook within ShipStation:

  1. Select webhooks from the set of options.

    Integration Partners with webhooks icon highlighted

    Webhook Option Greyed Out

    If you do not already have any webhooks created, the option will be grey.

  2. Click Add a Webhook.

    Integration Webhooks menu with Add a Webhook button highlighted.
  3. Set the Name (100-character maximum), Type, whether the webhook applies to all stores or a specific store, and the target URL (200-character maximum).

    Integration Partners webhook form
  4. Click Save to create the webhook after you have entered the details.

Remove Webhooks

You can remove existing webhooks in your ShipStation account in two ways:

  • API calls

  • ShipStation account settings

This section explains how to remove webhooks through the ShipStation Settings page. For information on using API calls, see our in-depth API documentation for more details on removing webhooks.

To remove a webhook within ShipStation:

  1. Select webhooks from the set of options.

    Integration Partners with webhooks icon highlighted
  2. Click Remove next to the webhook you no longer need.

    Webhooks menu with Remove button highlighted.
  3. Click Yes, remove it to confirm the action.

    Webhooks remove confirmation pop-up with Yes, remove it button highlighted.

Modify Webhooks

Regardless of how the webhook was created, you can only modify an existing webhook through your ShipStation account settings.

To modify an existing webhook:

  1. Select webhooks from the set of options.

    Integration Partners with webhooks icon highlighted
  2. Click Edit next to the webhook you wish to modify.

    Webhooks menu with Edit button highlighted.
  3. Update the Name (100-character maximum), Type, whether the webhook applies to all stores or a specific store, and the target URL (200-character maximum) as needed.

  4. Click Save to update the webhook.

Using Webhook Payloads

When a webhook is triggered, ShipStation makes a POST call to the target URL.

This call includes a payload related to the action and newly created data:

  • resource_url: The endpoint that will need to be contacted to gather data related to the action that triggered the webhook. The resource_url contains several URL parameters:

    • storeId: ShipStation's internal identifier for the store. storeId will not be included if the webhook affects all stores.

    • importBatch or batchId: ShipStation's internal identifiers for the import action (for ORDER webhooks) or label creation action (for SHIP webhooks).

    • includeOrderItems or includeShipmentItems: Controls whether items are included in the response when contacting the resource_url. If using an ITEM webhook, this will be set to True.

  • resource_type: The type of webhook that triggered the payload.

To use the webhook payload, you must make a GET call to the ShipStation REST API that uses the resource_url as the endpoint. When performing this call, you must include an authentication header, just like other API calls made to ShipStation. See our in-depth API documentation for more details on API authentication.

When contacting the resource_url, the response will follow the same structure as the List Orders call (for ORDER webhooks) or List Shipments call (for SHIP webhooks.)

Here are some examples of webhook payloads:

On New Orders (ORDER_NOTIFY)

{"resource_url":"https://ssapi.shipstation.com/orders?storeID=123456&importBatch=1ab23c4d-12ab-1abc-a1bc-a12b12cdabcd","resource_type":"ORDER_NOTIFY"}

On New Items (ITEM_ORDER_NOTIFY)

{"resource_url":"https://ssapi.shipstation.com/orders?storeID=123456&importBatch=1ab23c4d-12ab-1abc-a1bc-a12b12cdabcd&includeOrderItems=True","resource_type":"ITEM_ORDER_NOTIFY"}

On Orders Shipped (SHIP_NOTIFY)

{"resource_url":"https://ssapi.shipstation.com/shipments?storeID=123456&batchId=12345678","resource_type":"SHIP_NOTIFY"}

On Items Shipped (ITEM_SHIP_NOTIFY)

{"resource_url":"https://ssapi.shipstation.com/shipments?storeID=123456&batchId=12345678&includeShipmentItems=True","resource_type":"ITEM_SHIP_NOTIFY"}

Can’t find what you’re looking for?

Contact our technical support team.
Contact us
Was this article helpful?
0 out of 0 found this helpful