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.
Retrieve e-way bill details by EWB number.
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-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- ewbNostringrequiredRequired. E-way bill number: 12 digits, digits only (for example 123456789012).nullabledefault 123456789012
- request_idstringoptionalOptional. Your own unique reference for this request. A UUID is generated when omitted and returned as requestId.nullable
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalResponse for EWAYBILL/01. All fields null when EWB number is not found.
8 fields
- ewbNointeger (int64)optionalNo description.nullable
- statusstringoptionalNo description.nullable
- ewayBillDatestringoptionalNo description.nullable
- validUptostringoptionalNo description.nullable
- fromPincodeinteger (int64)optionalNo description.nullable
- toPincodeinteger (int64)optionalNo description.nullable
- hsnCodestringoptionalNo description.nullable
- vehicleDetailsarray<object>optionalNo description.nullable
Each item: 3 fields
- vehicleNostringoptionalNo description.nullable
- enteredDatestringoptionalNo description.nullable
- transModestringoptionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether 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.
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500