EWAY BILL Information

1 endpoint · Core API

What is it?

The e-Way Bill API retrieves e-way bill details from the GST Network for any valid EWB number. An e-way bill is a compliance document required under GST for the movement of goods worth more than ₹50,000 within or between states. The API returns bill dates, validity period, pincode information, HSN code, status, and vehicle movement history.

Benefits

  • Verify the authenticity and validity of e-way bills in real time
  • Confirm goods movement details including origin, destination, and transit history
  • Detect expired or cancelled e-way bills before accepting consignments
  • Supports GST compliance and logistics audit workflows

What you can do

Validate e-way bills during goods receipt, logistics compliance checks, freight verification, and GST audits. Ideal for warehouses, transporters, consignees, and compliance teams handling goods movement under GST.

POST

/api/v1/ewaybill/lookup

#

Retrieve e-way bill details by EWB number.

docs.signcare.io/core/api/trade/eway-bill-information/#post-api-v1-ewaybill-lookup

Returns e-way bill data from the GST network including bill dates, validity, pincode information, HSN code, status, and vehicle movement history.

Returns an empty data object when the EWB number is not found in the system.

Source: GST Network e-Way Bill system.

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • ewbNo
    stringrequired
    Required. E-way bill number: 12 digits, digits only (for example 123456789012).
    nullabledefault 123456789012
  • request_id
    stringoptional
    Optional. Your own unique reference for this request. A UUID is generated when omitted and returned as requestId.
    nullable
Sample request body
{ "ewbNo": "123456789012", "request_id": "string" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response for EWAYBILL/01. All fields null when EWB number is not found.
    8 fields
    • ewbNo
      integer (int64)optional
      No description.
      nullable
    • status
      stringoptional
      No description.
      nullable
    • ewayBillDate
      stringoptional
      No description.
      nullable
    • validUpto
      stringoptional
      No description.
      nullable
    • fromPincode
      integer (int64)optional
      No description.
      nullable
    • toPincode
      integer (int64)optional
      No description.
      nullable
    • hsnCode
      stringoptional
      No description.
      nullable
    • vehicleDetails
      array<object>optional
      No description.
      nullable
      Each item: 3 fields
      • vehicleNo
        stringoptional
        No description.
        nullable
      • enteredDate
        stringoptional
        No description.
        nullable
      • transMode
        stringoptional
        No description.
        nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "ewbNo": 0, "status": "string", "ewayBillDate": "string", "validUpto": "string", "fromPincode": 0, "toPincode": 0, "hsnCode": "string", "vehicleDetails": [ { "vehicleNo": "string", "enteredDate": "string", "transMode": "string" } ] }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/ewaybill/lookup' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "ewbNo": "123456789012", "request_id": "string" }'