Reference · built on requestConnectorShipping & logistics

AfterShip

Trackings across couriers with checkpoints, delivery statuses, estimated delivery dates, and webhooks from AfterShip.

About

AfterShip Tracking follows shipments across couriers. You create a tracking from a tracking number and a courier slug, or let AfterShip detect the courier, and it tags every checkpoint with one of nine delivery statuses from InfoReceived to Delivered, Exception, or Expired. Each tracking carries the courier's estimated delivery date, AfterShip's own estimate with a confidence code, the promised date from the order, an on_time_status, failed delivery attempts, and proof of delivery. Webhooks post tracking_update, edd_revise, and tracking_pending_time events to up to 10 URLs.

An operator on Fibric uses those events to find the shipment that has gone quiet or will miss its promise and proposes the customer message or the claim for approval.

This is a reference listing. It documents what Fibric would read from AfterShip 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

  • Trackings with tag and subtag: InfoReceived, InTransit, OutForDelivery, AttemptFail, Delivered, AvailableForPickup, Exception, Expired, or Pending
  • Checkpoints with checkpoint_time, location, message, and event codes such as delayed, held_by_customs, delivery_attempt_failed, or returned_to_sender
  • aftership_estimated_delivery_date with a confidence_code, courier_estimated_delivery_date, latest_estimated_delivery with a revise_reason, and on_time_status
  • order_promised_delivery_date, failed_delivery_attempts, signed_by, proof_of_delivery, and return_to_sender per tracking
  • Webhook events tracking_update, edd_revise, and tracking_pending_time, with is_tracking_first_tag marking the first update under a status
  • Couriers the account has enabled, courier detection for a bare tracking number, and courier connections
  • first_mile and last_mile legs and multi_piece_info for shipments handed between carriers

Proposed actions

  • Target capability: propose creating a tracking through POST /trackings with tracking_number, slug, order_number, and the promised delivery date
  • Target capability: propose updating a tracking's order information or custom fields through PUT /trackings/:id
  • Target capability: propose a retrack of an Expired tracking through POST /trackings/:id/retrack
  • Target capability: propose marking a tracking completed through POST /trackings/:id/mark-as-completed
  • Target capability: propose a courier connection so account-specific couriers return checkpoints

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

What you can build

  • Find the shipment that went quiet

    Subscribe to tracking_pending_time at your threshold. When a tracking sits in Pending or InTransit past it, propose the courier inquiry and the customer message for approval.

    With Stalled Shipment

  • Warn before the promise date slips

    Compare latest_estimated_delivery and its revise_reason with order_promised_delivery_date. When on_time_status turns late, propose the notice and any concession under your policy.

    With Promise Date, ETA Notice

  • Answer where-is-my-order from the checkpoint

    Look up the tracking by order_number and draft the reply from the latest checkpoint message, tag, and estimated delivery date. The agent approves before it goes.

    With WISMO Deflection

  • Settle a dispute with the proof

    Pull proof_of_delivery, signed_by, and the delivered checkpoint and attach them to the conversation.

    With Delivery Dispute

Requirements

  • An AfterShip account with an API key; legacy aftership-api-key headers are not accepted since the 2023-10 version
  • Requests pinned to a version path such as https://api.aftership.com/tracking/2026-07
  • Couriers enabled in the admin portal, which also steers courier auto-detection
  • A webhook URL on port 80, 443, or 8080, with the webhook secret from Settings > Webhooks
Authentication
An as-api-key header on every request, created under API keys in the AfterShip account; signed requests add as-signature-hmac-sha256 or as-signature-rsa-sha256 with a date header valid for three minutes.

Limits

  • Limits are per endpoint per second: 20 for POST /trackings, 6 for GET /trackings, 5 for GET /trackings/:id, 3 for courier detection
  • A tracking with no information for 30 days becomes Expired and must be retracked
  • Failed webhooks are retried up to 14 times with a delay of 2^n times 30 seconds, then dropped
  • Email and SMS notifications on a status are a premium feature of the product, not part of the API

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 AfterShip ↗

Questions and answers

Which delivery statuses does AfterShip use?
Nine: InfoReceived, InTransit, OutForDelivery, AttemptFail, Delivered, AvailableForPickup, Exception, Expired, and Pending. Each checkpoint also carries a subtag such as InTransit_001 and an event code such as delayed or held_by_customs. Expired means no tracking information for 30 days since the tracking was added.
How do I check that a webhook came from AfterShip?
Every request carries an aftership-hmac-sha256 header: a base64 HMAC of the body using the webhook secret from Settings > Webhooks. You can add up to five custom headers per URL for your own bearer token or basic authentication. Failed events are retried up to 14 times.
What rate limits apply?
Per endpoint per second: POST /trackings 20, GET /trackings 6, GET, PUT, and DELETE /trackings/:id 5, POST /couriers/detect 3. Excess returns 429 TooManyRequests, and every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
Ask about AfterShip

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.