Serviceability

The Serviceability API allows you to validate whether a shipment or product can be serviced between a given pickup and delivery pincode. It provides multiple methods:

  • Pincode-based serviceability

  • Product-based serviceability

  • Check serviceability for pickup/delivery combination

  • Bulk pincode serviceability

This page demonstrates how to use each method via the EShopBox Python SDK.

Example: Setup Serviceability Using EShopBox SDK

"""
Example: Setup Serviceability using EShopBox SDK
"""

import os
from eshopbox.client import EShopBoxSDK
from dotenv import load_dotenv
load_dotenv()


def get_serviceability_pin_code_based(sdk):
    payload = {
        "dropPincode": "160071",
        "pickupPincode": "247342",
        "deadWeight": 500,
        "length": 12,
        "height": 10,
        "width": 8,
        "isCod": False
    }
    response = sdk.serviceability.pincodeserviceability(payload)
    print("Response: ", response)


def get_productserviceability(sdk):
    payload = {
        "dropPincode": "160071",
        "productId": "sakib"
    }
    response = sdk.serviceability.productserviceability(payload)
    print("Response: ", response)


def get_checkpincodeserviceability(sdk):
    payload = {
        "deliveryPincode": "160071",
        "pickupPincode": "247342"
    }
    response = sdk.serviceability.checkpincodeserviceability(payload)
    print("Response: ", response)


def get_get_bulk_pin_code_serviceability(sdk):
    params = {
        "shippingMode": "standard"
    }
    response = sdk.serviceability.bulkPincodeServiceability(params)
    print("Response: ", response)


def main():
    sdk = EShopBoxSDK(
        workspace=os.getenv('ESHOPBOX_WORKSPACE', ''),
        client_id=os.getenv('ESHOPBOX_CLIENT_ID', ''),
        client_secret=os.getenv('ESHOPBOX_SECRET_ID', ''),
        refresh_token=os.getenv('ESHOPBOX_REFRESH_TOKEN', '')
    )
    # get_serviceability_pin_code_based(sdk)
    # get_productserviceability(sdk)
    # get_checkpincodeserviceability(sdk)
    get_get_bulk_pin_code_serviceability(sdk)


if __name__ == "__main__":
    main()

Pincode-Based Serviceability

Checks whether a shipment with given dimensions, weight, and payment mode can be serviced between two pincodes.

Payload Fields

Field

Type

Required

Description

dropPincode

string

Yes

Destination pincode

pickupPincode

string

Yes

Origin pincode

deadWeight

integer

Yes

Weight in grams

length

integer

Yes

Package length in cm

height

integer

Yes

Package height in cm

width

integer

Yes

Package width in cm

isCod

boolean

Yes

COD allowed or not

Example Response:

{
    "serviceable": true,
    "carrier": "Delhivery",
    "est_delivery_days": 3
}

Product-Based Serviceability

Checks whether a specific product can be delivered to a destination pincode.

Payload Fields

Field

Type

Required

Description

dropPincode

string

Yes

Destination pincode

productId

string

Yes

Unique identifier of the product

Example Response:

{
    "productId": "sakib",
    "serviceable": true,
    "carrier": "BlueDart"
}

Check Pickup/Delivery Serviceability

Validates serviceability for a pickup and delivery pincode combination.

Payload Fields

Field

Type

Required

Description

deliveryPincode

string

Yes

Destination pincode

pickupPincode

string

Yes

Origin pincode

Example Response:

{
    "pickupPincode": "247342",
    "deliveryPincode": "160071",
    "serviceable": true
}

Bulk Pincode Serviceability

Fetches serviceability details for multiple pincodes at once.

Query Parameters

Example Response:

{
    "shippingMode": "standard",
    "serviceablePincodes": [
        "160071",
        "247342",
        "110001"
    ]
}

Notes

  • Ensure valid API credentials are stored in your environment variables.

  • Serviceability results vary by carrier availability, service type, and region.

  • You may call any of the serviceability functions independently as needed.