Prerequisites
Before continuing, you should have already completed the following for this connector:Configure the Connector
Connector Profile
Link an Account
Link Account
Subscribe via the StackOne dashboard
This connector uses Programmatic Webhooks. When you enable webhook events for a connected Easyship account, StackOne automatically registers and activates a webhook subscription in Easyship via the API.
Select event subscriptions in the dashboard
In the StackOne dashboard, open the Easyship connector profile and enable the webhook events you want to receive. See the Available Webhook Events section below for the full list.
Connect the Easyship account
On account connection (or when event subscriptions change), StackOne registers the webhook in Easyship on your behalf using the connected account’s API access token. The webhook is created via POST /2024-09/webhooks and then activated via PATCH /2024-09/webhooks/{id}/activate. Each account receives its own dedicated webhook subscription.
Verify delivery
Trigger a matching change in Easyship (for example, create a test shipment and generate a label) and confirm the event reaches your downstream consumer.
- Easyship signs each delivery with the
X-EASYSHIP-SIGNATUREheader — a JWT signed with HS256 using the webhook’s secret key. - StackOne responds with
200 OKautomatically for all recognised events. - Easyship retries failed deliveries if the endpoint does not return a
2xxresponse.
Unsubscribe
Disconnecting the account or removing all event subscriptions deactivates the StackOne-managed webhook in Easyship, stopping all event deliveries.
Available Webhook Events
The following Easyship events can be enabled. Only events selected in StackOne are included in the subscription.
Shipment events
Events related to shipment lifecycle and label generation.
- Shipment Label Created (
shipment.label.created) — Fired when a shipping label is successfully generated - Shipment Label Failed (
shipment.label.failed) — Fired when label creation fails - Shipment Tracking Checkpoint Created (
shipment.tracking.checkpoints.created) — Fired when a new tracking checkpoint is recorded - Shipment Tracking Status Changed (
shipment.tracking.status.changed) — Fired when the overall tracking status changes - Shipment Cancelled (
shipment.cancelled) — Fired when a shipment is cancelled - Shipment Warehouse State Updated (
shipment.warehouse_state.updated) — Fired when the warehouse state of a shipment changes
Batch events
Events related to batch shipment processing.
- Batch Shipment Processed (First) (
batch.shipment.processed.first) — Fired when the first shipment in a batch finishes processing - Batch Shipment Processed (Last) (
batch.shipment.processed.last) — Fired when the final shipment in a batch finishes processing - Batch Shipment Processed (
batch.shipment.processed) — Fired for each individual shipment as it is processed within a batch
Account and billing events
Events related to account state, credits, and couriers.
- Credit Balance Low (
credit.balance.low) — Fired when the account credit balance falls below the configured threshold - Company Created (
company.created) — Fired when a new company is created (Enterprise accounts only) - Courier State Changed (
courier.state.changed) — Fired when a courier’s activation state changes on the account - OAuth Application Access Revoked (
oauth_application.access.revoked) — Fired when OAuth access for an application is revoked