Reference · built on requestConnectorShipping & logistics

ShipEngine

Labels, rates, tracking, address validation, and end-of-day manifests across connected carriers from ShipEngine.

About

ShipEngine is a multi-carrier shipping API; its documentation now presents it as ShipStation API. One API-Key header covers every carrier connected to the account: the carriers ShipStation provides, such as USPS via Stamps.com and UPS for US accounts, and your own carrier accounts. POST /v1/labels buys a label and returns pdf, png, and zpl downloads. GET /v1/tracking reads status by carrier_code and tracking_number, POST /v1/addresses/validate checks up to 250 addresses per call, and POST /v1/manifests closes out the day for carriers that require it.

An operator on Fibric reads the tracking status_code and exception_description across those carriers and proposes the void, the address fix, or the customer message for your approval.

This is a reference listing. It documents what Fibric would read from ShipEngine and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • Tracking by carrier_code and tracking_number, or by label_id, with status_code AC, IT, DE, EX, UN, AT, NY, or SP
  • carrier_status_code, exception_description, estimated_delivery_date, actual_delivery_date, and the events array on each tracking response
  • Track webhooks with resource_type API_TRACK, sent with a user-agent of ShipEngine/v1 once tracking is started for a number
  • Rates per connected carrier_id and service_code for a shipment
  • One of four validation statuses per address, with matched_address and an address_residential_indicator of yes, no, or unknown
  • Labels with label_id, tracking_number, shipment_cost, and label_download links
  • The carrier_id values on the account, unique to that account and used on every label, rate, and tracking call

Proposed actions

  • Target capability: propose a label through POST /v1/labels with carrier_id, service_code, ship_to, ship_from, and packages filled in
  • Target capability: propose voiding an unused label through PUT /v1/labels/:label_id/void and record the approved flag and carrier message
  • Target capability: propose the day's manifest through POST /v1/manifests for a carrier_id, warehouse_id, and ship_date
  • Target capability: propose starting or stopping tracking for a number through POST /v1/tracking/start and POST /v1/tracking/stop

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Void the label before the package leaves

    When an order is cancelled inside the window, propose PUT /v1/labels/:label_id/void and show the carrier's approved flag and message before the refund is promised.

    With Cancellation Window

  • Fix the address before the label prints

    Send the ship_to through POST /v1/addresses/validate. When the status is warning or error, propose matched_address and the residential indicator for approval, then buy the label.

    With Address Repair

  • Turn EX and AT codes into a customer message

    Subscribe to track webhooks. On status_code EX or AT, propose the customer note with the exception_description and the estimated_delivery_date.

    With Carrier Exception, Missed Delivery

Requirements

  • A ShipStation API account with production and sandbox API keys from the dashboard
  • Carriers activated in the dashboard, since ShipStation-provided carriers cannot be activated by API
  • The Advanced plan or higher to call the Tracking endpoint
  • A public endpoint for track webhooks; it can be protected with Basic Authentication in the URL
Authentication
An API-Key header on every request; keys are created in the ShipStation API dashboard, and sandbox keys start with TEST_ so they cannot be mistaken for production keys.

Limits

  • 200 requests per minute on production keys and 20 per minute in sandbox; excess gets 429 with a Retry-After header
  • A manifest must be created on or before the label's ship date; USPS cuts off at 9pm local time
  • A void is approved only for an unused label inside the carrier window, 28 days for USPS and 30 for UPS; voids cannot be reversed
  • Not every carrier supports voiding, and third-party carrier APIs may apply their own limits

Access and pricing

Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.

Request ShipEngine ↗

Questions and answers

What do ShipEngine tracking status codes mean?
AC accepted, IT in transit, DE delivered, EX exception, UN unknown, AT delivery attempt, NY not yet in system, and SP delivered to the collection location. Each response also carries the carrier's own carrier_status_code and a status_description you can show as it is.
Can I connect my own carrier accounts?
Yes. ShipStation-provided carriers, such as USPS via Stamps.com and UPS for US accounts, are activated in the dashboard, and your own carrier accounts can be connected as well. Every carrier gets a carrier_id unique to your account, used on label, rate, and tracking calls.
Is there a sandbox?
Yes. Sandbox keys start with TEST_ and are limited to 20 requests per minute; production keys allow 200 per minute, with higher limits by support ticket. A 429 response includes a Retry-After header in seconds.
Ask about ShipEngine

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.