API Resources

All API URLs listed in this documentation are relative to https://api.easyship.com/<endpoint>/v1/<resource>. For example, the /rates resource is reachable at https://api.easyship.com/rate/v1/rates

Authentication

In order to authenticate properly, please put Authorization: Bearer <API Access Token> in your header. You can generate the API Access Token from your Easyship Dashboard. You will need to create an API connection, and then retrieve the token from the store settings.

Authorization: Bearer

Production:
prod_4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f

Sandbox:
sand_4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f

PLEASE NOTE: These are not your tokens, but examples. You can retrieve your token from the dashboard.

Try It Now Authentication

The Try It Now section of the documentation connects to the Easyship Production environment (api.easyship.com). To generate test code and to test the endpoints, please use your Sandbox token to authenticate correctly.

Rate Limiting

Rate limiting of API is based primarily on <API Access Token>, all the endpoints have a limit of 60 requests per minute and 10 requests per second in the case of instant requests. You will be blocked once you make the maximum amount of requests until the window begins.

 

The Rates API allows you to request a list of shipping quotes for a prospective Shipment. The response will also indicate which Courier is the cheapest, fastest and best value for money, which is a combination of speed, price and reliability.

 
Suggest Edits

Request rates and taxes

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/rate/v1/rates

Body Params

origin_postal_code
string

Origin postal code . Mandatory for most countries (if not applicable, for example Hong Kong, leave null or 0)

destination_country_alpha2
string
required

Destination Country in Alpha 2 Format

destination_postal_code
string

Destination postal code. Mandatory for most countries (if not applicable, for example, Hong Kong, leave null or 0)

taxes_duties_paid_by
string

Taxes & Duties paid by. Allowed values: Sender, Receiver. Default: Sender

is_insured
boolean

Shipment includes insurance fee. Default: false

items
array of objects
required

Shipment items

actual_weight
height
width
length
category
declared_currency
declared_customs_value
output_currency
string

Output currency

items array object
type
description

actual_weight

float

Actual weight of item in KG

height

float

Actual height of item in cm

width

float

Actual width of item in cm

length

float

Actual length of item in cm

category

string

Item's category. Allowed values=
mobiles, tablets, computers_laptops, cameras, accessory_no_battery, accessory_battery, health_beauty, fashion, watches, home_appliances, home_decor, toys, sport, luggage, audio_video, documents, jewelry, dry_food_supplements, books_collectionables, pet_accessory, gaming, sauce

declared_currency

string

Items customs value currency:
See supported currencies
Must be uppercase

declared_customs_value

float

Items customs value

curl --request POST \
  --url https://api.easyship.com/rate/v1/rates
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/rate/v1/rates' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/rate/v1/rates")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/rate/v1/rates");

xhr.send(data);
import requests

url = "https://api.easyship.com/rate/v1/rates"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
     --data-binary "{
  \"origin_postal_code\": \"WC2N\",
  \"destination_country_alpha2\": \"US\",
  \"destination_postal_code\": \"10030\",
  \"taxes_duties_paid_by\": \"Sender\",
  \"is_insured\": false,
  \"items\": [
    {
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"mobiles\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}" \
'https://api.easyship.com/rate/v1/rates'
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/rate/v1/rates")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTPrequire 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "origin_country_alpha2": "SG",
  "origin_postal_code": "WC2N",
  "destination_country_alpha2": "US",
  "destination_postal_code": "10030",
  "taxes_duties_paid_by": "Sender",
  "is_insured": false,
  "items": [
    {
      "actual_weight": 1.2,
      "height": 10,
      "width": 15,
      "length": 20,
      "category": "mobiles",
      "declared_currency": "SGD",
      "declared_customs_value": 100
    }
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.post 'https://api.easyship.com/rate/v1/rates', values, headers
puts response.body
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/rate/v1/rates',
  headers:
   {
     'cache-control': 'no-cache',
     'authorization': 'Bearer XXXXXX',
     'content-type': 'application/json',
     'accept': 'application/json' },
  body:
   { origin_country_alpha2: 'SG',
     origin_postal_code: '45373',
     origin_state: 'OH',
     destination_country_alpha2: 'US',
     destination_postal_code: '45373',
     taxes_duties_paid_by: 'Receiver',
     is_insured: true,
     items:
      [ { actual_weight: 0.170097,
          height: 1,
          width: 1,
          length: 1,
          category: 'documents',
          declared_currency: 'USD',
          declared_customs_value: 36.79 } ] },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/rate/v1/rates');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'origin_country_alpha2': 'SG',
  'origin_postal_code': 'WC2N',
  'destination_country_alpha2': 'US',
  'destination_postal_code': '10030',
  'taxes_duties_paid_by': 'Sender',
  'is_insured': false,
  'items': [
    {
      'actual_weight': 1.2,
      'height': 10,
      'width': 15,
      'length': 20,
      'category': 'mobiles',
      'declared_currency': 'SGD',
      'declared_customs_value': 100
    }
  ]
};

request.send(JSON.stringify(body));
import requests
import json

values = """
  {
    "origin_country_alpha2": "SG",
    "origin_postal_code": "WC2N",
    "destination_country_alpha2": "US",
    "destination_postal_code": "10030",
    "taxes_duties_paid_by": "Sender",
    "is_insured": false,
    "items": [
      {
        "actual_weight": 1.2,
        "height": 10,
        "width": 15,
        "length": 20,
        "category": "mobiles",
        "declared_currency": "SGD",
        "declared_customs_value": 100
      }
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

r = requests.post("https://api-sandbox.easyship.com/rate/v1/rates", data=values, headers=headers)

print(r.text)
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/rate/v1/rates");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"origin_country_alpha2\": \"SG\",
  \"origin_postal_code\": \"WC2N\",
  \"destination_country_alpha2\": \"US\",
  \"destination_postal_code\": \"10030\",
  \"taxes_duties_paid_by\": \"Sender\",
  \"is_insured\": false,
  \"items\": [
    {
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"mobiles\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
"rates": [
    {
      "courier_id": "8ea55285-d53f-4b94-b788-17c4e5eefb5e",
      "courier_name": "Singapore Post - ePack",
      "min_delivery_time": 5,
      "max_delivery_time": 7,
      "value_for_money_rank": 2,
      "delivery_time_rank": 7,
      "shipment_charge": 30.38,
      "fuel_surcharge": 0,
      "remote_area_surcharge": null,
      "shipment_charge_total": 30.38,
      "warehouse_handling_fee": 0,
      "insurance_fee": 0,
      "ddp_handling_fee": 0,
      "import_tax_charge": 0,
      "import_duty_charge": 0,
      "total_charge": 30.38,
      "is_above_threshold": false,
      "effective_incoterms": "DDU",
      "estimated_import_tax": 0,
      "estimated_import_duty": 0,
      "courier_does_pickup": false,
      "courier_dropoff_url": "https://www.easyship.com/drop-off/directlink/sg",
      "tracking_rating": 2,
      "payment_recipient": "Easyship",
      "courier_remarks": null,
      "currency": "SGD",
      "box": {
        "name": null,
        "length": 20,
        "width": 15,
        "height": 10
      },
      "minimum_pickup_fee": 0,
      "description": null,
      "full_description": null
    },
    {
      "courier_id": "16691987-a149-441b-a777-727ffe5c3325",
      "courier_name": "UPS Worldwide Saver - Battery",
      "min_delivery_time": 2,
      "max_delivery_time": 5,
      "value_for_money_rank": 1,
      "delivery_time_rank": 4,
      "shipment_charge": 52.08,
      "fuel_surcharge": 5.859,
      "remote_area_surcharge": 0,
      "shipment_charge_total": 57.939,
      "warehouse_handling_fee": 0,
      "insurance_fee": 0,
      "ddp_handling_fee": 0,
      "import_tax_charge": 0,
      "import_duty_charge": 0,
      "total_charge": 57.94,
      "is_above_threshold": false,
      "effective_incoterms": "DDU",
      "estimated_import_tax": 0,
      "estimated_import_duty": 0,
      "courier_does_pickup": true,
      "courier_dropoff_url": null,
      "tracking_rating": 3,
      "payment_recipient": "Easyship",
      "courier_remarks": null,
      "currency": "SGD",
      "box": {
        "name": null,
        "length": 20,
        "width": 15,
        "height": 10
      },
      "minimum_pickup_fee": 0,
      "description": null,
      "full_description": null
    }
  ]
}
Suggest Edits

Shipments

/shipment/v1/shipments

 

The Shipment resource is used to create, list, update and delete Shipments.

Before you confirm a shipment and purchase a label, you need to create a shipment, which is where this endpoint comes in.

If you receive an order from a customer, this API is used to create that order as a Shipment on our system. These Shipments will not be confirmed or paid for until the Buy Labels resource is called from the Label endpoint. Once you Buy Labels for a Shipment through the Label API, you will not be able to update or delete it.

If you have already used our Rates API, you can specify a specific Courier ID to already assign a Courier to the Shipment, using the selected_courier_id attribute. If you don’t pass in a Courier ID, we will attach a list of all possible Rates to your new Shipment and assign the best value for money Courier to your Shipment.

 
Suggest Edits

Create a shipment

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/shipment/v1/shipments

Body Params

platform_name
string

Sales platform name. Maximum: 200 characters

platform_order_number
string

Order number on the sales platform. This number can be used to track the associated shipment. Maximum: 200

taxes_duties_paid_by
string

Taxes & Duties paid by. Allowed values: Sender, Receiver.

is_insured
boolean

Optional, shipment will include insurance fee. Default: false

selected_courier_id
string

Optional, courier will be selected by default (applies if you integrate with Rate API). Default: null

allow_courier_fallback
boolean

If selected_courier_id is provided but the courier can’t be selected, allow the shipment to be created and the next best rate to be selected. Default: true. When false, an error will be raised and the shipment won’t be created.

destination_country_alpha2
string
required

Destination Country ISO 3166-1 alpha-2 (see list of country alpha2 codes)

destination_city
string
required

Destination City

destination_postal_code
string
required

Destination postal code. Mandatory for most countries (if not applicable, leave null or 0)

destination_state
string

Destination state. Mandatory for some countries (AU, CA, CN, MX, MY, US)

destination_name
string
required

Receiver's name. Maximum: 30 characters

destination_address_line_1
string
required

Receiver's address line 1. Maximum: 50 characters

destination_address_line_2
string

Receiver's address line 2. Maximum: 50

destination_phone_number
string
required

Receiver's phone number. Mandatory for most couriers to facilitate the delivery. Maximum: 50 characters

destination_email_address
string

Receiver's email. Required to send notifications to the receiver to track their package; mandatory for some couriers to facilitate the delivery. Maximum: 100 characters

items
array of objects
required

Array of all shipment items

description
sku
actual_weight
height
width
length
category
declared_currency
declared_customs_value
items array object
type
description

description

string

Name or description of item

sku

string

Stock Keeping Unit of item.

actual_weight

float

Actual weight of item in KG

height

float

Actual height of item in cm

width

float

Actual width of item in cm

length

float

Actual length of item in cm

category

string

Item's category. Allowed values=
mobiles, tablets, computers_laptops, cameras, accessory_no_battery, accessory_battery, health_beauty, fashion, watches, home_appliances, home_decor, toys, sport, luggage, audio_video, documents, jewelry, dry_food_supplements, books_collectionables, pet_accessory, gaming, sauce

declared_currency

string

Items customs value currency:
See supported currencies
Must be uppercase

declared_customs_value

float

Items customs value

curl --request POST \
  --url https://api.easyship.com/shipment/v1/shipments
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/shipment/v1/shipments' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/shipment/v1/shipments")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/shipment/v1/shipments");

xhr.send(data);
import requests

url = "https://api.easyship.com/shipment/v1/shipments"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
     --data-binary "{
  \"platform_name\": \"Amazon\",
  \"platform_order_number\": \"#1234\",
  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",
  \"destination_country_alpha2\": \"US\",
  \"destination_city\": \"New York\",
  \"destination_postal_code\": \"10022\",
  \"destination_state\": \"NY\",
  \"destination_name\": \"Aloha Chen\",
  \"destination_address_line_1\": \"300 Park Avenue\",
  \"destination_address_line_2\": null,
  \"destination_phone_number\": \"+1 234-567-890\",
  \"destination_email_address\": \"api-support@easyship.com\",
  \"items\": [
    {
      \"description\": \"Silk dress\",
      \"sku\": \"test\",
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"fashion\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}" \
'https://api.easyship.com/shipment/v1/shipments'
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "platform_name": "Amazon",
  "platform_order_number": "#1234",
  "selected_courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
  "destination_country_alpha2": "US",
  "destination_city": "New York",
  "destination_postal_code": "10022",
  "destination_state": "NY",
  "destination_name": "Aloha Chen",
  "destination_address_line_1": "300 Park Avenue",
  "destination_address_line_2": null,
  "destination_phone_number": "+1 234-567-890",
  "destination_email_address": "api-support@easyship.com",
  "items": [
    {
      "description": "Silk dress",
      "sku": "test",
      "actual_weight": 1.2,
      "height": 10,
      "width": 15,
      "length": 20,
      "category": "fashion",
      "declared_currency": "SGD",
      "declared_customs_value": 100
    }
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.post 'https://api.easyship.com/shipment/v1/shipments', values, headers
puts response
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"platform_name\": \"Amazon\",
  \"platform_order_number\": \"#1234\",
  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",
  \"destination_country_alpha2\": \"US\",
  \"destination_city\": \"New York\",
  \"destination_postal_code\": \"10022\",
  \"destination_state\": \"NY\",
  \"destination_name\": \"Aloha Chen\",
  \"destination_address_line_1\": \"300 Park Avenue\",
  \"destination_address_line_2\": null,
  \"destination_phone_number\": \"+1 234-567-890\",
  \"destination_email_address\": \"api-support@easyship.com\",
  \"items\": [
    {
      \"description\": \"Silk dress\",
      \"sku\": \"test\",
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"fashion\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = require('request');

request({
  method: 'POST',
  url: 'https://api.easyship.com/shipment/v1/shipments',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  },
  body: "{  \"platform_name\": \"Amazon\",  \"platform_order_number\": \"#1234\",  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",  \"destination_country_alpha2\": \"US\",  \"destination_city\": \"New York\",  \"destination_postal_code\": \"10022\",  \"destination_state\": \"NY\",  \"destination_name\": \"Aloha Chen\",  \"destination_address_line_1\": \"300 Park Avenue\",  \"destination_address_line_2\": null,  \"destination_phone_number\": \"+1 234-567-890\",  \"destination_email_address\": \"api-support@easyship.com\",  \"items\": [    {      \"description\": \"Silk dress\",      \"sku\": \"test\",      \"actual_weight\": 1.2,      \"height\": 10,      \"width\": 15,      \"length\": 20,      \"category\": \"fashion\",      \"declared_currency\": \"SGD\",      \"declared_customs_value\": 100    }  ]}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
import requests
import json

values = """
  {
    "platform_name": "Amazon",
    "platform_order_number": "#1234",
    "selected_courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
    "destination_country_alpha2": "US",
    "destination_city": "New York",
    "destination_postal_code": "10022",
    "destination_state": "NY",
    "destination_name": "Aloha Chen",
    "destination_address_line_1": "300 Park Avenue",
    "destination_address_line_2": null,
    "destination_phone_number": "+1 234-567-890",
    "destination_email_address": "api-support@easyship.com",
    "items": [
      {
        "description": "Silk dress",
        "sku": "test",
        "actual_weight": 1.2,
        "height": 10,
        "width": 15,
        "length": 20,
        "category": "fashion",
        "declared_currency": "SGD",
        "declared_customs_value": 100
      }
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
r = requests.post("https://api-sandbox.easyship.com/rate/v1/rates", data=json.dumps(values), headers=headers)

print(r.text)
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/shipment/v1/shipments');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'platform_name': 'Amazon',
  'platform_order_number': '#1234',
  'selected_courier_id': 'b8d528a7-a2d4-4510-a7ac-11cbbb6542cd',
  'destination_country_alpha2': 'US',
  'destination_city': 'New York',
  'destination_postal_code': '10022',
  'destination_state': 'NY',
  'destination_name': 'Aloha Chen',
  'destination_address_line_1': '300 Park Avenue',
  'destination_address_line_2': null,
  'destination_phone_number': '+1 234-567-890',
  'destination_email_address': 'api-support@easyship.com',
  'items': [
    {
      'description': 'Silk dress',
      'sku': 'test',
      'actual_weight': 1.2,
      'height': 10,
      'width': 15,
      'length': 20,
      'category': 'fashion',
      'declared_currency': 'SGD',
      'declared_customs_value': 100
    }
  ]
};

request.send(JSON.stringify(body));
{
    "shipment" => {
        "created_at": "2016-11-23T04:52:24.559Z",
        "updated_at": "2016-11-23T04:52:30.386Z",
        "easyship_shipment_id": "ESHK2325803",
        "destination_name": "Aloha Chen",
        "destination_address_line_1": "300 Park Avenue",
        "destination_address_line_2": null,
        "destination_city": "New York",
        "destination_state": "NY",
        "destination_postal_code": "10022",
        "destination_phone_number": "+1 234-567-890",
        "destination_email_address": "api-support@easyship.com",
        "platform_name": "Amazon",
        "platform_order_number": "#1234",
        "currency": "HKD",
        "total_customs_value": 573.06,
        "total_actual_weight": 1.2,
        "total_dimensional_weight": 0.6,
        "total_volumetric_weight": 1.2,
        "is_insured": false,
        "origin_country": {
            "name": "Hong Kong",
            "alpha2": "HK"
        },
       "destination_country": {
            "name": "United States",
            "alpha2": "US"
        },
        "items": [
            {
                "id": "00015b1f-0cda-4dc5-ae64-b920ff9f2d25",
                "description": "Silk dress",
                "sku": "test-123",
                "width": 15.0,
                "length": 20.0,
                "height": 10.0,
                "actual_weight": 1.2,
                "dimensional_weight": 0.6,
                "volumetric_weight": 1.2,
                "declared_customs_value": 100.0,
                "declared_currency": "SGD",
                "origin_customs_value": 573.06,
                "origin_currency": "HKD",
                "category": "fashion"
            }
        ],
        "box": {
            "name": null,
            "length": 20,
            "width": 15,
            "height": 10
        },
        "selected_courier": {
          "id": "2a17f7aa-51f7-4d36-bca8-e77c164cb52a",
          "name": "DHL Express",
          "min_delivery_time": 2,
          "max_delivery_time": 3,
          "shipment_charge": 284.9,
          "fuel_surcharge": 32.05125,
          "remote_area_surcharge": 0,
          "shipment_charge_total": 316.95125,
          "warehouse_handling_fee": 0,
          "insurance_fee": 0,
          "ddp_handling_fee": 0,
          "import_tax_charge": 0,
          "import_duty_charge": 0,
          "total_charge": 316.95,
          "is_above_threshold": false,
          "effective_incoterms": "DDU",
          "estimated_import_tax": 0,
          "estimated_import_duty": 0,
          "courier_does_pickup": false,
          "courier_dropoff_url": "https://www.easyship.com/drop-off/dhl/hk",
          "available_handover_options": "dropoff",
          "courier_remarks": null,
          "payment_recipient": "Easyship"
        },
        "rates": [
            {
                "courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
                "courier_name": "UPS",
                "min_delivery_time": 1,
                "max_delivery_time": 3,
                "value_for_money_rank": 1.0,
                "delivery_time_rank": 1.0,
                "shipment_charge": 237.50,
                "fuel_surcharge": 22.56,
                "remote_area_surcharge": 0,
                "shipment_charge_total": 260.06,
                "warehouse_handling_fee": 0,
                "insurance_fee": 0.0,
                "ddp_handling_fee": 0.0,
                "import_tax_charge": 0.0,
                "import_duty_charge": 0.0,
                "total_charge": 260.06,
                "is_above_threshold": false,
                "effective_incoterms": "DDU",
                "estimated_import_tax": 0,
                "estimated_import_duty": 0,
                "courier_does_pickup": true,
                "courier_dropoff_url": "",
                "available_handover_options": "dropoff",
                "tracking_rating": 3.0,
                "courier_remarks": null,
                "payment_recipient": "Easyship"
            }
        ]
    }
}
Suggest Edits

List Shipments

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/shipment/v1/shipments

Query Params

easyship_shipment_id
string

Easyship Shipment ID provided when creating the shipment. If multiple, separate with a comma.

platform_order_number
string

Order number on the sales platform

page
string

Which page number you want to fetch, default: 1

per_page
string

Optional Number of Shipments per page to fetch, default: 25, max: 100

created_at_from
string

search for shipments created since this date: ISO8601 date format.

created_at_to
string

search for shipments created before this date: ISO8601 date format.

confirmed_at_from
string

search for shipments confirmed since this date: ISO8601 date format.

confirmed_at_to
string

search for shipments confirmed before this date: ISO8601 date format.

label_generated_at_from
string

search for labels created since this date: ISO8601 date format.

label_generated_at_to
string

search for shipments confirmed before this date: ISO8601 date format.

shipment_state
string

search by current status of shipment. created or cancelled

pickup_state
string

Optional search by current pickup status of shipment. valid options: not_requested, pending_confirmation, pending_drop_off, request_failed, requested, completed, cancelled. Multiple values allowed, separate with a comma (,).

delivery_state
string

Optional search by current delivery status of shipment. valid options: not_created, pending, info_received, in_transit_to_customer, out_for_delivery, delivered, failed_attempt, exception, expired, lost_by_courier , returned_to_shipper. Multiple values allowed, separate with a comma (,).

label_state
string

Optional search by current label status of shipment. valid options: not_created, pending, generating, generated, printed, failed, technical_failed, reported. Multiple values allowed, separate with a comma (,).

warehouse_state
string

For eFulfilment only. Optional search by current warehouse status of shipment. valid options: pending, created, packed, shipped. Multiple values allowed, separate with a comma (,).

Retrieving Confirmed Shipments

When you issue GET request to the shipment/v1/shipments resource with an easyship_shipment_id that has already been confirmed and had a label purchased, we will also return within the response:
label_state
label_url
tracking_number
tracking_page_url
label_generated_at

curl --request GET \
  --url https://api.easyship.com/shipment/v1/shipments
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/shipment/v1/shipments' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/shipment/v1/shipments")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/shipment/v1/shipments");

xhr.send(data);
import requests

url = "https://api.easyship.com/shipment/v1/shipments"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page='
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page=',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.get 'https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page=', headers
puts response
import requests
import json

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer prod_4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
r = requests.post("https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page=", data=json.dumps(values), headers=headers)

print(r.text)
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/shipment/v1/shipments?easyship_shipment_id=&platform_order_number=&shipment_state=&pickup_state=&delivery_state=&label_state=&created_at_from=&created_at_to=&confirmed_at_from=&confirmed_at_to=&per_page=&page=');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Response


{
    "total_pages": 2,
    "current_page": 1,
    "shipments": [
        {
            "created_at": "2016-12-15T08:35:11.938Z",
            "updated_at": "2016-12-15T08:35:12.079Z",
            "easyship_shipment_id": "ESSG1905565",
            "destination_name": "Aloha Chen",
            "destination_address_line_1": "300 Park Avenue",
            "destination_address_line_2": null,
            "destination_city": "New York",
            "destination_state": "NY",
            "destination_postal_code": "10022",
            "destination_phone_number": "+1 234-567-890",
            "destination_email_address": "api-support@easyship.com",
            "order_notes": "",
            "platform_order_number": "#1234",
            "platform_name": "Amazon",
            "total_customs_value": 100,
            "total_actual_weight": 1.2,
            "total_dimensional_weight": 0.6,
            "total_volumetric_weight": 1.2,
            "is_insured": false,
            "currency": "SGD",
            "label_state": "generated",
      			"label_url": "https://s3-ap-southeast-1.amazonaws.com/alohatesting/label_fixture/ESTEST00000_label.pdf",
      			"tracking_number": "TEST12345678",
			      "tracking_page_url": "/shipment-tracking/ESSG5051899",
      			"label_generated_at": "2017-10-13T02:26:19.724Z",
            "origin_country": {
                "name": "Singapore",
                "alpha2": "SG"
            },
            "destination_country": {
                "name": "United States",
                "alpha2": "US"
            },
            "items": [
                {
                    "id": "a918ff21-fe35-4cf0-bf48-a9ff5335d20e",
                    "description": "Silk dress",
                    "sku": "test",
                    "width": 15,
                    "length": 20,
                    "height": 10,
                    "actual_weight": 1.2,
                    "dimensional_weight": 0.6,
                    "volumetric_weight": 1.2,
                    "declared_customs_value": 100,
                    "declared_currency": "SGD",
                    "origin_customs_value": 100,
                    "origin_currency": "SGD",
                    "category": "fashion"
                }
            ],
            "box": {
                "name": null,
                "length": 20,
                "width": 15,
                "height": 10
            },
            "selected_courier": {
              "id": "2a17f7aa-51f7-4d36-bca8-e77c164cb52a",
              "name": "DHL Express",
              "min_delivery_time": 2,
              "max_delivery_time": 3,
              "shipment_charge": 284.9,
              "fuel_surcharge": 32.05125,
              "remote_area_surcharge": 0,
              "shipment_charge_total": 316.95125,
              "warehouse_handling_fee": 0,
              "insurance_fee": 0,
              "import_tax_charge": 0,
              "import_duty_charge": 0,
              "ddp_handling_fee": 0,
              "total_charge": 316.95,
              "is_above_threshold": false,
              "effective_incoterms": "DDU",
              "estimated_import_tax": 0,
              "estimated_import_duty": 0,
              "courier_does_pickup": false,
              "courier_dropoff_url": "https://www.easyship.com/drop-off/dhl/hk",
							"available_handover_options": "dropoff",
              "courier_remarks": null,
              "payment_recipient": "Easyship"
            },
            "rates": [
                {
                    "courier_id": "462e4de9-0762-4c71-9cad-d6495ce364fb",
                    "courier_name": "DHL Express",
                    "min_delivery_time": 2,
                    "max_delivery_time": 3,
                    "value_for_money_rank": 1,
                    "delivery_time_rank": 1,
                    "shipment_charge": 68.082,
                    "fuel_surcharge": 8.51025,
                    "remote_area_surcharge": null,
                    "shipment_charge_total": 76.59225,
                    "warehouse_handling_fee": 0,
                    "insurance_fee": 0,
                    "ddp_handling_fee": 0,
                    "import_tax_charge": 0,
                    "import_duty_charge": 0,
                    "total_charge": 76.59,
                    "is_above_threshold": false,
                    "effective_incoterms": "DDU",
                    "estimated_import_tax": 0,
                    "estimated_import_duty": 0,
                    "courier_does_pickup": true,
                    "courier_dropoff_url": null,
                    "tracking_rating": 3,
                    "easyship_rating": 4.4,
                    "courier_remarks": null,
                    "payment_recipient": "Easyship"
                }
            ]
        },
        {
            "created_at": "2016-12-15T08:28:46.027Z",
            "updated_at": "2016-12-15T08:28:46.167Z",
            "easyship_shipment_id": "ESSG0658253",
            "destination_name": "Aloha Chen",
            "destination_address_line_1": "300 Park Avenue",
            "destination_address_line_2": null,
            "destination_city": "New York",
            "destination_state": "NY",
            "destination_postal_code": "10022",
            "destination_phone_number": "+1 234-567-890",
            "destination_email_address": "api-support@easyship.com",
            "order_notes": "",
            "platform_order_number": "#1234",
            "platform_name": "Amazon",
            "total_customs_value": 100,
            "total_actual_weight": 1.2,
            "total_dimensional_weight": 0.6,
            "total_volumetric_weight": 1.2,
            "is_insured": false,
            "currency": "SGD",
            "effective_incoterms": "DDU",
            "origin_country": {
                "name": "Singapore",
                "alpha2": "SG"
            },
            "destination_country": {
                "name": "United States",
                "alpha2": "US"
            },
            "items": [
                {
                    "id": "0f921583-26d4-4341-bce7-0995237ffa5c",
                    "description": "Silk dress",
                    "sku": "test",
                    "width": 15,
                    "length": 20,
                    "height": 10,
                    "actual_weight": 1.2,
                    "dimensional_weight": 0.6,
                    "volumetric_weight": 1.2,
                    "declared_customs_value": 100,
                    "declared_currency": "SGD",
                    "origin_customs_value": 100,
                    "origin_currency": "SGD",
                    "category": "fashion"
                }
            ],
            "box": {
                "name": null,
                "length": 20,
                "width": 15,
                "height": 10
            },
            "selected_courier": {
              "id": "2a17f7aa-51f7-4d36-bca8-e77c164cb52a",
              "name": "DHL Express",
              "min_delivery_time": 2,
              "max_delivery_time": 3,
              "shipment_charge": 284.9,
              "fuel_surcharge": 32.05125,
              "remote_area_surcharge": 0,
              "shipment_charge_total": 316.95125,
              "warehouse_handling_fee": 0,
              "insurance_fee": 0,
              "import_tax_charge": 0,
              "import_duty_charge": 0,
              "ddp_handling_fee": 0,
              "total_charge": 316.95,
              "is_above_threshold": false,
              "effective_incoterms": "DDU",
              "estimated_import_tax": 0,
              "estimated_import_duty": 0,
              "courier_does_pickup": false,
              "courier_dropoff_url": "https://www.easyship.com/drop-off/dhl/hk",
							"available_handover_options": "dropoff",
              "courier_remarks": null,
              "payment_recipient": "Easyship"
            },
            "rates": [
                {
                    "courier_id": "462e4de9-0762-4c71-9cad-d6495ce364fb",
                    "courier_name": "DHL Express",
                    "min_delivery_time": 2,
                    "max_delivery_time": 3,
                    "value_for_money_rank": 1,
                    "delivery_time_rank": 1,
                    "shipment_charge": 68.082,
                    "fuel_surcharge": 8.51025,
                    "remote_area_surcharge": null,
                    "shipment_charge_total": 76.59225,
                    "warehouse_handling_fee": 0,
                    "insurance_fee": 0,
                    "ddp_handling_fee": 0,
                    "import_tax_charge": 0,
                    "import_duty_charge": 0,
                    "total_charge": 76.59,
                    "is_above_threshold": false,
                    "effective_incoterms": "DDU",
                    "estimated_import_tax": 0,
                    "estimated_import_duty": 0,
                    "courier_does_pickup": true,
                    "courier_dropoff_url": null,
                    "tracking_rating": 3,
                    "easyship_rating": 4.4,
                    "courier_remarks": null,
                    "payment_recipient": "Easyship"
                },
                {
                    "courier_id": "57ff5ec4-39cf-47cf-804f-71dee3b6402d",
                    "courier_name": "UPS",
                    "min_delivery_time": 2,
                    "max_delivery_time": 5,
                    "value_for_money_rank": 2,
                    "delivery_time_rank": 2,
                    "shipment_charge": 52.122,
                    "fuel_surcharge": 6.384945,
                    "remote_area_surcharge": 0,
                    "shipment_charge_total": 58.506945,
                    "warehouse_handling_fee": 0,
                    "insurance_fee": 0,
                    "ddp_handling_fee": 0,
                    "import_tax_charge": 0,
                    "import_duty_charge": 0,
                    "total_charge": 58.51,
                    "is_above_threshold": false,
                    "effective_incoterms": "DDU",
                    "estimated_import_tax": 0,
                    "estimated_import_duty": 0,
                    "courier_does_pickup": true,
                    "courier_dropoff_url": null,
                    "tracking_rating": 3,
                    "easyship_rating": 4.8,
                    "courier_remarks": null,
                    "payment_recipient": "Easyship"
                }
            ]
        }
    ]
}
Suggest Edits

Update a shipment

 

Header Auth

 Authentication is required for this endpoint.
patchhttps://api.easyship.com/shipment/v1/shipments/easyship_shipment_id

Path Params

easyship_shipment_id
string
required

Shipment ID provided by Easyship. Example: ESHK0001785

Body Params

platform_name
string

Sales platform name. Maximum: 200 Characters

platform_order_number
string

Order number on the sales platform. This number can be used to track the associated shipment. Maximum: 200 characters

taxes_duties_paid_by
string

Taxes & Duties paid by. Allowed values: Sender, Receiver. Default: Sender

is_insured
boolean

Optional, shipment will include insurance fee. Default: false

selected_courier_id
string

Optional, courier will be selected by default (applies if you integrate with Rate API). Default: null

destination_country_alpha2
string

Destination Country ISO 3166-1 alpha-2 (see list of country alpha2 codes)

destination_city
string

Destination City

destination_postal_code
string

Destination postal code. Mandatory for most countries (if not applicable, leave null or 0)

destination_state
string

Destination state. Mandatory for some countries (AU, CA, CN, MX, MY, USA)

destination_name
string

Receiver's name. Maximum: 30 characters

destination_address_line_1
string

Receiver's address line 1. Maximum: 50 characters

destination_address_line_2
string

Receiver's address line 2. Maximum: 50

destination_phone_number
string

Receiver's phone number. Mandatory for most couriers to facilitate the delivery. Maximum: 50 characters

destination_email_address
string

Receiver's email. Required to send notifications to the receiver to track their package; mandatory for some couriers to facilitate the delivery. Maximum: 100 characters

items
array of objects

Array of all shipment items

description
sku
actual_weight
height
width
length
category
declared_currency
declared_customs_value
items array object
type
description

description

string

Name or description of item

sku

string

Stock Keeping Unit of item.

actual_weight

float

Actual weight of item in KG

height

float

Actual height of item in cm

width

float

Actual width of item in cm

length

float

Actual length of item in cm

category

string

Item's category. Allowed values=
mobiles, tablets, computers_laptops, cameras, accessory_no_battery, accessory_battery, health_beauty, fashion, watches, home_appliances, home_decor, toys, sport, luggage, audio_video, documents, jewelry, dry_food_supplements, books_collectionables, pet_accessory, gaming

declared_currency

string

Items customs value currency:
See supported currencies
Must be uppercase

declared_customs_value

float

Items customs value

curl --request PATCH \
  --url https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id");

xhr.send(data);
import requests

url = "https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl - -include \
     - -request PATCH \
     - -header "Content-Type: application/json" \
     - -header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
     - -data-binary "{
  \"platform_name\": \"Amazon\",
  \"platform_order_number\": \"#1234\",
  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",
  \"destination_country_alpha2\": \"US\",
  \"destination_city\": \"New York\",
  \"destination_postal_code\": \"10022\",
  \"destination_state\": \"NY\",
  \"destination_name\": \"Aloha Chen\",
  \"destination_address_line_1\": \"300 Park Avenue\",
  \"destination_address_line_2\": null,
  \"destination_phone_number\": \"+1 234-567-890\",
  \"destination_email_address\": \"api-support@easyship.com\",
  \"items\": [
    {
      \"description\": \"Silk dress\",
      \"sku\": \"test\",
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"fashion\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}" \
'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}'
var request = require('request');

request({
  method: 'PATCH',
  url: 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  },
  body: "{  \"platform_name\": \"Amazon\",  \"platform_order_number\": \"#1234\",  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",  \"destination_country_alpha2\": \"US\",  \"destination_city\": \"New York\",  \"destination_postal_code\": \"10022\",  \"destination_state\": \"NY\",  \"destination_name\": \"Aloha Chen\",  \"destination_address_line_1\": \"300 Park Avenue\",  \"destination_address_line_2\": null,  \"destination_phone_number\": \"+1 234-567-890\",  \"destination_email_address\": \"api-support@easyship.com\",  \"items\": [    {      \"description\": \"Silk dress\",      \"sku\": \"test\",      \"actual_weight\": 1.2,      \"height\": 10,      \"width\": 15,      \"length\": 20,      \"category\": \"fashion\",      \"declared_currency\": \"SGD\",      \"declared_customs_value\": 100    }  ]}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "platform_name": "Amazon",
  "platform_order_number": "#1234",
  "selected_courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
  "destination_country_alpha2": "US",
  "destination_city": "New York",
  "destination_postal_code": "10022",
  "destination_state": "NY",
  "destination_name": "Aloha Chen",
  "destination_address_line_1": "300 Park Avenue",
  "destination_address_line_2": null,
  "destination_phone_number": "+1 234-567-890",
  "destination_email_address": "api-support@easyship.com",
  "items": [
    {
      "description": "Silk dress",
      "sku": "test",
      "actual_weight": 1.2,
      "height": 10,
      "width": 15,
      "length": 20,
      "category": "fashion",
      "declared_currency": "SGD",
      "declared_customs_value": 100
    }
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.patch 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "platform_name": "Amazon",
    "platform_order_number": "#1234",
    "selected_courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
    "destination_country_alpha2": "US",
    "destination_city": "New York",
    "destination_postal_code": "10022",
    "destination_state": "NY",
    "destination_name": "Aloha Chen",
    "destination_address_line_1": "300 Park Avenue",
    "destination_address_line_2": null,
    "destination_phone_number": "+1 234-567-890",
    "destination_email_address": "api-support@easyship.com",
    "items": [
      {
        "description": "Silk dress",
        "sku": "test",
        "actual_weight": 1.2,
        "height": 10,
        "width": 15,
        "length": 20,
        "category": "fashion",
        "declared_currency": "SGD",
        "declared_customs_value": 100
      }
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}', data=values, headers=headers)
request.get_method = lambda: 'PATCH'

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"platform_name\": \"Amazon\",
  \"platform_order_number\": \"#1234\",
  \"selected_courier_id\": \"b8d528a7-a2d4-4510-a7ac-11cbbb6542cd\",
  \"destination_country_alpha2\": \"US\",
  \"destination_city\": \"New York\",
  \"destination_postal_code\": \"10022\",
  \"destination_state\": \"NY\",
  \"destination_name\": \"Aloha Chen\",
  \"destination_address_line_1\": \"300 Park Avenue\",
  \"destination_address_line_2\": null,
  \"destination_phone_number\": \"+1 234-567-890\",
  \"destination_email_address\": \"api-support@easyship.com\",
  \"items\": [
    {
      \"description\": \"Silk dress\",
      \"sku\": \"test\",
      \"actual_weight\": 1.2,
      \"height\": 10,
      \"width\": 15,
      \"length\": 20,
      \"category\": \"fashion\",
      \"declared_currency\": \"SGD\",
      \"declared_customs_value\": 100
    }
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('PATCH', 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'platform_name': 'Amazon',
  'platform_order_number': '#1234',
  'selected_courier_id': 'b8d528a7-a2d4-4510-a7ac-11cbbb6542cd',
  'destination_country_alpha2': 'US',
  'destination_city': 'New York',
  'destination_postal_code': '10022',
  'destination_state': 'NY',
  'destination_name': 'Aloha Chen',
  'destination_address_line_1': '300 Park Avenue',
  'destination_address_line_2': null,
  'destination_phone_number': '+1 234-567-890',
  'destination_email_address': 'api-support@easyship.com',
  'items': [
    {
      'description': 'Silk dress',
      'sku': 'test',
      'actual_weight': 1.2,
      'height': 10,
      'width': 15,
      'length': 20,
      'category': 'fashion',
      'declared_currency': 'SGD',
      'declared_customs_value': 100
    }
  ]
};

request.send(JSON.stringify(body));

Response

{
    "shipment" => {
        "created_at": "2016-11-23T04:52:24.559Z",
        "updated_at": "2016-11-23T04:52:30.386Z",
        "easyship_shipment_id": "ESHK2325803",
        "destination_name": "Aloha Chen",
        "destination_address_line_1": "300 Park Avenue",
        "destination_address_line_2": null,
        "destination_city": "New York",
        "destination_state": "NY",
        "destination_postal_code": "10022",
        "destination_phone_number": "+1 234-567-890",
        "destination_email_address": "api-support@easyship.com",
        "platform_name": "Amazon",
        "platform_order_number": "#1234",
        "total_customs_value": 573.06,
        "total_actual_weight": 1.2,
        "total_dimensional_weight": 0.6,
        "total_volumetric_weight": 1.2,
        "is_insured": false,
        "currency": "HKD",
        "origin_country": {
            "name": "Hong Kong",
            "alpha2": "HK"
        },
       "destination_country": {
            "name": "United States",
            "alpha2": "US"
        },
        "items": [
            {
                "id": "00015b1f-0cda-4dc5-ae64-b920ff9f2d25",
                "description": "Silk dress",
                "sku": "test-123",
                "width": 15.0,
                "length": 20.0,
                "height": 10.0,
                "actual_weight": 1.2,
                "dimensional_weight": 0.6,
                "volumetric_weight": 1.2,
                "declared_customs_value": 100.0,
                "declared_currency": "SGD",
                "origin_customs_value": 573.06,
                "origin_currency": "HKD",
                "category": "fashion"
            }
        ],
        "box": {
            "name": null,
            "length": 20,
            "width": 15,
            "height": 10
        },
        "selected_courier": {
          "id": "2a17f7aa-51f7-4d36-bca8-e77c164cb52a",
          "name": "DHL Express",
          "min_delivery_time": 2,
          "max_delivery_time": 3,
          "shipment_charge": 284.9,
          "fuel_surcharge": 32.05125,
          "remote_area_surcharge": 0,
          "shipment_charge_total": 316.95125,
          "warehouse_handling_fee": 0,
          "insurance_fee": 0,
          "import_tax_charge": 0,
          "import_duty_charge": 0,
          "ddp_handling_fee": 0,
          "total_charge": 316.95,
          "is_above_threshold": false,
          "effective_incoterms": "DDU",
          "estimated_import_tax": 0,
          "estimated_import_duty": 0,
          "courier_does_pickup": false,
          "courier_dropoff_url": "https://www.easyship.com/drop-off/dhl/hk",
          "courier_remarks": null,
          "payment_recipient": "Easyship"
        },
        "rates": [
            {
                "courier_id": "b8d528a7-a2d4-4510-a7ac-11cbbb6542cd",
                "courier_name": "UPS",
                "min_delivery_time": 1,
                "max_delivery_time": 3,
                "value_for_money_rank": 1.0,
                "delivery_time_rank": 1.0,
                "shipment_charge": 237.496,
                "fuel_surcharge": 22.56212,
                "remote_area_surcharge": 0,
                "shipment_charge_total": 260.05812,
                "warehouse_handling_fee": 0.0,
                "insurance_fee": 0.0,
                "ddp_handling_fee": 0.0,
                "import_tax_charge": 0.0,
                "import_duty_charge": 0.0,
                "total_charge": 260.06,
                "is_above_threshold": false,
                "effective_incoterms": "DDU",
                "estimated_import_tax": 0,
                "estimated_import_duty": 0,
                "courier_does_pickup": true,
                "courier_dropoff_url": "",
                "tracking_rating": 3.0,
                "easyship_rating":4.3,
                "courier_remarks": null,
                "payment_recipient": "Easyship"
            }
        ]
    }
}
Suggest Edits

Delete a shipment

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://api.easyship.com/shipment/v1/shipments/easyship_shipment_id

Path Params

easyship_shipment_id
string
required

Shipment ID provided by Easyship. Example: ESHK0001785

 
curl --request DELETE \
  --url https://api.easyship.com/shipment/v1/shipments/ESHK0001785
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.easyship.com/shipment/v1/shipments/ESHK0001785' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/shipment/v1/shipments/ESHK0001785")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.easyship.com/shipment/v1/shipments/ESHK0001785");

xhr.send(data);
import requests

url = "https://api.easyship.com/shipment/v1/shipments/ESHK0001785"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Request

curl --include \
     --request DELETE \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}'
var request = require('request');

request({
  method: 'DELETE',
  url: 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.delete 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}', headers=headers)
request.get_method = lambda: 'DELETE'

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('DELETE', 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Response

{
  "status": "Shipment successfully deleted"
}
Suggest Edits

Get a Shipment

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/shipment/v1/shipments/easyship_shipment_id

Path Params

easyship_shipment_id
string
required

Easyship Shipment ID provided when creating the shipment

Query Params

format
string

select the format of the shipping documents (options: URL, PDF, PNG). URL will be a link to a .pdf file, PNG and PDF will be an array of base64 encoded strings

label
string

Page size for the shipping label (options: A4, 4x6). Note that some couriers only offer A4 labels

commercial_invoice
string

Page size for the commercial (options: A4, 4x6). Note that it will only be provided if necessary. Some couriers offer a paperless invoice service.

packing_slip
string

Page size for the packing slip (options: none, A4, 4x6)

curl --include \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6'
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.get 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6', headers
puts response
import requests
import json

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer prod_4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
r = requests.post("https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6", data=json.dumps(values), headers=headers)

print(r.text)
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/shipment/v1/shipments/{easyship_shipment_id}?format=PNG&label=4X6&commercial_invoice=4X6&packip_slip=4X6');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Retrieving Confirmed Shipments

When you issue GET request to the shipment/v1/shipments resource with an easyship_shipment_id that has already been confirmed and had a label purchased, we will also return within the response:
label_state
shipping_documents
tracking_number
tracking_page_url
label_generated_at

curl --request GET \
  --url https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id");

xhr.send(data);
import requests

url = "https://api.easyship.com/shipment/v1/shipments/easyship_shipment_id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Request

Response

{ 
    "created_at": "2016-11-23T04:52:24.559Z",
    "updated_at": "2016-11-23T04:52:30.386Z",
    "easyship_shipment_id": "ESHK2325803",
    "destination_name": "Aloha Chen",
    "destination_address_line_1": "300 Park Avenue",
    "destination_address_line_2": null,
    "destination_city": "New York",
    "destination_state": "NY",
    "destination_postal_code": "10022",
    "destination_phone_number": "+1 234-567-890",
    "destination_email_address": "api-support@easyship.com",
    "order_notes": " ",
    "platform_name": "Amazon",
    "platform_order_number": "#1234",
    "total_customs_value": 573.06,
    "total_actual_weight": 1.2,
    "total_dimensional_weight": 0.6,
    "total_volumetric_weight": 1.2,
    "is_insured": false,
    "currency": "HKD",
    "warehouse_state": "none",
    "origin_country": {
        "name": "Hong Kong",
        "alpha2": "HK"
    },
   "destination_country": {
        "name": "United States",
        "alpha2": "US"
    },
    "items": [
        {
            "id": "00015b1f-0cda-4dc5-ae64-b920ff9f2d25",
            "description": "Silk dress",
            "sku": "test-123",
            "width": 15.0,
            "length": 20.0,
            "height": 10.0,
            "actual_weight": 1.2,
            "dimensional_weight": 0.6,
            "volumetric_weight": 1.2,
            "declared_customs_value": 100.0,
            "declared_currency": "SGD",
            "origin_customs_value": 573.06,
            "origin_currency": "HKD",
            "category": "fashion"
        }
    ],
    "box": {
        "name": null,
        "length": 20,
        "width": 15,
        "height": 10
    },
    "selected_courier": {
      "id": "2a17f7aa-51f7-4d36-bca8-e77c164cb52a",
      "name": "DHL Express",
      "min_delivery_time": 2,
      "max_delivery_time": 3,
      "shipment_charge": 284.9,
      "fuel_surcharge": 32.05125,
      "remote_area_surcharge": 0,
      "shipment_charge_total": 316.95125,
      "warehouse_handling_fee": 0,
      "insurance_fee": 0,
      "import_tax_charge": 0,
      "import_duty_charge": 0,
      "ddp_handling_fee": 0,
      "total_charge": 316.95,
      "is_above_threshold": false,
      "effective_incoterms": "DDU",
      "estimated_import_tax": 0,
      "estimated_import_duty": 0,
      "courier_does_pickup": false,
      "courier_dropoff_url": "https://www.easyship.com/drop-off/dhl/hk",
      "courier_remarks": null,
      "payment_recipient": "Easyship"
    },
    "shipping_documents": {
        "label": {
            "required": true,
            "page_size": "A4",
            "format": "PNG",
            "base64_encoded_strings": [
          "iVBORw0KGgoAAAANSUhEUgAABLAAAAcICAAAAAAJO2eWAAAABGdBTUEAALGP\nC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUw\nAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAEsAAAB\nLABziOlSAACAAElEQVR42u29O67zPNtYzSFEXcrAVdLGTYC/+QtV6Q2kTGV8\nM9AUjAwggKfgKWgKnoKnoCkolkRKPFyXDrZ1783ttfC+z72tA89almiKNO0H\neVyrqv5kgACO0hhTajubW1VdHz+dRNgfs+6wrrU4av/j8Toecx+2FpfhY/38\n+z7uvDw//XRe9+YylUUdXD6vfnpehtb/z2+CkXH3vfIv0eGTeOCfYE5YVdE3\nvXIoj76JDtRDq6uGM8dme7gmQfdN9+wX6G1qspXxKcPrQUzU/SJX5BhjNaR0\nrCSbUmPO0ZYer2lFbeTbeFdYUwFfoy2dsC5jAKe/L6xmbLr3Q1cMp2btp6qV\nPrXX7jI89tL3C3yM8Gj8q2D4JB74J5gR1tnluOiv5GVheVoItxeeGDpL3aY/\ntwirKbWKHGNUhWUe4ZY+vCmSsP18H6uFVY5f3I/u46H/83QcK7XzU3mt6+7L\n7jxuGAMo/twFlHBz2b0X9u5z9adK+OS+AQ5NK3voanxh2U/fKKxbd8t0f9xO\n9oAZYfWt+Ny12msQdL+9fJZ/MWnlOFVF3bd21+qv4fVwTVN0HCrAfl/7FTnG\nqAvrHG4Zcjh+Fwbt5wtZLawq/OgK8NlYTt2/TeHawOM4OKz2r5n737uAhDIq\n3R+mquuTLZC5T4fnV/r9drTfquGnx7NV3upqaNPjk1453RscAmHZT9KBfwNd\nWKVzQTV0QswIa/ouOAYB2O0XL4rmeUzohWraGV0PEc/gz/WzIos+WUFFhueL\nwnK3WJ6wpustbD9fyLvC6m7Hu3+qqQif7jq0fXmXY8u5PCv/bwvr7r7fuwZ6\nGQrpuPDJ3hU1h14u4adnwR6bvmAPfjSH8YmhMr6wwk/BgX8EXVhT0zv0zXRZ\nWF1xpfc7w3b7FNhVxy04ar2wjv2X+PM66OtaqsgZYR3cN80orKlpRe3nG3lb\nWLfhG6HwGtO1r/VneVfjWafn339ZWH0vhS2CmylcySx8Og13p3Zr+OlZov2l\n8/B/ungWrbtv6m5ppwsz/BQc+FdQhVVPWhmUskJYdVBaXusedfH0zKmZ9OWF\nEp2R4qqsGqwiVeSMsK7uFstu8ZtW1H6+kbeFNVT9LXo8OQ87xsMKY4u4qeu/\n2F9Yed2v1XSntfCpcLcGfVsOP9W2aban0hOWf4N19so8/NT+wRusWWFNxbBS\nWI0mrIsr9mcJXp63Sr72Z4QVNOurvZcaTCpW5Iywnt89VZh2T1hh+/lGPiGs\nR/zg0n/qynu8qTVHW/x19OTyR3jUdX0ehWV71K2i9E9jWZTdl3D4qZKuzum+\n6VEUj6kow0/tX7zBmhXWLdiwQlgPTVh3dx/U/xE3a1VYdfh4fvISIlbkjLCe\nJwx9X3aL37Si9vONvC2s4Ssp7OLtv1q68nadWBdT/W1hdbiW6R5Rrn3JzH3y\nFFXFn87SQ8d039Ttnooy/NT+xRssXVhd73hw175CWDdNWK2z36Vz1c345bhW\nWOPOQ3fPLFbknLDcLVZy59jG7ecbeVtYw0N/Eezvb7jr/sti2Hwyt+8Rli0S\n13k+82ksi2MgrP5TV+KPqrr4l+LNfXU/7xCe38LjCeGn4MC/g97pfjKm8MfQ\nrhBWqXS6u377LtBz35CDgVkbhVVqFTkrLHeLJQkrak1fyGphHUrLvZ2E1dzK\nYbBepKHua6orb9eJVZim/vM3sf7X4LGqCvu9P/PpYEfqNH3DDT89b0773ovC\ne9yZfnU9BYYLPwUH/h10YQ1jk8qrU8KziF1jPYrCepxNYHRfP+7voUcx6MQK\nhDVeD2UywOAQ3CpLFTkvLHuLJQorbE1fyPaR7tHwxGGkXSKsaijv4Yvs/izv\nLxJW/x6SsT0Rc5/Otouk6i/F8FP3G+vA2FX7GHtU6v4vV+jhp+DAP8TMSPdh\n9PdTQkMJBMPSlZHuRhh37v9tn70q/9ErENZE8sQXP+lXaZSzwrK3WKKwotb0\nfbwtrDJ+G2L4aIXV9x93XVjfJCw3Gnl4f2LmU23cAKzu1PBTP1K6aS/FNOKm\n8p5orl6hh5+CA/8Qsy8/387FNLZ8jbCuYdCJsGzv9s3XzKvCSipySVjDaCtR\nWGFr+kJe7cMaXlI4l/aNg0RY16G8h0vnZLu0/jauVT3v6I9121yGG/u5T127\nP3SPLcPH4JO7+i7TJVO4HuDbcAdlCz38FBz4l5gVVlcM3euq/fdjqoFRWPZB\n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\nwkpzgbB+DITVzoaIsBBWmguE9WMgrHY2RISFsNJcIKwfA2G1syEiLISV5gJh\n/Rg7CatNGkB8mQdbpAurlU6SLqP0IlWa/OpDZi8T6ZLQdkoBtfF12CoSSS6G\n+awrBlAiUuprpr6TWGZaxex3gVrcaYxL5WokSYS7ZoLQ6zsNd+nCQFj/CISF\nsLzQZ+o7iWWmVSAshLUTCAtheaHP1HcSy0yrQFgIaycQFsLyQp+p7ySWmVaB\nsD4qLLPIW8GvjOPjUb6Wzq05aBEWwpqtb7mU0tLXmpkUip47JXCzIgi9vtNw\nly4MhPWPQFgIywt9pr6TWGZaBcJCWDuBsBCWF/pMfSexzLQKhIWwdgJhISwv\n9Jn6TmKZaRUIK3dhLR/8fpSvpXNrKbUIC2HN1rdcSmnpa81MCkXPnRK4WRGE\nXt9puEsXBsL6RyAshOWFPlPfSSwzrQJhIaydQFgIywt9pr6TWGZaBcJCWDuB\nsBCWF/pMfSexzLQKhIWwdgJhISwv9Jn6TmKZaRUIC2HtxGeF1YbtJgkljaIN\n6jWNOTljJpXeIVFzbOPWM1M9ypWqFIpUEG3yMT3D+6NNGnuSrvTajJImlML6\nKzwsF/9oJcdizEnpik1qVYmI+ZaaolgQSZOaaU9LVWri5q1dGAjrH4Gw4liS\njLZzjVUqiDb5OHt5tkljT9IVpVK8TuNSQFheY9Da01KVmrh5axcGwvpHIKw4\nliSj7VxjlQqiTT7OXp5t0tiTdEWpFK/TuBQQltcYtPa0VKUmbt7ahfGnhbVT\nlK+lc2sptQhrpjiirCmpDP9ok8aepCtKZZhdhCU1v7AxaO1pqUpN3Ly1C+Nf\nCuutsF6JQ8nxj4Cw4liSjLZzjVUqiDb5OHt5tkljT9IVpVK8TuNSQFheY9Da\n01KVmrh5axcGwvpHIKw4liSj7VxjlQqiTT7OXp5t0tiTdEWpFK/TuBQQltcY\ntPa0VKUmbt7ahfHnhbVLpK+kc20OlCs0qVGxASpFLbWudraBIaz4Y1LMUvwI\nS2lPS1Vq4uatXRgI6x+BsOJYkoy2c41VKog2+Th7ebZJY0/SFaVSvE7jUkBY\nXmPQ2tNSlZq4eWsXBsL6RyCsOJYko+1cY5UKok0+zl6ebdLYk3RFqRSv07gU\nEJbXGLT2tFSlJm7e2oWBsP4RCCuOJcloO9dYpYJok4+zl2ebNPYkXVEqxes0\nLgWE5TUGrT0tVamJm7d2YfwaYa08Vmow6nmLkf5DEFYcS5LRdq6xSgXRJh/T\nM7w/2qSxJ+mKUilep0n7U4pJL32ElVSpiZu3dmEgrH8EwopjSTLazjVWqSDa\n5GN6hvdHmzT2JF1RKsXrNGl/SjHppY+wkio1cfPWLox/KSy1Sub3zgW3LKxV\nzJ/yVhmMAW8tJa1pJM08qjopyUa4qlqpGXqHtEnTSf9Oooh2SskxYezKaUla\nozP1sLS4pFy26oW7JYqk9M3s5Rt+FEssPE6vT+1kJdFp7pR8J+lO86KnToli\n/gtKKmDlskhbykxJbcMsMH/cmuAQFsJCWErRJolOc6fkO0l3mhc9dUoUf0dY\ny0esCkxoTvIR4mFya3q7BLyQtpZSm1wMyQlpXYnFgLAQlpI7Jd9JutO86KlT\nokBYSycgLC0bSbuWDmmlq7ZNLpIwCqXJpdlt4wacNsMwra10vUlhaXEp9Rme\n91IUSeknnxBWUt9KTUsbossibSkzJbUNs8DaY1YcpjQnIUHTP2kjmW1a74Gw\n4tIOc5E2wzCtrXS9SWFpcSk1Gp73UhRJ6SefEFZS30pNSxuiyyJtKTMltQ2z\nwNpjVhymNCchQdM/aSOZbVrvgbDi0g5zkTbDMK2tdL1JYWlxKTUanvdSFEnp\nJ58QVlLfSk1LG6LLIm0pMyW1DbPAGg+tC0lsGXKCwj/i4KWDPwLCaqPzw1yk\nzTBMaytdb1JYWlxSLpOoX4oiKf3kE8JK6lupaWlDdFmkLWWmpLZhtqGcuCmk\n5QSlfwpVr16Xr5fF1lJqk4shOSGtK6UY0ksGYYn1/FIUSeknnxBWUt9KTUsb\nossibSkzJbUNsw3lxE0hLSco/VOoeoSFsFZHkZR+8glhJfWt1LS0Ibos0pYy\nU1LbMFtQT0zCmQt/OUHyB3uJttret0FYbXR+mIu0GYZpbaXrTQpLi0vKZRL1\nS1EkpZ98QlhJfSs1vXB5Iyx/n37oB0BYbXR+mIu0GYZpbaXrTQpLi0vKZRL1\nS1EkpZ98QlhJfSs1vXB5/1ZhzZ86d9hyIFpTSc58K+tpiFtLqU0uhuSEtK7k\nwkRYJpZAesjrUSSln3xCWEl9KzUtbYgui7SlzJTUNswW1p86d9hyIFpTSc58\nK+tpiFtLqU0uhuSEtK7kwkRYJpZAesjrUSSln3xCWEl9KzUtbYgui7SlzJTU\n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\nACAbEBYAZAPCAoBsQFgAkA0ICwCyAWEBQDYgLADIBoQFANmAsAAgGxAWAGQD\nwgKAbEBYAJANCAsAsgFhAUA2ICwAyAaE9du41/Xjp9PwJk1d3386DfA3+cPC\nupbGHM7+xX85hlu6I0x5jc4Jtzju58IUp3pmw5OmquLQwhTMnWyDKIx5KMes\nSoMUdRVSL6TuyaM/UN8gnTzmvjEuD0Kq3iheLSMnIdSwKvSI04ykMUvtJi05\nMW1x0dXeEV4AUcMBlT8rrKZrok+KsSE0x3CL+2yO91bbMnK1eyp1g91YzqSg\nnT15oHrGrhyzLg1S1Cakmk9dx7nfqW2QT55y/zz4LFTJu8U7mxFTNlpV6BEL\nGUliTtqNUnJC2tKiK70jPCcGDQdm+LPCOo7twjbSJt4yfS6aVtniuI57LsqG\nntJvd0kK9NA8njdYV/mYlWmQohauJT11fWEVkbDCDfLJU+5vRrrFert4xYxM\nCjg2YmLmIk4zksQ8027uS2lLi04RVomwVvJXhVVN7eIgb/E+m1Mrb3E8imnP\nQ9zQ0zX2Uk+BGppHF0QjHrMyDWLU6bWkp84PQdkgn+znvhBu+94u3qWM+FH6\nidEjTjOSxjzTbsKS04QVFJ0XvCesoOHAHH9UWMO32nH4PuvvWB79n2XZ77g9\nNxy6P4qy/2f4rky3OPqb+sOw5yxu6Oi/nEs1BXpoHkd7TaXHrEuDHHVyLc2k\nrh2LwheWv0E+Ocj98yItxDDfKF4xI0Ooh7K/7Znun4LEqBELGUlijtuNXnKa\nsIKy9I+oxdTCLH9UWH0TuNj7+fGLsXi21nsxNKa6/75tbBPtWle6ZaQ75/nA\nMTwdNNKGur4MjwqlmgI9tIm7uwrSY5bToGe+HDkOV8pM6sYQfGEFG9KTk9zf\n7beCx1vF60gyUtu0DIm6SYnRIxZKIYk5bjd6ySVpE4ru3svPcheLDmb5o8I6\nuRbwcN+qB6eCathVjd/IB3tsusXRN/mHC+0mbJi+OUs1BWpoHpXzX3LMijS0\ni1EPEZzmDxkK4BAIK9iQnpzkvrvww6ev94o3xWakGsM6OxvFidEjTjOSxhy3\nm4WS89MmFF1tTHTFpUUHc/xRYY3NrO/lvAxfbcNDSlP3o4ROJui6aqUtju7z\n8NPd0YwdJ8GGtN0lKdBDC9NdysesSEO7GHV/lRWP2UPa/rIqgjIIN6Qnp1fd\n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\nSUVORK5CYII=\n"
            ],
            "url": null,
            "message": "This label is not available in 4X6"
        },
        "commercial_invoice": {
            "required": false,
            "page_size": null,
            "format": null,
            "base64_encoded_strings": [],
            "url": null
        },
        "packing_slip": {
            "required": true,
            "page_size": "4X6",
            "format": "PNG",
            "base64_encoded_strings": [
                "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AIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABiEFgAxCCwAIhBYAEQg8ACIAaBBUAMAguAGAQWADEILABi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"
            ],
            "url": null
        },
        "battery_form": {
            "required": false,
            "page_size": null,
            "format": null,
            "base64_encoded_strings": [],
            "url": null
        },
        "battery_caution_label": {
            "required": false,
            "page_size": null,
            "format": null,
            "base64_encoded_strings": [],
            "url": null
        }
    }
}
Suggest Edits

Update a Shipment's Warehouse Status

 

Header Auth

 Authentication is required for this endpoint.
patchhttps://api.easyship.com/shipment/v1/shipments/update_warehouse_state

Body Params

easyship_shipment_ids
array of strings

All shipments to be updated, referred to by their easyship_shipment_id

warehouse_state
string

New status for the shipments. Values: created, packed, shipped

eFulfilment clients only

This endpoint is only available for shipments fulfilled at one of the Easyship integrated warehouses. Please contact us for more information.

status
description

created

An order has been created in the warehouse management system and is ready to be fulfilled
Note: This update is not needed if a success response is sent when Easyship sends the label callback

packed

The order has been processed and packed and is waiting to be handed over to the courier

cancelled

The order has been cancelled in the warehouse management system.
Note: This status update will trigger Easyship to cancel the shipment.

shipped

The order has been handed over to the courier and has left the warehouse.
Note: This status update will trigger the following:

  • if the shipment was created through a store integration, Easyship will mark the order as "shipped" on the store
  • If the company has the email notification option turned on, Easyship will send an email notification to the receiver, with the tracking number and the tracking page URL
  • Easyship will start tracking the shipment, and update its status based on the courier's tracking events

Status updated to "shipped"

Updating a shipment's warehouse_state to "shipped" will trigger:

  • Easyship will start tracking the shipment in real time
  • if the shipment was sync'ed from a store integration (e.g. Magento, Shopify...), Easyship will automatically push a status update to the store, including the tracking number and tracking page URL
  • if you opted in for the email notifications to the receiver, Easyship will send a email to the receiver with the tracking page URL
curl --include \
     --request PATCH \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f" \
     --data-binary "{
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ],
  \"warehouse_state\": \"created\"
}" \
'https://api.easyship.com/shipment/v1/shipments/update_warehouse_state'
var request = require('request');

request({
  method: 'PATCH',
  url: 'https://api.easyship.com/shipment/v1/shipments/update_warehouse_state',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
  },
  body: "{  \"easyship_shipment_ids\": [    \"ESUS3171766\"  ]}, \"warehouse_state\": \"created\""
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "easyship_shipment_ids": [
    "ESUS3171766"
  ],
	"warehouse_state": "created"
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}

response = RestClient.patch 'https://api.easyship.com/shipment/v1/shipments/update_warehouse_state', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "easyship_shipment_ids": [
      "ESUS3171766"
    ]
    "warehouse_state": "created"
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}
request = Request('https://api.easyship.com/shipment/v1/shipments/update_warehouse_state', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/shipment/v1/shipments/update_warehouse_state");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ],
  \"warehouse_state\": \"created\"
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('PATCH', 'https://api.easyship.com/shipment/v1/shipments/update_warehouse_state');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'easyship_shipment_ids': [
    'ESUS3171766'
  ],
  'warehouse_state': 'created'
};

request.send(JSON.stringify(body));
A binary file was returned

You couldn't be authenticated

{
   "message": [
     {
       "easyship_shipment_id": "ESUS3171766", 
       "warehouse_state_updated": "true"
     }
   ]
}
 
Suggest Edits

Labels

/label/v1/labels

 

With the Label resource, you can confirm a Shipment that was created using the Shipment API. Calling Buy Labels will confirm a Shipment with the selected Courier and begin generating the Label & Shipping Documents after checking your account’s balance is sufficient.

If your Shipment doesn’t have a Courier assigned to it yet, you can specify a courier_id to the Label resource to choose your Courier and confirm your Shipment. If there is no assigned Courier and you don’t include a courier_id, we will assign the best value for money Courier to your Shipment.

Asynchronous response

The Label & Shipping Documents will be generated asynchronously.
If you specified a Callback URL with the Company API, or through the Easyship Dashboard, this URL will be called when the documents are ready.

Whilst these documents are being generated, the label_state will be set to pending. The possible states are not_created, pending, failed and generated.

For more information on asynchronous API response handling, please see the Asynchronous Responses section of the documentation.

 
Suggest Edits

Confirm and buy labels

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/label/v1/labels

Body Params

shipments
array of objects
easyship_shipment_id
courier_id
attribute
type
description

easyship_shipment_id

string

Easyship Shipment ID provided when creating the shipment

courier_id

string

Courier ID in case you need to overwrite the one suggested by default, example: b4552ed2-ae95-4647-9746-5790bf252c7f

curl --request POST \
  --url https://api.easyship.com/label/v1/labels
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/label/v1/labels' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/label/v1/labels")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/label/v1/labels");

xhr.send(data);
import requests

url = "https://api.easyship.com/label/v1/labels"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Request

curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
     --data-binary "{
  \"shipments\": [
    {
      \"easyship_shipment_id\": \"ESUS3171766\",
      \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\"
    },
    {
      \"easyship_shipment_id\": \"ESUS2513756\"
    }
  ]
}" \
'https://api.easyship.com/label/v1/labels'
var request = require('request');

request({
  method: 'POST',
  url: 'https://api.easyship.com/label/v1/labels',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  },
  body: "{  \"shipments\": [    {      \"easyship_shipment_id\": \"ESUS3171766\",      \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\"    },    {      \"easyship_shipment_id\": \"ESUS2513756\"    }  ]}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "shipments": [
    {
      "easyship_shipment_id": "ESUS3171766",
      "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f"
    },
    {
      "easyship_shipment_id": "ESUS2513756"
    }
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.post 'https://api.easyship.com/label/v1/labels', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "shipments": [
      {
        "easyship_shipment_id": "ESUS3171766",
        "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f"
      },
      {
        "easyship_shipment_id": "ESUS2513756"
      }
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/label/v1/labels', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/label/v1/labels");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"shipments\": [
    {
      \"easyship_shipment_id\": \"ESUS3171766\",
      \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\"
    },
    {
      \"easyship_shipment_id\": \"ESUS2513756\"
    }
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/label/v1/labels');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'shipments': [
    {
      'easyship_shipment_id': 'ESUS3171766',
      'courier_id': 'b4552ed2-ae95-4647-9746-5790bf252c7f'
    },
    {
      'easyship_shipment_id': 'ESUS2513756'
    }
  ]
};

request.send(JSON.stringify(body));

Response


{
  "message": "Your labels are being generated",
  "errors": [],
  "total_cost": 76,
  "available_balance": 924,
  "labels": [
    {
      "easyship_shipment_id": "ESUS3171766",
      "label_state": "pending",
      "label_url": null,
      "status": "success",
      "tracking_number": null,
      "tracking_page_url": "https://www.easyship.com/shipment-tracking/ESUS3171766"
    },
    {
      "easyship_shipment_id": "ESUS2513756",
      "label_state": "pending",
      "label_url": null,
      "status": "success",
      "tracking_number": null,
      "tracking_page_url": "https://www.easyship.com/shipment-tracking/ESUS2513756"
    }
  ]
}
 

With the Pickup API, you can decide to ask the courier to pickup your shipments or drop off by yourself to the courier nearby.

Before you start to request a pickup, you need to retrieve available pickup options and then use the Request Pickup resource to ask the courier to collect your shipments in your preferred time slot.

If the selected courier doesn't offer collections, you receive regular collections already or you drop the parcels off to the courier, please use Mark as Dropped Off to inform us.

After you request a pickup or mark as dropped off, Easyship will begin tracking your shipments. You can see all checkpoints by using the Track API

Pick-Up Slots

Available Pickup Slots will be calculated for a specific Courier, in local time and for the next 7 days. A Pickup can then be requested using the Request Pickup call.

Request a Pick-Up

When a Pickup is created, a pickup request will be made directly with the Courier, which will return a reference number. The reference number can be used when contacting interacting with the customer service team of the given courier. A pickup slot must be chosen; available pickup slots may be found using the Get Available Pickup Slots call.

Mark As Directly Handed Over

This is the alternative to requesting a Pickup, to be used either when the courier doesn't provide a pickup service, or when a pickup is already scheduled at your warehouse on a regular basis. Marking the shipments as handed over is the key to start the tracking process of those shipments, and to notify the receiver with the tracking information by email.

 
Suggest Edits

Retrieve Available Pick Up Slots

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/pickup/v1/pickup_slots/courier_id

Path Params

courier_id
string
required

Courier ID provided by Easyship. Example: b4552ed2-ae95-4647-9746-5790bf252c7f

Response

curl --request GET \
  --url https://api.easyship.com/pickup/v1/pickup_slots/b4552ed2-ae95-4647-9746-5790bf252c7f
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/pickup/v1/pickup_slots/b4552ed2-ae95-4647-9746-5790bf252c7f' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/pickup/v1/pickup_slots/b4552ed2-ae95-4647-9746-5790bf252c7f")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/pickup/v1/pickup_slots/b4552ed2-ae95-4647-9746-5790bf252c7f");

xhr.send(data);
import requests

url = "https://api.easyship.com/pickup/v1/pickup_slots/b4552ed2-ae95-4647-9746-5790bf252c7f"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f" \
  'https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}'
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}

response = RestClient.get 'https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}
request = Request('https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}', headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/pickup/v1/pickup_slots/{courier_id}');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();
{
  "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f",
  "courier_name": "UPS",
  "message": "This Courier provides a pickup service. The available time slots are shown in local time, for the coming 7 days.",
  "pickup": {
    "provider_name": "UPS",
    "provider_customer_service_phone": "+1 2345 6789",
    "slots": {
      "2017-04-25": [
        {
          "min_time": 17,
          "max_time": 21
        }
      ],
      "2017-04-26": [
        {
          "min_time": 10,
          "max_time": 13
        },
        {
          "min_time": 13,
          "max_time": 17
        },
        {
          "min_time": 17,
          "max_time": 21
        }
      ],
      "2017-04-27": [
        {
          "min_time": 10,
          "max_time": 13
        },
        {
          "min_time": 13,
          "max_time": 17
        },
        {
          "min_time": 17,
          "max_time": 21
        }
      ],
      "2017-04-28": [
        {
          "min_time": 10,
          "max_time": 13
        },
        {
          "min_time": 13,
          "max_time": 17
        },
        {
          "min_time": 17,
          "max_time": 21
        }
      ],
      "2017-04-29": [
        {
          "min_time": 10,
          "max_time": 13
        },
        {
          "min_time": 13,
          "max_time": 17
        }
      ],
      "2017-04-30": [],
      "2017-05-01": [
        {
          "min_time": 10,
          "max_time": 13
        },
        {
          "min_time": 13,
          "max_time": 17
        },
        {
          "min_time": 17,
          "max_time": 21
        },
        {
          "min_time": 23,
          "max_time": 24
        }
      ]
    }
  }
}
Suggest Edits

Request a pickup

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/pickup/v1/pickups

Body Params

courier_id
string

Courier ID provided by Easyship. Example: b4552ed2-ae95-4647-9746-5790bf252c7f

preferred_date
string
required

Preferred pickup data. Example: 2016-12-08

preferred_max_time
string
required

Preferred maximum pickup date &time in local time. Example: 2016-12-08T18:00

preferred_min_time
string
required

Prefer minimum pickup date & time in local time. Example: 2016-12-08T09:00

easyship_shipment_ids
array of strings
required

All shipments to be requested. Shipments must have the same courier and their labels must be pending or generated. Example: ESUS3171766,

 
curl --request POST \
  --url https://api.easyship.com/pickup/v1/pickups
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/pickup/v1/pickups' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/pickup/v1/pickups")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/pickup/v1/pickups");

xhr.send(data);
import requests

url = "https://api.easyship.com/pickup/v1/pickups"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f" \
     --data-binary "{
  \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\",
  \"preferred_date\": \"2016-12-08\",
  \"preferred_max_time\": \"2016-12-08T18:00\",
  \"preferred_min_time\": \"2016-12-08T09:00\",
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ]
}" \
'https://api.easyship.com/pickup/v1/pickups'
var request = require('request');

request({
  method: 'POST',
  url: 'https://api.easyship.com/pickup/v1/pickups',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
  },
  body: "{  \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\",  \"preferred_date\": \"2016-12-08\",  \"preferred_max_time\": \"2016-12-08T18:00\",  \"preferred_min_time\": \"2016-12-08T09:00\",  \"easyship_shipment_ids\": [    \"ESUS3171766\"  ]}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f",
  "preferred_date": "2016-12-08",
  "preferred_max_time": "2016-12-08T18:00",
  "preferred_min_time": "2016-12-08T09:00",
  "easyship_shipment_ids": [
    "ESUS3171766"
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}

response = RestClient.post 'https://api.easyship.com/pickup/v1/pickups', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f",
    "preferred_date": "2016-12-08",
    "preferred_max_time": "2016-12-08T18:00",
    "preferred_min_time": "2016-12-08T09:00",
    "easyship_shipment_ids": [
      "ESUS3171766"
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}
request = Request('https://api.easyship.com/pickup/v1/pickups', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/pickup/v1/pickups");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"courier_id\": \"b4552ed2-ae95-4647-9746-5790bf252c7f\",
  \"preferred_date\": \"2016-12-08\",
  \"preferred_max_time\": \"2016-12-08T18:00\",
  \"preferred_min_time\": \"2016-12-08T09:00\",
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/pickup/v1/pickups');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'courier_id': 'b4552ed2-ae95-4647-9746-5790bf252c7f',
  'preferred_date': '2016-12-08',
  'preferred_max_time': '2016-12-08T18:00',
  'preferred_min_time': '2016-12-08T09:00',
  'easyship_shipment_ids': [
    'ESUS3171766'
  ]
};

request.send(JSON.stringify(body));

Response

{
    "courier_id": "b4552ed2-ae95-4647-9746-5790bf252c7f",
    "courier_name": "UPS",
    "easyship_shipment_ids": [
        "ESUS3171766"
    ],
    "pickup":
        {
            "easyship_pickup_id": "PHK0000001",
            "preferred_min_time": "2016-12-08T09:00",
            "preferred_max_time": "2016-12-08T18:00",
            "pickup_reference_number": "292494AGF4L",
          	"pickup_fee": "0.0",
            "provider_name": "UPS",
            "provider_customer_service_phone": "+1 2345 6789",
            "shipments_count": "1",
            "total_actual_weight": "1.0",
            "pickup_state": "requested",
            "address":
                {
                    "line_1": "123 Test Street",
                    "line_2": "Block 3",
                    "line_3": "Unit 1000",
                    "postal_code": "ABC123",
                    "city": "Hong Kong",
                    "state": null,
                    "country": "Hong Kong",
                    "contact_email": "asd@asd.com",
                    "contact_phone": "+852-1234-5678",
                    "company_name": "Test Plc.",
                    "contact_name": "Foo Bar",
                }
        }
}
Suggest Edits

Mark as directly handed over

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/pickup/v1/direct_handover

Body Params

easyship_shipment_ids
array of strings
required

All shipments to be requested. Shipments must have the same courier and their labels must be pending or generated. Example: ESUS3171766

 
curl --request POST \
  --url https://api.easyship.com/pickup/v1/direct_handover
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/pickup/v1/direct_handover' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/pickup/v1/direct_handover")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/pickup/v1/direct_handover");

xhr.send(data);
import requests

url = "https://api.easyship.com/pickup/v1/direct_handover"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

API Resource URL

https://api.easyship.com

Request

curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f" \
     --data-binary "{
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ]
}" \
'https://api.easyship.com/pickup/v1/direct_handover'
var request = require('request');

request({
  method: 'POST',
  url: 'https://api.easyship.com/pickup/v1/direct_handover',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
  },
  body: "{  \"easyship_shipment_ids\": [    \"ESUS3171766\"  ]}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "easyship_shipment_ids": [
    "ESUS3171766"
  ]
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}

response = RestClient.post 'https://api.easyship.com/pickup/v1/direct_handover', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "easyship_shipment_ids": [
      "ESUS3171766"
    ]
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f'
}
request = Request('https://api.easyship.com/pickup/v1/direct_handover', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/pickup/v1/direct_handover");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"easyship_shipment_ids\": [
    \"ESUS3171766\"
  ]
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/pickup/v1/direct_handover');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 77af10e030c4fc85fc0738fbd5a8945722c261996ae2bfb5a0e5e974d591c83f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'easyship_shipment_ids': [
    'ESUS3171766'
  ]
};

request.send(JSON.stringify(body));

Response

{
  "direct_handover": {
    "easyship_shipment_ids": [
      "ESUS3171766"
    ],
    "pickup_state": "completed"
  }
}
Suggest Edits

Tracking

/track

 

The Track API is used to track the journey of a given Shipment. The response will give the most recent status update for the Shipment as well as a history of all previous Checkpoints.

You are able to get tracking information using your Platform Order Number or Easyship Shipment ID.

Each Checkpoint has a message to indicate what the status of the Shipment was for that Checkpoint. The list of possible status messages are: Pending Tracking Event, Tracking Information Received, In Transit to Customer, Exception, Out For Delivery, Delivered, Cancelled, Pending Refund, Cancelled and Refunded.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/track/v1/status

Query Params

easyship_shipment_id
string

Shipment ID provided by Easyship. If you want to get multiple shipments, use comma (,) to seperate each without spaces ID. Ex: ESHK0001785,ESHK0001786

platform_order_number
string

Order number on the sales platform. You can choose to use either easyship_shipment_id or platform_order_number. If you want to get multiple shipments, use comma (,) to seperate each order number. Ex: #1234,#1235

page
int32

Which page number you want to fetch, default: 1

per_page
int32

Number of Shipments per page to fetch, default: 25, max: 100

 
curl --request GET \
  --url https://api.easyship.com/track/v1/status
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/track/v1/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/track/v1/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/track/v1/status");

xhr.send(data);
import requests

url = "https://api.easyship.com/track/v1/status"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Request

curl --include \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page='
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page=',
  headers: {
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.get 'https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page=', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page=', headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/track/v1/status?easyship_shipment_id=&platform_order_number=&per_page=&page=');

request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Response

{
    "total_page": 1,
    "current_page": 1,
    "shipments": [
      {
        "easyship_shipment_id": "ESHK0001785",
        "platform_order_number": "#1234",
        "status":"Out For Delivery",
      }
    ]  
}
Suggest Edits

Checkpoints

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/track/v1/checkpoints

Query Params

easyship_shipment_id
string

Shipment ID provided by Easyship. If you want to get multiple shipments, use comma (,) to seperate each ID. Ex: ESHK0001785,ESHK0001786

platform_order_number
string

Order number on the sales platform. You can choose to use either easyship_shipment_id or platform_order_number. If you want to get multiple shipments, use comma (,) to seperate each order number. Ex: #1234,#1235

page
int32

Optional Which page number you want to fetch, default: 1 Example: 3

per_page
int32

Optional Number of Shipments per page to fetch, default: 25, max: 100

 
curl --request GET \
  --url https://api.easyship.com/track/v1/checkpoints
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/track/v1/checkpoints' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/track/v1/checkpoints")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/track/v1/checkpoints");

xhr.send(data);
import requests

url = "https://api.easyship.com/track/v1/checkpoints"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Request

curl --include \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page='
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page=',
  headers: {
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.get 'https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page=', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page=', headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/track/v1/checkpoints?easyship_shipment_id=&platform_order_number=&per_page=&page=');

request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Response

{
    "total_page": 1,
    "current_page": 1,
    "shipments": 
  [
      {
        "easyship_shipment_id": "ESHK0001785",
        "platform_order_number": "#1234",
        "origin":"Hong Kong",
        "destination":"United States",
        "status":"Out For Delivery",
        "checkpoints":[
            {
                "order_number":115,
                "handler":"Ups",
                "message":"You package has been handed over to the courier",
                "location":"Hollywood, FL, US",
                "city":"Hollywood",
                "country_name":null,
                "country_iso3":"USA",
                "coordinates":"[]",
                "state":"FL",
                "postal_code": null,
                "checkpoint_time":"2016-08-05T09:20:00.000Z",
                "primary_status": "Handed Over to Courier"
            }
          ]
    	}
    ]
}
Suggest Edits

Credit

/company/v1/credits

 

Through this resource, you are able to top up your Easyship balance. In order to add credits, you need to have a default credit card set in the Easyship dashboard. Please note that the currency used is the currency associated with your company.

 
Suggest Edits

Add Credit

 

Header Auth

 Authentication is required for this endpoint.
posthttps://api.easyship.com/company/v1/credits

Body Params

amount
int32
required

Amount in company's currency

 
curl --request POST \
  --url https://api.easyship.com/company/v1/credits
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.easyship.com/company/v1/credits' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/company/v1/credits")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.easyship.com/company/v1/credits");

xhr.send(data);
import requests

url = "https://api.easyship.com/company/v1/credits"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

API Resource URL

https://api.easyship.com

Request

curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer  <YOUR EASYSHIP API TOKEN>" \
     --data-binary "{
  \"amount\": 1000
}" \
'https://api.easyship.com/company/v1/credits'
var request = require('request');

request({
  method: 'POST',
  url: 'https://api.easyship.com/company/v1/credits',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer  <YOUR EASYSHIP API TOKEN>'
  },
  body: "{  \"amount\": 1000}"
}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "amount": 1000
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer  <YOUR EASYSHIP API TOKEN>'
}

response = RestClient.post 'https://api.easyship.com/company/v1/credits', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "amount": 1000
  }
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer  <YOUR EASYSHIP API TOKEN>'
}
request = Request('https://api.easyship.com/company/v1/credits', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/company/v1/credits");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{
  \"amount\": 1000
}");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer  <YOUR EASYSHIP API TOKEN>"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('POST', 'https://api.easyship.com/company/v1/credits');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer  <YOUR EASYSHIP API TOKEN>');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  'amount': 1000
};

request.send(JSON.stringify(body));

Response

{
  "payment_id": "PHK01111172607",
  "status": "approved",
  "credit_card_last_digits": "4242",
  "available_balance": 6387.76,
  "currency": "HKD"
}
Suggest Edits

Categories

 

With the Categories resource, you are able to retrieve information that you may require to integrate with our service.

 
Suggest Edits

Item Categories

 

Header Auth

 Authentication is required for this endpoint.
gethttps://api.easyship.com/reference/v1/categories
 
curl --request GET \
  --url https://api.easyship.com/reference/v1/categories
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.easyship.com/reference/v1/categories' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.easyship.com/reference/v1/categories")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.easyship.com/reference/v1/categories");

xhr.send(data);
import requests

url = "https://api.easyship.com/reference/v1/categories"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
curl --include \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f" \
  'https://api.easyship.com/reference/v1/categories'
var request = require('request');

request({
  method: 'GET',
  url: 'https://api.easyship.com/reference/v1/categories',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}

response = RestClient.get 'https://api.easyship.com/reference/v1/categories', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f'
}
request = Request('https://api.easyship.com/reference/v1/categories', headers=headers)

response_body = urlopen(request).read()
print response_body
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.easyship.com/reference/v1/categories");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "Authorization: Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
var request = new XMLHttpRequest();

request.open('GET', 'https://api.easyship.com/reference/v1/categories');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer 4e2b327e2ef5471885cd0bc50a0c9fe52481793bd309b2c4f2a6bdac3f10ae1f');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

request.send();

Response

{
  "categories": [
    {
      "name": "Mobile Phones",
      "slug": "mobile_phones"
    },
    {
      "name": "Tablets",
      "slug": "tablets"
    },
    {
      "name": "Computers & Laptops",
      "slug": "computers_laptops"
    },
    {
      "name": "Cameras",
      "slug": "cameras"
    },
    {
      "name": "Accessory (no-battery)",
      "slug": "accessory_no_battery"
    },
    {
      "name": "Accessory (with battery)",
      "slug": "accessory_with_battery"
    },
    {
      "name": "Health & Beauty",
      "slug": "health_beauty"
    },
    {
      "name": "Fashion",
      "slug": "fashion"
    },
    {
      "name": "Watches",
      "slug": "watches"
    },
    {
      "name": "Home Appliances",
      "slug": "home_appliances"
    },
    {
      "name": "Home Decor",
      "slug": "home_decor"
    },
    {
      "name": "Toys",
      "slug": "toys"
    },
    {
      "name": "Sport & Leisure",
      "slug": "sport_leisure"
    },
    {
      "name": "Bags & Luggages",
      "slug": "bags_luggages"
    },
    {
      "name": "Audio Video",
      "slug": "audio_video"
    },
    {
      "name": "Documents",
      "slug": "documents"
    },
    {
      "name": "Jewelry",
      "slug": "jewelry"
    },
    {
      "name": "Dry Food & Supplements",
      "slug": "dry_food_supplements"
    },
    {
      "name": "Books & Collectibles",
      "slug": "books_collectibles"
    },
    {
      "name": "Pet Accessory",
      "slug": "pet_accessory"
    },
    {
      "name": "Gaming",
      "slug": "gaming"
    },
    {
      "name": "Sauce",
      "slug": "sauce"
    }
  ]
}
Suggest Edits

API Responses

 
 
 
Fields Description
courier_id Unique ID associated with the courier
courier_name Name of courier
min_delivery_time Minimum number of business days the delivery is expected to take
max_delivery_time Maximum number of business days the delivery is expected to take
value_for_money_rank Rank of the shipping option in terms of value for money compared to other shipping options
delivery_time_rank Rank of the shipping option in terms of delivery time compared to other shipping options
shipment_charge Cost of shipping
fuel_surcharge Fuel surcharge applied by the courier
remote_area_surcharge Remote area surcharge. Applies if the shipment's destination is considered a remote area by the courier.
shipment_charge_total Total cost of shipping (including fuel surcharge and remote area surcharge)
warehouse_handling_fee Pick and pack fee charged by the fulfilment warehouse (for e-fulfilment only)
insurance_fee Insurance fee, if the shipment is insured
import_tax_charge Import tax charge. Varies by country. Applies if the shipment is above threshold and the effective incoterm is DDP.
import_duty_charge Import duty charge. Varies by country and item category. Applies if the shipment is above threshold and the effective incoterm is DDP.
ddp_handling_fee Handling fee charged by the courier, if the shipment's effective incoterm is DDP
total_charge Total cost of the shipment (including shipping and insurance fees, import tax & duty charges and handling fees)
currency Currency for all cost-related fields above (currency of the origin country)
is_above_threshold Boolean. Shipment is/is not above the destination country's threshold value. If above threshold, import taxes and duties will apply.
estimated_import_tax Estimated import tax charge. Provided only for reference if the effective incoterm is DDU. Note that the consignee may also be charged additional handling fees by the last mile courier.
estimated_import_duty Estimated import duty charge. Provided only for reference if the effective incoterm is DDU. Note that the consignee may also be charged additional handling fees by the last mile courier.
courier_does_pickup Courier does/does not offer a free pick-up service
courier_dropoff_url Link to drop off information (including location, hours and contact details), if the courier only offers drop off service
tracking_rating Rating of the courier service's tracking visibility
0: No Tracking
1: Limited
2: Average
3: Excellent
courier_remarks Additional remarks about the shipping option, if applicable, regarding potential additional charges, packaging requirements, etc.
payment_recipient Recipient of the payment when the shipment is paid for
Easyship: pre-paid label
Courier: post-paid label to be paid at the counter
box The optimal box calculated for the items
-- name Box name, if a box from your pre-set list of boxes has been selected. Will be null otherwise
-- length Box length (cm)
-- width Box width (cm)
-- height Box height (cm)
 
Suggest Edits

Shipments

 
Fields Description
created_at Date and time the shipment was created
updated_at Date and time the shipment was last updated
easyship_shipment_id Unique shipment reference number generated by Easyship. This reference number will be used to buy the label, request a pickup and track the shipment.
destination_name Receiver's full name
destination_address_line_1 Receiver's address line 1
destination_address_line_2 Receiver's address line 2
destination_city Destination city
destination_state Destination state
destination_postal_code Destination postal code
destination_phone_number Receiver's phone number
destination_email_address Receiver's email address
platform_name Name of sales platform where the shipment order was made
platform_order_number Order number on the sales platform. This number can be used to track the associated shipment
total_customs_value Total declared customs value of the shipment
total_actual_weight Total actual weight of the shipment (in kg)
total_dimensional_weight Total dimensional weight of the shipment (in kg)
total_volumetric_weight Total volumetric weight of the shipment (in kg)
is_insured Boolean. Shipment is/is not insured
currency Currency for all amount-related fields (currency of the shipment's origin country)
label_state State of the shipment label (not_created, pending, failed, generated)
label_url Link to retrieve the shipment's label and additional shipping documents (will only be available once the label is generated)
tracking_number Shipment tracking number provided by the courier (will only be available once the label is generated)
tracking_page_url Link to the tracking page where the receiver can track the status of his/her shipment (will only be available once the label is generated)
origin_country / destination_country
-- name Name of country
-- alpha2 Country ISO 3166-1 alpha-2 code
items
-- id Unique ID associated with the shipment item
-- description Item's description
-- sku Item's Stock Keeping Unit (SKU) as listed in your catalog
-- width Item's width (in cm)
-- length Item's length (in cm)
-- height Item's height (in cm)
-- actual_weight Item's actual weight (in kg)
-- dimensional_weight Item's dimensional weight (in kg)
-- volumetric_weight Item's volumentric weight (in kg)
-- declared_customs_value Item's declared customs value
-- declared_currency Item's declared customs value currency
-- origin_customs_value Item's origin customs value (converted into the origin country's currency)
-- origin_currency Shipment's origin country's currency
-- category Item's category
box The optimal box calculated for the items
-- name Box name, if a box from your pre-set list of boxes has been selected. Will be null otherwise
-- length Box length (cm)
-- width Box width (cm)
-- height Box height (cm)
selected_courier
-- id Unique ID associated with the selected courier
-- name Name of the selected courier
-- min_delivery_time Minimum number of business days the delivery is expected to take
-- max_delivery_time Maximum number of business days the delivery is expected to take
-- shipment_charge Cost of shipping
-- fuel_surcharge Fuel surcharge applied by the courier
-- remote_area_surcharge Remote area surcharge. Applies if the shipment's destination is considered a remote area by the courier.
-- shipment_charge_total Total cost of shipping (including fuel surcharge and remote area surcharge)
-- warehouse_handling_fee Pick and pack fee charged by the fulfilment warehouse (for e-fulfilment only)
-- insurance_fee Insurance fee, if the shipment is insured
-- import_tax_charge Import tax charge. Varies by country. Applies if the shipment is above threshold and the effective incoterm is DDP.
-- import_duty_charge Import duty charge. Varies by country and item category. Applies if the shipment is above threshold and the effective incoterm is DDP.
-- ddp_handling_fee Handling fee charged by the courier, if the shipment's effective incoterm is DDP
-- total_charge Total cost of the shipment (including shipping and insurance fees, import tax & duty charges and handling fees)
-- is_above_threshold Boolean. Shipment is/is not above the destination country's threshold value. If above threshold, import taxes and duties will apply.
-- effective_incoterms Selected incoterm for the shipment
DDP: Delivered Duty Paid
DDU: Delivered Duty Unpaid
-- estimated_import_tax Estimated import tax charge. Provided only for reference if the effective incoterm is DDU. Note that the consignee may also be charged additional handling fees by the last mile courier.
-- estimated_import_duty Estimated import duty charge. Provided only for reference if the effective incoterm is DDU. Note that the consignee may also be charged additional handling fees by the last mile courier.
-- courier_does_pickup Courier does/does not offer a free pick-up service
-- courier_dropoff_url Link to drop off information (including location, hours and contact details), if the courier only offers drop off service
-- courier_remarks Additional remarks about the shipping option, if applicable, regarding potential additional charges, packaging requirements, etc.
-- payment_recipient Recipient of the payment when the shipment is paid for
Easyship: pre-paid label
Courier: post-paid label to be paid at the counter
rates
all fields: Please check the Rate response
 
Fields Description
message Response message. Will contain error messages if the status is failure
total_cost Total cost of all shipments
available_balance Remaining balance in your account
labels
-- easyship_shipment_id Easyship shipment reference number
-- label_state State of the shipment label (not_created, pending, failed, generated). By default the label_state will be pending as the labels are generated asynchronously. If you set up a callback url (see Company API), you will receive a callback with the tracking_number and the label_url as soon as the label is successfully generated.
-- label_url Link to retrieve the shipment's label and additional shipping documents (will only be available once the label is generated)
-- tracking_number Shipment tracking number provided by the courier (will only be available once the label is generated)
-- tracking_page_url Link to the tracking page where the receiver can track the status of his/her shipment
-- status Status. If success, the shipment has been confirmed and the label will be generated
 
Fields Description
easyship_shipment_id Unique shipment reference number generated by Easyship
platform_order_number Order number on the sales platform. This number can be used to track the associated shipment
origin Origin country name
destination Destination country name
status Current status of the shipment:
- Pending: No tracking event has been recorded yet
- Tracking Information Received: No tracking event has been recorded yet/the courier has acknowledged the label request
- In Transit To Customer
- Out For Delivery
- Delivered
- Exception: The shipment is on hold (e.g. customs clearance, the courier is trying to contact the receiver to get more information about the delivery address, etc.)
- Expired: Tracking has expired because no tracking event has been recorded for an extended period of time
checkpoints
-- order_number Checkpoint's index number (the lowest being the earliest). The order_number provides the most accurate order because the checkpoint_time is usually provided by the couriers in the local time of the checkpoint's location.
-- handler Name of courier handling the shipment at the checkpoint
-- message Status message at the checkpoint
-- location Location of the checkpoint
-- city City of the checkpoint
-- country_name Country name of the checkpoint
-- country_alpha3 Country ISO 3166-1 alpha-3 code of the checkpoint
-- state State of the checkpoint
-- postal_code Postal code of the checkpoint
-- checkpoint_time Date and time the checkpoint was created. Note that the checkpoint_time is usually provided by the couriers in the local time of the checkpoint's location.
-- primary_status Each Checkpoint has a primary_status to indicate what the main status of the Shipment was for that Checkpoint. The list of possible status messages is the same as for the current statuses of the shipment listed above.
 
 
Fields Description
name Company name
easyship_company_id Unique company reference number generated by Easyship. This reference number can be used when contacting our Customer Service and will be printed on the invoices from Easyship
available_balance Available balance in your account
currency Default currency of your account
address_errors Potential errors that occurred while updating an Address
callback_url_errors Potential errors that occurred while setting a Callback URL
api_settings
-- label_callback_url Callback URL which can accept a POST request. When updated, a POST request will be made to validate the callback URL
-- send_tracking_email Boolean. If true, an email with tracking information and a tracking page URL will be sent to the receiver when the label is successfully generated
-- send_survey_email Boolean. If true, Easyship is authorized to send a short survey to the receiver to evaluate the courier's performance after their shipment is delivered. The survey's responses are anonymous and will help improve our service
addresses
-- category Address category (pickup, sender, billing)
-- company_name Address company name
-- contact_name Address contact name
-- contact_email Address contact email
-- contact_phone Address contact phone number
-- line_1 Address line 1
-- line_2 Address line 2
-- postal_code Address postal code
-- city Address city
-- state Address state
-- country Address country name
-- is_active Address is/is not active