Skip to main content

Empower your development team with seamless Sendle tracking integration through our robust RESTful API and webhooks. Automate Sendle delivery status updates in real-time, remain up-to-date with the latest shipment information.

With a AfterShip developer account, you can experience faster tracking updates and take advantage of our industry-leading 99.90% API uptime. Start enhancing your logistics solutions today.

curl --request GET \
  --url https://api.aftership.com/postmen/v3/labels/id \
  --header 'Content-Type: application/json'
Sendle
Delivery dateMarch10Your order is in transit
MAR 7
09:56 AM
In transitDeparted Shipping Partner Facility, Sendle Awaiting Item
192 Glenlake Court
See more info

Sendle Trackings API

Create a tracking

Creates a new tracking object.

Parameters

  • tracking_number string required
    Tracking number of a shipment. Duplicated tracking numbers, tracking numbers with invalid tracking number format will not be accepted.
    Only accept tracking numbers with length from 4 to 100
  • slug string, static {{slug}}.
  • title string
    By default this field shows the tracking_number, but you can customize it as you wish with any info (e.g. the order number).
  • order_id string
    A globally-unique identifier for the order.
  • order_promised_delivery_date string
    The promised delivery date of the order. It uses the format YYYY-MM-DD. This has no timezone and uses whatever date you provide. Since other EDDs use the shipment recipient’s timezone, we suggest following the same logic here.

Returns

Return a tracking object if the call succeeded.

curl --request POST \
  --url https://api.aftership.com/tracking/2024-04/trackings \
  --header 'Content-Type: application/json' \
  --data '{"tracking":{"slug":"{slug}","title":"Title Name","smses":["+18555072509","+18555072501"],"emails":["[email protected]","[email protected]"],"order_id":"ID 1234","language":"en","pickup_note":"Reach out to our staffs when you arrive our stores for shipment pickup","origin_city":"Beijing","order_number":"1234","origin_state":"Beijing","order_id_path":"http://www.aftership.com/order_id=1234","custom_fields":{"product_name":"iPhone Case","product_price":"USD19.99"},"delivery_type":"pickup_at_store","tracking_number":"123456789","pickup_location":"Flagship Store","destination_city":"New York City","destination_state":"New York","origin_postal_code":"065001","origin_country_iso3":"CHN","origin_raw_location":"Lihong Gardon 4A 2301, Chaoyang District, Beijing, BJ, 065001, CHN, China","destination_postal_code":"10001","destination_country_iso3":"USA","destination_raw_location":"13th Street, New York, NY, 10011, USA, United States","order_promised_delivery_date":"2019-05-20"}}'
response.json
{
  "meta": {
    "code": 201
  },
  "data": {
    "tracking": {
      "id": "5b766a5cc7c33c0e007de3c9",
      "ios": [],
      "tag": "Pending",
      "slug": "sendle",
      "note": "test note",
      "smses": [],
      "title": "1111111111111",
      "active": true,
      "emails": [],
      "source": "api",
      "subtag": "Pending_001",
      "android": [],
      "order_id": "123",
      "language": null,
      "signed_by": "John Doe",
      "created_at": "2018-08-17T06:25:32+00:00",
      "updated_at": "2018-08-17T06:25:32+00:00",
      "order_date": "2021-07-26T11:23:51-05:00",
      "order_tags": [],
      "checkpoints": [],
      "pickup_note": "Contact shop keepers when you arrive our stores for shipment pickup",
      "unique_token": "deprecated",
      "tracking_key": null,
      "custom_fields": null,
      "customer_name": "John doe",
      "delivery_time": 0,
      "order_id_path": "/123",
      "shipment_type": "{shipment_type}",
      "tracked_count": 0,
      "delivery_type": "pickup_at_store",
      "subtag_message": "Pending",
      "tracking_state": null,
      "on_time_status": "trending-on-time",
      "last_updated_at": "2018-08-17T06:25:32+00:00",
      "tracking_number": "1111111111111",
      "shipment_weight": 1,
      "pickup_location": "Flagship Store",
      "subscribed_smses": [],
      "return_to_sender": false,
      "expected_delivery": "2018-08-16",
      "subscribed_emails": [],
      "tracking_ship_date": null,
      "first_attempted_at": "2018-08-16",
      "on_time_difference": 0,
      "origin_country_iso3": "USD",
      "shipment_pickup_date": "2018-08-16",
      "shipment_weight_unit": "kg",
      "tracking_postal_code": null,
      "courier_tracking_link": "{courier_tracking_link}",
      "courier_redirect_link": "{courier_redirect_link}",
      "shipment_package_count": 0,
      "shipment_delivery_date": "2018-08-16",
      "tracking_account_number": null,
      "tracking_origin_country": null,
      "destination_country_iso3": "USA",
      "last_mile_tracking_supported": false,
      "tracking_destination_country": null,
      "order_promised_delivery_date": "2019-05-20",
      "courier_destination_country_iso3": "USA",
      "aftership_estimated_delivery_date": null
    }
  }
}

Retrieve a tracking

Retrieves the details of an existing tracking. Supply the unique tracking ID from either a tracking creation request or the tracking list, and AfterShip will return the corresponding tracking information.

Parameters

  • fields string
    List of fields to include in the response. Use comma for multiple values. Fields to include: tracking_postal_code, tracking_ship_date, tracking_account_number, tracking_key, tracking_origin_country, tracking_destination_country, tracking_state, title, order_id, tag, checkpoints
  • lang string
    Translate checkpoint messages from the carrier’s provided language to the target language.

Returns

Returns a tracking object if a valid identifier was provided.

curl --request GET \
  --url https://api.aftership.com/tracking/2024-04/trackings/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200
  },
  "data": {
    "tracking": {
      "id": "5b7658cec7c33c0e007de3c5",
      "ios": [],
      "tag": "Delivered",
      "slug": "sendle",
      "note": null,
      "smses": [],
      "title": "Title Name",
      "active": false,
      "emails": [],
      "source": "api",
      "subtag": "Delivered_001",
      "android": [],
      "order_id": null,
      "language": null,
      "signed_by": "..KOSUTOKO",
      "created_at": "2018-08-17T05:10:38+00:00",
      "updated_at": "2018-08-17T05:10:46+00:00",
      "order_tags": [],
      "checkpoints": [
        {
          "slug": "sendle",
          "city": null,
          "created_at": "2018-08-17T05:10:41+00:00",
          "location": null,
          "country_name": null,
          "message": "Shipment information sent to Sendle",
          "country_iso3": null,
          "tag": "InfoReceived",
          "subtag": "InfoReceived_001",
          "subtag_message": "Info Received",
          "checkpoint_time": "2018-07-23T01:21:39-05:00",
          "coordinates": [],
          "state": null,
          "zip": null,
          "raw_tag": "FPX_L_RPIF"
        }
      ],
      "pickup_note": null,
      "order_number": "1234",
      "unique_token": "deprecated",
      "tracking_key": null,
      "custom_fields": null,
      "customer_name": null,
      "delivery_time": 2,
      "order_id_path": null,
      "shipment_type": "{shipment_type}",
      "tracked_count": 1,
      "delivery_type": "pickup_at_store",
      "subtag_message": "Delivered",
      "tracking_state": null,
      "on_time_status": "trending-on-time",
      "last_updated_at": "2018-08-17T05:10:46+00:00",
      "tracking_number": "111111111111",
      "shipment_weight": 4,
      "pickup_location": "Flagship Store",
      "subscribed_smses": [],
      "return_to_sender": false,
      "expected_delivery": null,
      "subscribed_emails": [],
      "tracking_ship_date": null,
      "first_attempted_at": "2018-07-25T10:10:00+09:00",
      "on_time_difference": 0,
      "origin_country_iso3": "CHN",
      "shipment_pickup_date": "2018-07-23T08:58:00",
      "shipment_weight_unit": "kg",
      "tracking_postal_code": null,
      "courier_tracking_link": "{courier_tracking_link}",
      "courier_redirect_link": "{courier_redirect_linkGet tracking results of a single tracking.}",
      "shipment_package_count": 1,
      "shipment_delivery_date": "2018-07-25T01:10:00",
      "tracking_account_number": null,
      "tracking_origin_country": null,
      "destination_country_iso3": "JPN",
      "last_mile_tracking_supported": null,
      "tracking_destination_country": null,
      "order_promised_delivery_date": "2019-05-02",
      "courier_destination_country_iso3": "JPN",
      "aftership_estimated_delivery_date": {
        "confidence_score": null,
        "estimated_delivery_date": "2022-01-03",
        "estimated_delivery_date_min": "2022-01-01",
        "estimated_delivery_date_max": "2022-01-06"
      }
    }
  }
}

Update a tracking

Updates the specific tracking by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Parameters

  • smses array[string]
    The phone number(s) to receive sms notifications. Input [] to clear the value of this field. Supports up to 3 phone numbers.
  • emails array[string]
    Email address(es) to receive email notifications. Input [] to clear the value of this field. Supports up to 3 email addresses.
  • title string
    By default this field shows the tracking_number, but you can customize it as you wish with any info (e.g. the order number).
  • customer_name string
    Customer name of the tracking.
  • order_id string
    A globally-unique identifier for the order.
  • order_id_path string
    The URL for the order in your system or store.
  • note string
    Text field for the note. Input "" to clear the value of this field.
  • language string
    The recipient’s language. If you set up AfterShip notifications in different languages, we use this to send the recipient tracking updates in their preferred language. Use an ISO 639-1 Language Code to specify the language.
  • order_promised_delivery_date string
    The promised delivery date of the order. It uses the format YYYY-MM-DD. This has no timezone and uses whatever date you provide. Since other EDDs use the shipment recipient’s timezone, we suggest following the same logic here.

Returns

Returns the tracking object if the update succeeded.

curl --request PUT \
  --url https://api.aftership.com/tracking/2024-04/trackings/id \
  --header 'Content-Type: application/json' \
  --data '{"value":{"tracking":{"note":"some notes","title":"New Title"}}}'
response.json
{
  "value": {
    "meta": {
      "code": 200
    },
    "data": {
      "tracking": {
        "id": "5b7658cec7c33c0e007de3c5",
        "ios": [],
        "tag": "Delivered",
        "slug": "sendle",
        "note": null,
        "smses": [],
        "title": "Title Name",
        "active": false,
        "emails": [],
        "source": "api",
        "subtag": "Delivered_001",
        "android": [],
        "order_id": null,
        "language": null,
        "signed_by": "..KOSUTOKO",
        "created_at": "2018-08-17T05:10:38+00:00",
        "updated_at": "2018-08-17T05:10:46+00:00",
        "order_tags": [],
        "checkpoints": [
          {
            "slug": "sendle",
            "city": null,
            "created_at": "2018-08-17T05:10:41+00:00",
            "location": null,
            "country_name": null,
            "message": "Shipment information sent to Sendle",
            "country_iso3": null,
            "tag": "InfoReceived",
            "subtag": "InfoReceived_001",
            "subtag_message": "Info Received",
            "checkpoint_time": "2018-07-23T01:21:39-05:00",
            "coordinates": [],
            "state": null,
            "zip": null,
            "raw_tag": "FPX_L_RPIF"
          }
        ],
        "pickup_note": null,
        "unique_token": "deprecated",
        "tracking_key": null,
        "custom_fields": null,
        "customer_name": null,
        "delivery_time": 2,
        "order_id_path": null,
        "shipment_type": "{shipment_type}",
        "tracked_count": 1,
        "delivery_type": "pickup_at_store",
        "subtag_message": "Delivered",
        "tracking_state": null,
        "on_time_status": "trending-on-time",
        "last_updated_at": "2018-08-17T05:10:46+00:00",
        "tracking_number": "111111111111",
        "shipment_weight": 4,
        "pickup_location": "Flagship Store",
        "subscribed_smses": [],
        "return_to_sender": false,
        "expected_delivery": null,
        "subscribed_emails": [],
        "tracking_ship_date": null,
        "first_attempted_at": "2018-07-25T10:10:00+09:00",
        "on_time_difference": 0,
        "origin_country_iso3": "CHN",
        "shipment_pickup_date": "2018-07-23T08:58:00",
        "shipment_weight_unit": "kg",
        "tracking_postal_code": null,
        "courier_tracking_link": "{courier_tracking_link}",
        "courier_redirect_link": "{courier_redirect_link}",
        "shipment_package_count": 1,
        "shipment_delivery_date": "2018-07-25T01:10:00",
        "tracking_account_number": null,
        "tracking_origin_country": null,
        "destination_country_iso3": "JPN",
        "last_mile_tracking_supported": null,
        "tracking_destination_country": null,
        "order_promised_delivery_date": "2019-05-02",
        "courier_destination_country_iso3": "JPN",
        "aftership_estimated_delivery_date": {
          "confidence_score": null,
          "estimated_delivery_date": "2022-01-03",
          "estimated_delivery_date_min": "2022-01-01",
          "estimated_delivery_date_max": "2022-01-06"
        }
      }
    }
  }
}

Delete a tracking

Delete a tracking.

Parameters

  • id string required
    Tracking ID

Returns

Returns a deleted object on success. Otherwise, this call raises an error.

curl --request DELETE \
  --url https://api.aftership.com/tracking/2024-04/trackings/id \
  --header 'Content-Type: application/json'
response.json
{
  "value": {
    "meta": {
      "code": 200
    },
    "data": {
      "tracking": {
        "id": "5b7658cec7c33c0e007de3c5",
        "slug": "sendle",
        "tracking_key": null,
        "tracking_state": null,
        "tracking_number": "772857780801111",
        "tracking_ship_date": null,
        "tracking_postal_code": null,
        "tracking_account_number": null,
        "tracking_origin_country": null,
        "tracking_destination_country": null
      }
    }
  }
}

Retrack an expired tracking

Retrack an expired tracking. Max 3 times per tracking.

Parameters

  • id string, required
    Tracking ID

Returns

Returns the tracking object if the retrack succeeded.

curl --request POST \
  --url https://api.aftership.com/tracking/2024-04/trackings/id/retrack \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "BadRequest",
    "message": "string"
  },
  "data": {
    "tracking": {
      "id": "string",
      "slug": "string",
      "active": true,
      "tracking_key": "string",
      "tracking_state": "string",
      "tracking_number": "string",
      "tracking_ship_date": "string",
      "tracking_postal_code": "string",
      "tracking_account_number": "string",
      "tracking_origin_country": "string",
      "tracking_destination_country": "string"
    }
  }
}

Mark tracking as completed

Mark a tracking as completed. The tracking won't auto update until retrack it.

Parameters

reason string required
required
One of DELIVERED, LOST or RETURNED_TO_SENDER.

  • Mark the tracking as completed with DELIVERED. The tag of the tracking will be updated to Delivered and the subtag will be updated to Delivered_001.
  • Mark the tracking as completed with LOST. The tag of the tracking will be updated to Exception and the subtag will be updated to Exception_013.
  • Mark the tracking as completed with RETURNED_TO_SENDER. The tag of the tracking will be updated to Exception and the subtag will be updated to Exception_011.

Allowed values: DELIVERED LOST RETURNED_TO_SENDER

Returns

meta meta required
Meta data

  • codeinteger required
    meta code
    Example: 200
  • messagestring
    error message, only exist if the response status is not 2xx
  • typestring
    error type, only exist if the response status is not 2xx
    Allowed values: BadRequest Unauthorized Forbidden NotFound TooManyRequests InternalError
    dataobject required
  • tracking Tracking
    Object describes the tracking information.
curl --request POST \
  --url https://api.aftership.com/tracking/2024-04/trackings/id/mark-as-completed \
  --header 'Content-Type: application/json' \
  --data '{"reason":{"type":"string","enum":["DELIVERED","LOST","RETURNED_TO_SENDER"],"description":"One of `DELIVERED`, `LOST` or `RETURNED_TO_SENDER`.\n\n- Mark the tracking as completed with `DELIVERED`. The tag of the tracking will be updated to `Delivered` and the subtag will be updated to `Delivered_001`.\n- Mark the tracking as completed with `LOST`. The tag of the tracking will be updated to `Exception` and the subtag will be updated to `Exception_013`.\n- Mark the tracking as completed with `RETURNED_TO_SENDER`. The tag of the tracking will be updated to `Exception` and the subtag will be updated to `Exception_011`."}}'
response.json
{
  "meta": {
    "code": 200,
    "type": "BadRequest",
    "message": "string"
  },
  "data": {
    "tracking": {
      "id": "my2uktymyz72xld1f7l3h01z",
      "tag": "Delivered",
      "slug": "sendle",
      "note": "note",
      "smses": [
        "+8613800138000"
      ],
      "title": "61293150000079650811",
      "active": false,
      "emails": [
        "[email protected]"
      ],
      "source": "api",
      "subtag": "Delivered_002",
      "order_id": "6845a095a27a4caeb27487806f058add",
      "language": "en",
      "signed_by": "Steve Young",
      "created_at": "2023-01-18T08:47:10+00:00",
      "updated_at": "2023-01-18T17:47:10+00:00",
      "order_date": "2022-01-20T15:56:12+08:00",
      "order_tags": [
        "Exception"
      ],
      "origin_city": "Beijing",
      "checkpoints": [
        {
          "created_at": "2023-01-18T08:47:10+00:00",
          "slug": "sendle",
          "checkpoint_time": "2022-01-01T18:47:10-05:00",
          "location": "13th Street, New York, NY 10011, USA, United States",
          "city": "New York",
          "state": "NY",
          "zip": "10011",
          "coordinate": null,
          "country_iso3": "USA",
          "country_name": "United States",
          "message": "Package delivered",
          "tag": "Delivered",
          "subtag": "Delivered_002",
          "subtag_message": "Picked up by customer",
          "raw_tag": "RO",
          "events": {
            "code": "unable_to_deliver",
            "reason": {
              "code": "incorrect_missing_address"
            }
          }
        }
      ],
      "pickup_note": "No notes",
      "location_id": "bda843ed811541fc852a8447371cf6f2",
      "transit_time": 9,
      "origin_state": "Beijing",
      "unique_token": "Deprecated",
      "tracking_key": null,
      "order_number": "162654659775",
      "custom_fields": {
        "store_name": "my-store"
      },
      "customer_name": "Steve Young",
      "order_id_path": "https://www.aftership.com/my-orders/6845a095a27a4caeb27487806f058add",
      "shipment_type": "{shipment_type}",
      "tracked_count": 13,
      "delivery_type": "pickup_at_store",
      "shipment_tags": [
        "Returned"
      ],
      "next_couriers": [
        {
          "slug": "sendle",
          "tracking_number": "61293150000079650811",
          "source": "system"
        }
      ],
      "subtag_message": "Picked up by customer",
      "on_time_status": "on-time",
      "tracking_state": "CA",
      "last_updated_at": "2023-01-18T17:47:10+00:00",
      "tracking_number": "61293150000079650811",
      "shipment_weight": 0.7,
      "pickup_location": "13th Street, New York, NY 10011, USA, United States",
      "shipping_method": "Local Delivery",
      "destination_city": "New York City",
      "subscribed_smses": [
        "string"
      ],
      "return_to_sender": false,
      "carbon_emissions": {
        "unit": "kg",
        "value": 0.7
      },
      "destination_state": "New York",
      "expected_delivery": "2022-01-05T12:11:11+01:00",
      "subscribed_emails": [
        "string"
      ],
      "origin_postal_code": "065001",
      "first_attempted_at": "2022-01-01T17:00:00-05:00",
      "tracking_ship_date": "20220101",
      "on_time_difference": 0,
      "origin_country_iso3": "CHN",
      "origin_raw_location": "Lihong Gardon 4A 2301, Chaoyang District, Beijing, BJ, 065001, CHN, China",
      "shipment_pickup_date": "2022-01-21T15:00:00",
      "shipment_weight_unit": "kg",
      "tracking_postal_code": "90213",
      "courier_tracking_link": "{courier_tracking_link}",
      "courier_redirect_link": "{courier_redirect_link}",
      "courier_connection_id": "8e1261bde336436abbc7cb3eee8cd707",
      "signature_requirement": "signature_required",
      "shipment_package_count": 1,
      "shipment_delivery_date": "2022-01-29T11:23:00",
      "destination_postal_code": "10001",
      "tracking_account_number": null,
      "tracking_origin_country": "CHN",
      "destination_country_iso3": "USA",
      "destination_raw_location": "13th Street, New York, NY, 10011, USA, United States",
      "first_estimated_delivery": {
        "type": "specific",
        "source": "Carrier EDD",
        "datetime": "2022-01-05T12:11:11+01:00",
        "datetime_min": null,
        "datetime_max": null
      },
      "failed_delivery_attempts": 2,
      "latest_estimated_delivery": {
        "type": "specific",
        "source": "AfterShip EDD",
        "datetime": "2022-01-05T12:11:11+01:00",
        "datetime_min": null,
        "datetime_max": null
      },
      "last_mile_tracking_supported": true,
      "order_promised_delivery_date": "2022-01-01",
      "tracking_destination_country": "USA",
      "custom_estimated_delivery_date": {
        "type": "specific",
        "datetime": "2022-01-05",
        "datetime_min": null,
        "datetime_max": null
      },
      "courier_destination_country_iso3": "USA",
      "aftership_estimated_delivery_date": {
        "confidence_code": 10001,
        "estimated_delivery_date": "2022-01-03",
        "estimated_delivery_date_min": "2022-01-02",
        "estimated_delivery_date_max": "2022-01-04"
      }
    }
  }
}

Sendle Last Checkpoints API

Get last checkpoint

Return the tracking information of the last checkpoint of a single tracking.

Parameters

  • fieldsstring
    List of fields to include in the response. Use comma for multiple values. Fields to include: slug, created_at, checkpoint_time, city, coordinates, country_iso3, country_name, message, state, tag, zip
    Example:city,tag
  • langstring
    Support Chinese to English translation for china-ems and china-post only
    Example:en

Returns

  • meta meta
    • codeinteger required
      meta code
      Example: 200
    • message string
      error message, only exist if the response status is not 2xx
    • typestring
      error type, only exist if the response status is not 2xx
      Allowed values:BadRequest Unauthorized Forbidden NotFound
      TooManyRequests InternalError
  • dataobject
    • id string
      Tracking id
    • tracking_number string
      Tracking number.
    • slug string {{slug}}
      Unique code of courier.
    • tag string
      Current status of tracking. (See tag definition)
      Allowed values:Pending InfoReceived InTransit OutForDelivery AttemptFail Delivered AvailableForPickup Exception Expired
      Example:Delivered
    • subtagstring
      Current subtag of tracking. ([See subtag definition]
    • subtag_messagestring
      Normalized tracking message. (See subtag message definition)
    • checkpointCheckpoint
      Object describes checkpoint information.
curl --request GET \
  --url https://api.aftership.com/tracking/2024-04/last_checkpoint/tracking_id \
  --header 'Content-Type: application/json'
response.json
{
  "value": {
    "meta": {
      "code": 200
    },
    "data": {
      "id": "5b74f4958776db0e00b6f5ed",
      "tag": "Delivered",
      "slug": "sendle",
      "subtag": "Delivered_001",
      "checkpoint": {
        "tag": "Delivered",
        "zip": null,
        "slug": "sendle",
        "city": "Deal",
        "state": "NJ",
        "subtag": "Delivered_001",
        "message": "Delivered - Left at front door. Signature Service not requested.",
        "raw_tag": "FPX_L_RPIF",
        "created_at": "2018-08-16T03:50:47+00:00",
        "coordinates": [],
        "country_iso3": null,
        "country_name": null,
        "subtag_message": "Delivered",
        "checkpoint_time": "2018-08-01T13:19:47-04:00"
      },
      "subtag_message": "Delivered",
      "tracking_number": "111111111111"
    }
  }
}

Sendle Estimated delivery date API

Batch predict the estimated delivery date

The estimated delivery date is provided by AfterShip, based on its AI-predictive model. You can display the EDD on the product page, cart, and order checkout page. It indicates when a customer will receive the order.

You can use AfterShip’s AI-powered predictive estimated delivery date API to provide expected delivery dates to shoppers for online orders without tracking numbers. You can get the earliest date, the latest date, and the most-likely-arrival date through our AI-predictive EDD API.

Display accurate estimated delivery dates on the product page, store cart, and order checkout page to encourage customers to check out faster and give them a better customer experience.

Contact sales to activate this feature.

Supported functionalities require:

  1. One EstimatedDeliveryDate object for one prediction result.
  2. Maximum 5 EstimatedDeliveryDate objects are allowed.
  3. API call will fail if any of the requests EstimatedDeliveryDate objects do not meet the specification requirement.

Parameters

  • estimated_delivery_dates array[EstimatedDeliveryDate] required
    >= 1 items <= 5 items
  • slugstring{{slug}}required
    AfterShip's unique code of courier. Please refer to https://track.aftership.com/couriers/download.
  • service_type_name string or null
    AfterShip’s unique code represents carrier’s shipping and delivery options. Refer to Download Link.
  • origin_addressobjectrequired
    The location from where the package is picked up by the carrier to be delivered to the final destination.
  • destination_addressobjectrequired
    The final destination of the customer where the delivery will be made.
  • weightobject or null
    AfterShip uses this object to calculate the total weight of the order.
  • package_countinteger or null
    The number of packages.
  • pickup_time string or null
    The local pickup time in the origin address time zone of the package.
  • estimated_pickupobject or null
    The local pickup time of the package. Either pickup_time or estimated_pickup is required.

Returns

  • metameta required
    • codeinteger required
      meta code
    • messagestring
      error message, only exist if the response status is not 2xx
    • typestring
      error type, only exist if the response status is not 2xx
      Allowed values:BadRequest Unauthorized Forbidden NotFound TooManyRequests InternalError
  • data object required
  • estimated_delivery_dates array[EstimatedDeliveryDate] required
curl --request POST \
  --url https://api.aftership.com/tracking/2024-04/estimated-delivery-date/predict-batch \
  --header 'Content-Type: application/json' \
  --data '{"estimated_delivery_dates":[{"slug":"{slug}","service_type_name":"{service_type_name}","origin_address":{"country":"USA","state":"WA","city":"Seattle","postal_code":"98108","raw_location":"Seattle, Washington, 98108, USA, United States"},"destination_address":{"country":"USA","state":"CA","postal_code":"92019","raw_location":"El Cajon, California, 92019, USA, United States"},"weight":{"unit":"kg","value":1},"package_count":1,"pickup_time":"2021-07-01 15:00:00"},{"slug":"{slug}","service_type_name":"{service_type_name}","origin_address":{"country":"USA","state":"WA","postal_code":"98108","raw_location":"Seattle, Washington, 98108, USA, United States"},"destination_address":{"country":"USA","state":"California","postal_code":"92019","raw_location":"El Cajon, California, 92019, USA, United States"},"weight":null,"package_count":null,"estimated_pickup":{"order_time":"2021-07-01 15:04:05","order_cutoff_time":"20:00:00","business_days":[1,2,3,4,5,6,7],"order_processing_time":{"unit":"day","value":0}}}]}'
response.json
{
  "meta": {
    "code": 200
  },
  "data": {
    "estimated_delivery_dates": [
      {
        "slug": "sendle",
        "service_type_name": "{service_type_name}",
        "origin_address": {
          "country": "USA",
          "state": "WA",
          "postal_code": "98108",
          "raw_location": "Seattle, Washington, 98108, USA, United States",
          "city": null
        },
        "destination_address": {
          "country": "USA",
          "state": "CA",
          "postal_code": "92019",
          "raw_location": "El Cajon, California, 92019, USA, United States",
          "city": null
        },
        "weight": {
          "unit": "kg",
          "value": 1
        },
        "package_count": 1,
        "pickup_time": "2021-07-01 15:00:00",
        "estimated_pickup": null,
        "estimated_delivery_date": "2021-07-04",
        "estimated_delivery_date_min": "2021-07-03",
        "estimated_delivery_date_max": "2021-07-04"
      },
      {
        "slug": "sendle",
        "service_type_name": "{service_type_name}",
        "origin_address": {
          "country": "USA",
          "state": "WA",
          "postal_code": "98108",
          "raw_location": "Seattle, Washington, 98108, USA, United States",
          "city": null
        },
        "destination_address": {
          "country": "USA",
          "state": "CA",
          "postal_code": "92019",
          "raw_location": "El Cajon, California, 92019, USA, United States",
          "city": null
        },
        "weight": null,
        "package_count": null,
        "pickup_time": null,
        "estimated_pickup": {
          "order_time": "2021-07-01 15:04:05",
          "order_cutoff_time": "20:00:00",
          "business_days": [
            1,
            2,
            3,
            4,
            5,
            6,
            7
          ],
          "order_processing_time": {
            "unit": "day",
            "value": 0
          },
          "pickup_time": "2021-07-01 20:00:00"
        },
        "estimated_delivery_date": "2021-07-03",
        "estimated_delivery_date_min": "2021-07-02",
        "estimated_delivery_date_max": "2021-07-04"
      }
    ]
  }
}

Sendle Rates API

Get a rate

Get rate

Parameters

  • id string required
    Rate id

Returns

  • meta Meta
    • code integer required
      Code of Meta
    • messagestring required
      Message of Meta
    • detailsarray[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data RateRecord
    RateRecord object: the description of rates information
    • created_at string
      the timestamp of created_at, example: 2022-05-18T09:17:38+00:00
    • id string
      rate id
    • updated_at string
      the timestamp of updated_at, example: 2022-05-18T09:17:38+00:00
    • status string
      Allowed values:calculating calculated failed
    • rates array[Rate]
      rates array
curl --request GET \
  --url https://api.aftership.com/postmen/v3/rates/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "ad1f9340-608d-4a30-be0e-b0a62e07e4cc",
    "rates": [
      {
        "charge_weight": {
          "value": 1.5,
          "unit": "kg"
        },
        "total_charge": {
          "amount": 429.57,
          "currency": "HKD"
        },
        "shipper_account": {
          "id": "00000000-0000-0000-0000-000000000000",
          "slug": "sendle",
          "description": "Sendle Sandbox"
        },
        "service_type": "{service_type}",
        "service_name": "{service_name}",
        "pickup_deadline": "2015-09-01T18:00:00+00:00",
        "booking_cut_off": "2015-09-01T17:00:00+00:00",
        "delivery_date": "2015-09-01T23:00:00+00:00",
        "transit_time": 1,
        "detailed_charges": [
          {
            "type": "base",
            "charge": {
              "amount": 387,
              "currency": "HKD"
            }
          },
          {
            "type": "fuel_surcharge",
            "charge": {
              "amount": 42.57,
              "currency": "HKD"
            }
          }
        ],
        "error_message": null,
        "info_message": null
      },
      {
        "charge_weight": {
          "value": 1.5,
          "unit": "kg"
        },
        "total_charge": {
          "amount": 528,
          "currency": "HKD"
        },
        "shipper_account": {
          "id": "00000000-0000-0000-0000-000000000000",
          "slug": "sendle",
          "description": "Sendle Sandbox"
        },
        "service_type": "{service_type}",
        "service_name": "{service_name}",
        "pickup_deadline": "2015-09-01T18:00:00+00:00",
        "booking_cut_off": "2015-09-01T17:00:00+00:00",
        "delivery_date": "2015-09-01T23:00:00+00:00",
        "transit_time": 1,
        "detailed_charges": [
          {
            "type": "base",
            "charge": {
              "amount": 528,
              "currency": "HKD"
            }
          }
        ],
        "error_message": null,
        "info_message": null
      }
    ],
    "status": "calculated",
    "created_at": "2015-09-09T07:49:54.060Z",
    "updated_at": "2015-09-09T07:49:57.360Z"
  }
}

Calculate rates

Calculate rates

Parameters

  • async boolean
    enable async mode or not (set to false if not provided)
  • is_document boolean
    If the shipment is document type. (set to false if not provided)
  • ship_date string
    Ship Date in YYYY-MM-DD, if not provided, will be today of the shipper account timezone
  • shipper_accounts array[object]
    • id string
  • shipment Shipment
    Shipment object: the description of shipment information
    • ship_fromAddress required
      Address object: the description of address information
    • ship_to Address required
      Address object: the description of address information
    • parcels array[Parcel] required
      required
      Parcels of shipment
    • return_to Address
      Address object: the description of address information
    • delivery_instructions string
      Instructions to aid in prompt delivery of the shipment.

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data RateRecord
    RateRecord object: the description of rates information
    • created_at string
      the timestamp of created_at, example: 2022-05-18T09:17:38+00:00
    • id string
      rate id
    • updated_at string
      the timestamp of updated_at, example: 2022-05-18T09:17:38+00:00
    • statusstring
      Allowed values:calculating calculated failed
    • ratesarray[Rate]
      rates array
curl --request POST \
  --url https://api.aftership.com/postmen/v3/rates \
  --header 'Content-Type: application/json' \
  --data '{"shipment":{"ship_to":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"parcels":[{"box_type":"custom","dimension":{"width":10,"height":10,"depth":10,"unit":"cm"},"items":[{"description":"Food Bar","quantity":1,"price":{"currency":"USD","amount":100},"item_id":"1234567","origin_country":"CHN","weight":{"unit":"kg","value":10},"sku":"imac2014","hs_code":"1006.30"}],"description":"Food XS","weight":{"unit":"kg","value":10}}],"ship_from":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"return_to":{"city":"New York","type":"residential","state":"New York","phone":"1-123-456-5496","email":"[email protected]","street1":"This is the first streeet","street2":"This is the second streeet","country":"USA","postal_code":"10001","contact_name":"AfterShip Shipping"},"delivery_instructions":"handle with care"},"shipper_accounts":[{"id":"3ba41ff5-59a7-4ff0-8333-64a4375c7f21"}]}'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "ad1f9340-608d-4a30-be0e-b0a62e07e4cc",
    "rates": [
      {
        "charge_weight": {
          "value": 1.5,
          "unit": "kg"
        },
        "total_charge": {
          "amount": 429.57,
          "currency": "HKD"
        },
        "shipper_account": {
          "id": "00000000-0000-0000-0000-000000000000",
          "slug": "sendle",
          "description": "Sendle Sandbox"
        },
        "service_type": "{service_type}",
        "service_name": "{service_name}",
        "pickup_deadline": "2015-09-01T18:00:00+00:00",
        "booking_cut_off": "2015-09-01T17:00:00+00:00",
        "delivery_date": "2015-09-01T23:00:00+00:00",
        "transit_time": 1,
        "detailed_charges": [
          {
            "type": "base",
            "charge": {
              "amount": 387,
              "currency": "HKD"
            }
          },
          {
            "type": "fuel_surcharge",
            "charge": {
              "amount": 42.57,
              "currency": "HKD"
            }
          }
        ],
        "error_message": null,
        "info_message": null
      },
      {
        "charge_weight": {
          "value": 1.5,
          "unit": "kg"
        },
        "total_charge": {
          "amount": 528,
          "currency": "HKD"
        },
        "shipper_account": {
          "id": "00000000-0000-0000-0000-000000000000",
          "slug": "sendle",
          "description": "Sendle Sandbox"
        },
        "service_type": "{service_type}",
        "service_name": "{service_name}",
        "pickup_deadline": "2015-09-01T18:00:00+00:00",
        "booking_cut_off": "2015-09-01T17:00:00+00:00",
        "delivery_date": "2015-09-01T23:00:00+00:00",
        "transit_time": 1,
        "detailed_charges": [
          {
            "type": "base",
            "charge": {
              "amount": 528,
              "currency": "HKD"
            }
          }
        ],
        "error_message": null,
        "info_message": null
      }
    ],
    "status": "calculated",
    "created_at": "2015-09-09T07:49:54.060Z",
    "updated_at": "2015-09-09T07:49:57.360Z"
  }
}

Sendle Labels API

Create a label

Create a label.

Parameters

  • billing Billing
    Billing object: the description of billing information
    • paid_by string required
      Allowed values: shipper third_party recipient
    • method PaymentMethodAccount
      PaymentMethodAccount object: the description of account information
  • customs Customs
    Customs object: the description of customs information
    • purpose string required
      Allowed values: gift merchandise personal sample return
      repair non-merchandise
    • terms_of_trade string
      Allowed values: dat ddu ddp dap exw fca fob cip cif
      cpt cfr dpu
    • eei one of: AES
      AES object: the description of EEI Type - aes
    • billing Billing
      Billing object: the description of billing information
    • importer_address Address
      Address object: the description of address information
    • passport object
      Passport Object
    • additional_charges array[object]
      This array contains additional_charges object. Additional charge to be added to the commercial invoice of this shipment. Only applies to FedEx, DHL, UPS currently.
  • shipment Shipment
    Shipment object: the description of shipment information
  • ship_fromAddress required
    Address object: the description of address information
  • ship_to Address required
    Address object: the description of address information
  • parcels array[Parcel] required
    Parcels of shipment
  • return_to Address
    Address object: the description of address information
  • delivery_instructions string
    Instructions to aid in prompt delivery of the shipment.

Return

  • metaMeta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data Label
    Label object: the description of label object
    • id string
      Label ID
    • status string
      Allowed values: creating created cancelling cancelled manifesting manifested failed
      ship_date string
      tracking_numbers array[string]
curl --request POST \
  --url https://api.aftership.com/postmen/v3/labels \
  --header 'Content-Type: application/json' \
  --data '{"shipment":{"ship_to":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"parcels":[{"box_type":"custom","dimension":{"width":10,"height":10,"depth":10,"unit":"cm"},"items":[{"description":"Food Bar","quantity":1,"price":{"currency":"USD","amount":100},"item_id":"1234567","origin_country":"CHN","weight":{"unit":"kg","value":1},"sku":"imac2014","hs_code":"100630","return_reason":"too big"}],"description":"Food XS","weight":{"unit":"kg","value":1}}],"ship_from":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"}},"paper_size":"4x6","references":["refernce1"],"is_document":false,"service_type":"usps-discounted_express_mail","custom_fields":{"ship_code":"01"},"return_shipment":false,"shipper_account":{"id":"3ba41ff5-59a7-4ff0-8333-64a4375c7f21"}}'
response.json
{
  "meta": {
    "code": 200,
    "message": "OK",
    "details": []
  },
  "data": {
    "id": "3318b97b-150f-4205-840d-a6d966b9e0ea",
    "rate": {
      "total_charge": {
        "amount": 0,
        "currency": "USD"
      },
      "service_type": "{service_type}",
      "service_name": "{service_name}",
      "transit_time": null,
      "info_message": null,
      "charge_weight": {
        "unit": "lb",
        "value": 3.307
      },
      "delivery_date": null,
      "error_message": null,
      "shipper_account": {
        "id": "00000000-0000-0000-0000-000000000000",
        "slug": "sendle",
        "description": "Sendle Sandbox"
      },
      "pickup_deadline": null,
      "booking_cut_off": null,
      "detailed_charges": []
    },
    "files": {
      "label": {
        "url": "https://sandbox-download.postmen.com/label/2015-11-27/00000000-0000-0000-0000-000000000000-1441785264309885.pdf",
        "file_type": "pdf",
        "paper_size": "4x8"
      },
      "invoice": null,
      "manifest": null,
      "customs_declaration": null
    },
    "status": "created",
    "ship_date": "2022-09-09",
    "created_at": "2022-05-09T07:54:13.024Z",
    "updated_at": "2022-09-09T07:54:24.569Z",
    "tracking_numbers": [
      "3884930103"
    ]
  },
  "custom_fields": {
    "ship_code": "01"
  }
}

Get a label

Get a label.

Parameters

  • id string required
    label id

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data Label
    Label object: the description of label object
    • id string
      Label ID
    • status string
      Allowed values: creating created cancelling cancelled manifesting manifested failed
curl --request GET \
  --url https://api.aftership.com/postmen/v3/labels/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "3318b97b-150f-4205-840d-a6d966b9e0ea",
    "rate": {
      "total_charge": {
        "amount": 0,
        "currency": "USD"
      },
      "service_type": "{service_type}",
      "service_name": "{service_name}",
      "transit_time": null,
      "info_message": null,
      "charge_weight": {
        "unit": "lb",
        "value": 3.307
      },
      "delivery_date": null,
      "error_message": null,
      "shipper_account": {
        "id": "00000000-0000-0000-0000-000000000000",
        "slug": "sendle",
        "description": "Sendle Sandbox"
      },
      "pickup_deadline": null,
      "booking_cut_off": null,
      "detailed_charges": []
    },
    "files": {
      "label": {
        "url": "https://sandbox-download.postmen.com/label/2015-11-27/00000000-0000-0000-0000-000000000000-1441785264309885.pdf",
        "file_type": "pdf",
        "paper_size": "4x8"
      },
      "invoice": null,
      "manifest": null,
      "customs_declaration": null
    },
    "status": "created",
    "ship_date": "2015-09-09",
    "created_at": "2015-09-09T07:54:13.024Z",
    "updated_at": "2015-09-09T07:54:24.569Z",
    "tracking_numbers": [
      "3884930103"
    ]
  }
}

Sendle Manifests API

We current do not support this API. If you are interested in this API, please request for an integration.

Sendle Cancel Labels API

Cancel a label

Cancel a label.

Parameters

  • label object
    • id string

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data object
    • id string
    • status string
      Allowed values: cancelling cancelled failed
    • refund_status string
    • label object
    • created_at string
    • updated_at string
curl --request POST \
  --url https://api.aftership.com/postmen/v3/cancel-labels \
  --header 'Content-Type: application/json' \
  --data '{"label":{"id":"00000000-0000-0000-0000-000000000000"}}'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "label": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "status": "cancelled",
    "created_at": "2022-02-11T08:10:47+00:00",
    "updated_at": "2022-02-11T08:10:47+00:00"
  }
}

Sendle Pickups API

Create a pickup

Create a pickup. Applicable for FedEx, UPS, DHL Express, Purolator.

Parameters

  • pickup_date string
    Pickup Date should be provided in YYYY-MM-DD format. If it is not provided, it will default to today's date in the shipper account's timezone
  • pickup_start_time string required
    Preferred start time for pickup in HH:mm:ss
  • pickup_end_time string required
    Preferred end time for pickup in HH:mm:ss
  • pickup_from Address required
    Address object: the description of address information
    • street1 string required
      address_line1 of address
    • country string required
      Country in ISO 3166-1 alpha 3 code
    • contact_name string required
      contact_name of address
  • pickup_parcels array[PickupParcel]
    Parcel detail information which to be pickup. If label_ids are not present, pickup_parcels are required. When pickup_parcels are present, shipper_account is required
    • weight Weight required
      Weight object: unit weight of the item
    • quantity integer required
      The quantity of the packages. Minimum: 1

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
  • data Pickup
    Pickup object: the description of pickup information
  • id string
    Pickup ID
  • status
    Allowed values: creating created failed cancelling cancelled
  • pickup_confirmation_numbers array[string]
    The confirmation numbers dispatch from carrier when pickup success
  • pickup_date string
    Pickup Date in YYYY-MM-DD
curl --request POST \
  --url https://api.aftership.com/postmen/v3/pickups \
  --header 'Content-Type: application/json' \
  --data '{"ship_to":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"pickup_date":"2023-09-21","pickup_from":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"pickup_parcels":[{"weight":{"unit":"lb","value":1},"quantity":1,"service_type":"string"}],"pickup_end_time":"18:00:00","shipper_account":{"id":"00000000-0000-0000-0000-000000000000"},"pickup_location":"string","pickup_start_time":"09:00:00","pickup_instructions":"string"}'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "created",
    "ship_to": null,
    "label_ids": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "created_at": "2023-09-21T07:54:13.024Z",
    "updated_at": "2023-09-21T07:54:13.024Z",
    "pickup_date": "2023-09-21",
    "pickup_from": {
      "city": "Salt Lake City",
      "state": "UT",
      "phone": "123456789",
      "email": "[email protected]",
      "street1": "230 W 200 S LBBY",
      "country": "USA",
      "postal_code": "84101",
      "contact_name": "AfterShip Shipping",
      "company_name": "AfterShip Shipping"
    },
    "pickup_parcels": [
      {
        "weight": {
          "value": 1,
          "unit": "lb"
        },
        "quantity": 1
      }
    ],
    "pickup_end_time": "18:00:00",
    "shipper_account": {
      "id": "00000000-0000-0000-0000-000000000000",
      "slug": "sendle"
    },
    "pickup_start_time": "09:00:00",
    "pickup_confirmation_numbers": [
      "3012"
    ]
  }
}

Get a pickup

Get a pickup.

Parameters

  • id string required
    Pickup id

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data Pickup
    Pickup object: the description of pickup information
    • id string
      Pickup ID
    • status
      Allowed values: creating created failed cancelling cancelled
    • pickup_confirmation_numbers array[string]
      The confirmation numbers dispatch from carrier when pickup success
curl --request GET \
  --url https://api.aftership.com/postmen/v3/pickups/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "created",
    "label_ids": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "created_at": "2022-05-09T07:54:13.024Z",
    "updated_at": "2022-05-09T07:54:13.024Z",
    "pickup_date": "2023-09-21",
    "pickup_from": {
      "city": "Salt Lake City",
      "state": "UT",
      "phone": "123456789",
      "email": "[email protected]",
      "street1": "230 W 200 S LBBY",
      "country": "USA",
      "postal_code": "84101",
      "contact_name": "AfterShip Shipping",
      "company_name": "AfterShip Shipping"
    },
    "pickup_end_time": "09:00:00",
    "pickup_start_time": "09:00:00",
    "pickup_confirmation_numbers": [
      "00000000-0000-0000-0000-000000000000"
    ]
  }
}

Sendle Cancel Pickups API

Cancel a pickup

Cancel a pickup.

Parameters

  • pickup object required
  • id string

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data object
    • id string
    • status string
      Allowed values: cancelling cancelled failed
    • refund_status string
    • label object
    • created_at string
    • updated_at string
curl --request POST \
  --url https://api.aftership.com/postmen/v3/cancel-pickups \
  --header 'Content-Type: application/json' \
  --data '{"pickup":{"id":"00000000-0000-0000-0000-000000000000"}}'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "cancelled",
    "pickup": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "created_at": "2022-02-11T08:10:47+00:00",
    "updated_at": "2022-02-11T08:10:47+00:00"
  }
}

Get a cancelled pickup

Get a cancelled pickup.

Parameters

  • id string required
    Cancel pickup id

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data object
    • id string
    • status string
      Allowed values: cancelling cancelled failed
    • refund_status string
    • label object
    • created_at string
    • updated_at string
curl --request GET \
  --url https://api.aftership.com/postmen/v3/cancel-pickups/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "cancelled",
    "pickup": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "created_at": "2022-02-11T08:10:47+00:00",
    "updated_at": "2022-02-11T08:10:47+00:00"
  }
}

Sendle Shipper Accounts API

Create a shipper account

This endpoint allows you to create your shipper account via API. You can integrate our API with your system and manage the shipper account according to your needs.

Please ensure that your account credentials are correct. Different carriers have different requirements for account credentials, you can refer to Shipper account's credetials for more details.

Parameters

  • slug string {{slug}}
  • description string
  • timezone string
  • credentials object
    Please refer to Shipper account's credetials
  • address Address
    Address object: the description of address information
    • street1 string required
      address_line1 of address
    • country string required
      Country in ISO 3166-1 alpha 3 code
    • contact_name string required
      contact_name of address

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data ShipperAccount
    ShipperAccount object: the description of shipper account information
    • id string
      Shipper Account ID
    • address Address
      Address object: the description of address information
curl --request POST \
  --url https://api.aftership.com/postmen/v3/shipper-accounts \
  --header 'Content-Type: application/json' \
  --data '{"slug":"dhl","address":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"},"timezone":"Asia/Hong_Kong","description":"My Shipper Account","credentials":{"site_id":"******","password":"******","account_number":"******"}}'
response.json
{
  "meta": {
    "code": 200,
    "message": "OK",
    "details": []
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "slug": "sendle",
    "type": "default",
    "status": "enabled",
    "address": {
      "fax": "+1 206-654-3100",
      "city": "Lai Chi Kok",
      "type": "business",
      "phone": "11111111",
      "email": "[email protected]",
      "state": null,
      "tax_id": null,
      "country": "HKG",
      "street1": "Workshop A, 10/F, Wah Shing Industrial Building",
      "street2": "18 Cheung Shun Street, Lai Chi Kok",
      "street3": null,
      "postal_code": null,
      "contact_name": "Sir Foo",
      "company_name": "Foo Store"
    },
    "timezone": "Asia/Hong_Kong",
    "created_at": "2016-02-12T10:30:50+00:00",
    "updated_at": "2016-09-23T04:56:26+00:00",
    "description": "My Shipper Account"
  }
}

Get a shipper account

This endpoint allows you get a specific shipper account details by shipper account id.

Parameters

  • id string required
    Shipper account id

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data ShipperAccount
    ShipperAccount object: the description of shipper account information
    • id string
      Shipper Account ID
    • address Address
      Address object: the description of address information
curl --request GET \
  --url https://api.aftership.com/postmen/v3/shipper-accounts/id \
  --header 'Content-Type: application/json'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "slug": "sendle",
    "type": "default",
    "status": "enabled",
    "address": {
      "fax": "+1 206-654-3100",
      "city": "Lai Chi Kok",
      "type": "business",
      "phone": "11111111",
      "email": "[email protected]",
      "state": null,
      "tax_id": null,
      "country": "HKG",
      "street1": "Workshop A, 10/F, Wah Shing Industrial Building",
      "street2": "18 Cheung Shun Street, Lai Chi Kok",
      "street3": null,
      "postal_code": null,
      "contact_name": "Sir Foo",
      "company_name": "Foo Store"
    },
    "timezone": "Asia/Hong_Kong",
    "created_at": "2016-02-12T10:30:50+00:00",
    "updated_at": "2016-09-23T04:56:26+00:00",
    "description": "My Shipper Account"
  }
}

Sendle Address Validations (Beta) API

Create an address validation

Create an address validation

Parameters

  • address Address
    Address object: the description of address information
    • street1 string required
      address_line1 of address
    • country string required
      Country in ISO 3166-1 alpha 3 code
    • contact\_name string required
      contact_name of address

Returns

  • meta Meta
    Meta data object.
    • code integer required
      Code of Meta
    • message string required
      Message of Meta
    • details array[Error]
      Details of Meta
    • retryable boolean
      Whether this request will be retryable or not
  • data ShipperAccount
    ShipperAccount object: the description of shipper account information
    • id string
      Shipper Account ID
    • address Address
      Address object: the description of address information
curl --request POST \
  --url https://api.aftership.com/postmen/v3/address-validations \
  --header 'Content-Type: application/json' \
  --data '{"address":{"city":"Salt Lake City","state":"UT","phone":"123456789","email":"[email protected]","street1":"230 W 200 S LBBY","country":"USA","postal_code":"84101","contact_name":"AfterShip Shipping","company_name":"AfterShip Shipping"}}'
response.json
{
  "meta": {
    "code": 200,
    "type": "OK",
    "message": "Everything worked as expected."
  },
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "valid",
    "address": {
      "city": "New York",
      "type": "residential",
      "state": "New York",
      "phone": "1-123-456-5496",
      "email": "[email protected]",
      "street1": "This is the first streeet",
      "street2": "This is the second streeet",
      "country": "USA",
      "postal_code": "10001",
      "contact_name": "AfterShip Shipping"
    },
    "created_at": "2022-02-11T08:10:47+00:00",
    "updated_at": "2022-02-11T08:10:47+00:00",
    "recommended_address": {
      "city": "New York",
      "type": "residential",
      "state": "New York",
      "phone": "1-123-456-5496",
      "email": "[email protected]",
      "street1": "This is the first streeet",
      "street2": "This is the second streeet",
      "country": "USA",
      "postal_code": "10001",
      "contact_name": "AfterShip Shipping"
    }
  }
}

Frequently Asked Questions

How to generate Sendle API key?

To ensure secure access, AfterShip requires an as-api-key in the header of each request. You can request a free API key by submitting the form. Get a free API Key

Do I need a Sendle developer account to use this API?

No, you don't need a Sendle account. AfterShip has partnered with Sendle, allowing you direct access to Sendle tracking data through the AfterShip API.

Enhance the entire post-purchase experience with us

Google Drive
Google Drive
Google Drive
Google Drive
Google Drive
AfterShip
Google Drive
Google Drive
Google Drive
Google Drive
Google Drive

Integrate multi-carrier & your store

Easily integrate shipment tracking into your system or website for a seamless tracking experience. AfterShip's tracking API allows you to offer shipment visibility across multiple touchpoints without stretching your development resources.
  • Global coverage: 1,100+ carrier integrations and 52+ languages
  • Accuracy: Normalized data and standardized 7 main-statuses and 33 sub-statuses
  • Data integrity: AI helps recognize new tracking number patterns
  • Uptime & Reliability: 99.99%+ uptime, ISO 27001, SOC2, and GDPR compliance
Stars

Recognized by customers for exceptional service

G2 BadgeG2 BadgeG2 BadgeG2 BadgeG2 BadgeG2 BadgeG2 BadgeG2 BadgeG2 Badge
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer
Customer