e-Way Bill API
User Guide
 
×
Menu
Index

Generate EWB Sample Code

GenEWBAsync method have two overload
 
(awaitable)System.Threading.Tasks.Task<TxnRespWithObjAndInfo<RespGenEwbPl>>EWBAPI.GenEWBAsync(EWBSession EwbSession, ReqGenEwbPl ewbGen, bool LogJsonFile = false)
(awaitable)System.Threading.Tasks.Task<TxnRespWithObjAndInfo<RespGenEwbPl>>EWBAPI.GenEWBAsync(EWBSession EwbSession, string ewbGen, bool LogJsonFile = false)
 
Sample code with sample value
       
 private async void btnGenEWB_Click(object sender, EventArgs e)
        {
           ReqGenEwbPl ewbGen = new ReqGenEwbPl();
 
            ewbGen.supplyType = "O";
            ewbGen.subSupplyType = "1";
            ewbGen.subSupplyDesc = "";
            ewbGen.docType = "INV";
            ewbGen.docNo = "60-19890";
            ewbGen.docDate = "25/07/2025";
            ewbGen.fromGstin = "34AACCC1596Q002";
            ewbGen.fromTrdName = "welton";
            ewbGen.fromAddr1 = "2ND CROSS NO 59  19  A";
            ewbGen.fromAddr2 = "GROUND FLOOR OSBORNE ROAD";
            ewbGen.fromPlace = "FRAZER TOWN";
            ewbGen.fromPincode = 605001;
            ewbGen.fromStateCode = 34;
            ewbGen.actFromStateCode = 34;
            ewbGen.toGstin = "05AAACG0904A1ZL";
            ewbGen.toTrdName = "sthuthya";
            ewbGen.toAddr1 = "Shree Nilaya";
            ewbGen.toAddr2 = "Dasarahosahalli";
            ewbGen.toPlace = "Beml Nagar";
            ewbGen.toPincode = 263652;
            ewbGen.toStateCode = 05;
            ewbGen.actToStateCode = 05;
            ewbGen.transactionType = 1;
            ewbGen.dispatchFromGSTIN = "";
            ewbGen.dispatchFromTradeName = "ABC Traders";
            ewbGen.shipToGSTIN = "";
            ewbGen.shipToTradeName = "XYZ Traders";
            ewbGen.otherValue = -100;
            ewbGen.totalValue = 0;
            ewbGen.cgstValue = 0;
            ewbGen.sgstValue = 0;
            ewbGen.igstValue = 0;
            ewbGen.cessValue = 0;
            ewbGen.cessNonAdvolValue = 400;
            ewbGen.transporterId = "12AACCC1596Q002";
            ewbGen.transporterName = "";
            ewbGen.transDocNo = "";
            ewbGen.totInvValue = 0;
            ewbGen.transMode = "";
            ewbGen.transDistance = "0";
            ewbGen.transDocDate = "";
            ewbGen.vehicleNo = "";
            ewbGen.vehicleType = "R";
            ewbGen.itemList = new List<ReqGenEwbPl.ItemListInReqEWBpl>();
          
            ewbGen.itemList.Add(new ReqGenEwbPl.ItemListInReqEWBpl
            {
                productName = "Wheat",
                productDesc = "Wheat",
                hsnCode = 1001,
                quantity = 4,
                qtyUnit = "BOX",
                cgstRate = 0,
                sgstRate = 0,
                igstRate = 0,
                cessRate = 0,
                cessNonAdvol = 0,
                taxableAmount = 0
            }
              );
            ewbGen.itemList.Add(new ReqGenEwbPl.ItemListInReqEWBpl
            {
                productName = "Steel",
                productDesc = "Steel",
                hsnCode = 7213,
                quantity = 4,
                qtyUnit = "BOX",
                cgstRate = 0,
                sgstRate = 0,
                igstRate = 0,
                cessRate = 0,
                cessNonAdvol = 0,
                taxableAmount = 0
            }
              );
            string a = JsonConvert.SerializeObject(ewbGen);
            TxnRespWithObjAndInfo<RespGenEwbPl> TxnResp = await EWBAPI.GenEWBAsync(EwbSession, ewbGen);
            if (TxnResp.IsSuccess){
               // Data is in TxnResp.RespObj
     }
              
            else
            {
              
                //Check for error "The distance between the pincodes given is too high"
 
                if (TxnResp.TxnOutcome.Contains("702") && !string.IsNullOrEmpty(TxnResp.Info))
                {
                    RespInfoPl respInfoPl = new RespInfoPl();
 
                    respInfoPl = JsonConvert.DeserializeObject<RespInfoPl>(TxnResp.Info);
                    //You can retrive respInfoPl attributes here
                    ewbGen.transDistance = respInfoPl.distance;
                    //Call GenEWB API again
                    TxnResp = await EWBAPI.GenEWBAsync(EwbSession, ewbGen);
                    if (TxnResp.IsSuccess){
//TxnResp.RespObj
      }
                    else {
//TxnResp.TxnOutcome;
}
                       
                }
 
            }
 
        }