6 minute read

What is Easyship?

Easyship is a cloud-based shipping platform designed for global eCommerce. The all-in-one system provides users with tools to manage domestic and international shipping through more than 50+ couriers and shipping providers, including DHL, UPS, USPS and FedEx. Store sync integrations enable automatic updates of courier names and tracking number in eCommerce stores, and emailing of tracking information to customers. An eCommerce checkout plugin provides customers with real-time shipping rate calculations, which include any taxes and customs duties to be paid. Customs duties and taxes are calculated automatically for every country, with category-based calculations, automatic generation of tax documents, and the ability to decide whether the customer or seller will pay any applicable charges.

Key benefits of using Easyship

  • Easyship offers a plugin which calculates shipping rates in real-time during the checkout process, providing customers with tailored shipping quotes using data from more than 250 shipping solutions.

  • Customs duties and taxes, including VAT are automatically calculated for every country, with all tax documentation generated and users able to decide whether they or the customer will pay customs charges, taxes and duties.

  • Store sync integrations enable automatic updates of courier names and tracking numbers in users’ eCommerce stores and order tracking emails can be sent out to customers automatically.

  • The dashboard gives users visibility into shipping costs, delivery time, taxes and provides real-time tracking updates and notifications from all couriers.

  • Shipping rules allows users to define rules for automatic courier selection based on shipping destination, product type, item weight and many more.

However, application configuration is an integral activity prior to the process of integration. If your chosen application is Easyship, credentials need to be provided for validating the agent. Here you will find the detailed description on how to configure the agents in OP agent and Cloud agnet for Easyship.

Pre-requisites for Easyship Configuration

1) Create a developer account in Easyship with necessary credentials.
2) Click here to know the authentication mechanism and APIs of the application along with their structures.
3) Email ID and Password of Easyship application to login successfully.
4) Access Token of the application to validate the credentials in the agent.

How to get Access Token?

1) Login to your Easyship account with valid credentials. From the dashboard, navigate to Connect -> Click on New Integration. You will land on the access token generation page. On clicking API Integration, a dialog box will appear. Select Im developing a custom integration as Integration Type, provide a Integration Name and click on Connect. Your Access Token will be generated both for Production and Sandbox environment.

On-Premise Agent Configuration

Installation of On-Premise Agent

You need to install the agent on your local server. To Know about On-Premise Agent Configuration, Click here.

How to configure Easyship Application in OP Agent

1) Create a processflow with Easyship as source or destination application, and deploy the processflow in On-Premise agent.
2) Open the agent and click the checkbox in Settings Panel.
3) Move into the App Configurational Panel of the agent and configure the details of the respective application.

Steps to configure the credentials in the OP agent

1) Open the OP Agent by providing valid credentials.
2) In the App Configurations panel of the agent, click on the + button, beside the application Easyship. The credential panel opens for the application Easyship.
easyshipopagent1 3)Provide the Access Token obtained from the application dashboard.
easyshipopagent2 4) Click on “Validate” button to validate the connection. A message Successfully Validated will appear if all the credentials provided by you for Easyship is valid. After validating the credentials, click “Save” button to save the credetials. Following the above processes, you can configure the Easyship application in the OP agent.



Some of the basic troubleshooting issue happens due to improper validations or even if it is accurately validated but the processflows do not sync the data successfully. This basic issue resolves after removing the Temp and Cache files from the portal and from your system. Therefore, after clearing the Temp and Cache files, again deploy and execute your processflow.


User validation may fail due to invaild Access Token. Check the credentials once again and re-Validate the credentials.

Attributes and Actions

While defining a connection to an API in Easyship, you require clear understanding about the data requirements and endpoint configurations. You can refer to this document to find all the endpoint details of Easyship. To define the endpoint in APPSeCONNECT, you need to define Schemas and Actions. Actions are specifically targeted for an endpoint while schema is the data needed to execute the API. Here is the list of some of the pre-packaged API actions defined for you which you can easily plug and play while doing your integration.

Click here Easyship to know the authuorization and APIs details.

Endpoint Action Action Type Schema UI Help API Path
/v2/shipments shipments GET shipments List all shipments shipments
/v2/shipments shipments POST shipments Create a Shipment shipments
/v2/couriers couriers GET couriers List All Couriers couriers
/v2/rates rates POST rates Request Rates rates

Action Filter Implementation

Data is fetched from source application using APIs, and as you are aware of, API provides filters which will allow you to specify a subset of data from the whole bunch of data created in the server, the same can be specified through Actions and Action filters. The Action generally defines the endpoint of the application which is being fetched, while the filters define the search criteria of the data. You can add these parameters in the action filter to define the search criteria.

  • General filters : It represents the overall filter criteria of the API. To define such filters, you do not need to specify anything special, just putting the field name and the value with the condition type is fine.

Let us consider any API of Easyship such as shipments.

    "shipments": [
            "easyship_shipment_id": "ESIN113070772",
            "created_at": "2022-10-18T07:21:38.353Z",
            "updated_at": "2022-10-18T07:21:38.608Z",
            "label_paid_at": null,
            "label_generated_at": null,
            "order_created_at": null,
            "origin_address": {
                "line_1": "abcd",
                "line_2": "",
                "state": "",
                "city": "kolkata",
                "postal_code": "700090",
                "country_alpha2": "IN",
                "contact_name": "ARNAB DE",
                "company_name": "insync",
                "contact_phone": "8902443519",
                "contact_email": "arnab.d@insync.co.in"
            "destination_address": {
                "line_1": "tets drive",
                "line_2": null,
                "state": null,
                "city": "kolkata",
                "postal_code": "700090",
                "country_alpha2": "IN",
                "contact_name": "johnson",
                "company_name": null,
                "contact_phone": "8908908909",
                "contact_email": null
            "order_data": {
                "platform_name": "Shopify",
                "platform_order_number": null,
                "order_tag_list": [],
                "seller_notes": null,
                "buyer_notes": null
            "metadata": {},
            "set_as_residential": true,
            "consignee_tax_id": "",
            "eei_reference": null,
            "incoterms": null,
            "insurance": {
                "is_insured": false,
                "insured_amount": 0.0,
                "insured_currency": "INR"
            "parcels": [
                    "total_actual_weight": 44.0,
                    "box": {
                        "id": "c34a7560-4867-427d-a051-487768dc5e43",
                        "courier_umbrella_name": "UPS",
                        "courier_origin_country_alpha2": null,
                        "name": "UPS Letter",
                        "slug": "ups-letter",
                        "outer_length": 38.0,
                        "outer_width": 24.0,
                        "outer_height": 7.62,
                        "weight": 0.0
                    "items": [
                            "description": "good one",
                            "category": "Cameras",
                            "sku": "tr456",
                            "quantity": 2,
                            "dimensions": {
                                "length": 0.0,
                                "width": 0.0,
                                "height": 0.0
                            "actual_weight": 0.0,
                            "origin_currency": "INR",
                            "origin_customs_value": 4569.0,
                            "declared_currency": "INR",
                            "declared_customs_value": 4569.0
            "total_customs_value": 9138.0,
            "total_actual_weight": 44.0,
            "shipment_state": "created",
            "pickup_state": "not_requested",
            "delivery_state": "not_created",
            "label_state": "not_created",
            "warehouse_state": "none",
            "trackings": [],
            "tracking_page_url": "https://www.trackmyshipment.co/shipment-tracking/ESIN113070772",
            "shipping_documents": [],
            "currency": "INR",
            "selected_courier": {
                "id": null
            "rates": []

Mostly, while retrieving data from the application, you will be using the following as the key-value pairs. Use easyship_shipment_id as the key and provide any numerical value such as ESIN113070772, ESIN113071892 in the value field represents the item to be fetched. You can also fetch data as per the time instance using created_at as the key and ~{CreatedDate}~ as the value.