diff --git a/omd-checkout-service/pom.xml b/omd-checkout-service/pom.xml
index 33a4a0897f9f852344f2d06df6f9afc1dbe7c8ae..7db490bc653f1520c6aaa6acbac478bac4a4375e 100644
--- a/omd-checkout-service/pom.xml
+++ b/omd-checkout-service/pom.xml
@@ -16,6 +16,7 @@
 
 	<properties>
 		<java.version>1.8</java.version>
+		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
 	</properties>
 
 	<dependencies>
@@ -23,7 +24,26 @@
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-web</artifactId>
 		</dependency>
-
+	<dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+    </dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-devtools</artifactId>
+			<scope>runtime</scope>
+			<optional>true</optional>
+		</dependency>
+		<dependency>
+			<groupId>com.h2database</groupId>
+			<artifactId>h2</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+    <groupId>com.github.javafaker</groupId>
+    <artifactId>javafaker</artifactId>
+    <version>1.0.2</version>
+</dependency>
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-test</artifactId>
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java b/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
index c79b1c8d9978c2f9a3f602c319851cf703c1e53f..9a558f8701fbf85799f41684f046837f82f29aee 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
@@ -1,13 +1,38 @@
 package com.nisum.omd;
 
+import java.io.File;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.nisum.omd.domain.Order;
+
 @SpringBootApplication
-public class OmdCheckoutServiceApplication {
+public class OmdCheckoutServiceApplication implements CommandLineRunner {
+	
+	@Autowired
+	RandomDataGenerateImpl rdg;
 
 	public static void main(String[] args) {
 		SpringApplication.run(OmdCheckoutServiceApplication.class, args);
 	}
 
+	@Override
+	public void run(String... args) throws Exception {
+		// TODO Auto-generated method stub
+		ObjectMapper objectMapper = new ObjectMapper();
+		Order order = objectMapper.readValue(new File("src/main/resources/Order.json"), Order.class);
+		
+		for (int i=0; i< 100; i++) {
+			order.setOrderNum(rdg.generateOrderNumber());
+			order.setCustomerId(rdg.generateCustomerId());
+			order.setLineItem(rdg.genetateLineItem());
+			
+		System.out.println(order);
+		}
+	}
+
 }
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f960a231ade4d8aa125430337def20c137b632e6
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java
@@ -0,0 +1,34 @@
+package com.nisum.omd;
+
+import org.springframework.stereotype.Component;
+
+import com.github.javafaker.Faker;
+import com.nisum.omd.domain.LineItem;
+
+@Component
+//@Scope(value="prototype", proxyMode=ScopedProxyMode.TARGET_CLASS)
+
+public class RandomDataGenerateImpl implements RandomDataGenerator {
+
+	Faker fk = new Faker();
+	
+	public String generateOrderNumber() {
+		
+		return String.valueOf(fk.number().numberBetween(1000000, 9999999));
+	}
+
+	public String generateCustomerId() {
+		// TODO Auto-generated method stub
+		return String.valueOf(fk.number().numberBetween(10000, 99999));
+	}
+
+	public LineItem genetateLineItem() {
+		// TODO Auto-generated method stub
+		
+		LineItem li =  new LineItem();
+		li.setProductName(fk.commerce().productName());
+		li.setTaxCode(String.valueOf(fk.number().numberBetween(100, 1000)));
+		return li;
+	}
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..ecac4b5bc9546fa497fb7ad54f3a4fad05672421
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java
@@ -0,0 +1,11 @@
+package com.nisum.omd;
+
+import com.nisum.omd.domain.LineItem;
+
+public interface RandomDataGenerator {
+	
+	String generateOrderNumber();
+	String generateCustomerId();
+    LineItem genetateLineItem();
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..0313bc3fa0a1c2e6c19fd9a7fc48ec56d4ee38e3
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java
@@ -0,0 +1,141 @@
+package com.nisum.omd.domain;
+
+
+import java.util.Map;
+
+public class LineItem {
+	private String lineItemNumber;
+	private String skuNumber;
+	private String itemColorDesc;
+	private String size;
+	private String orderedQty;
+	private String productName;
+	private String itemType;
+	private boolean shipChrgApplInd;
+	private String estimatedShipDate;
+	private Map<String,Object> linePriceInfo;
+	private String taxCode;
+	private boolean autoAddInd;
+	private Map<String,Object> lineTax;
+	private String originalLineItemId;
+	private String vendorUpcCode;
+	private String brandCode;
+	private String eligibleReturnLocationCode;
+	public String getLineItemNumber() {
+		return lineItemNumber;
+	}
+	public void setLineItemNumber(String lineItemNumber) {
+		this.lineItemNumber = lineItemNumber;
+	}
+	public String getSkuNumber() {
+		return skuNumber;
+	}
+	public void setSkuNumber(String skuNumber) {
+		this.skuNumber = skuNumber;
+	}
+	public String getItemColorDesc() {
+		return itemColorDesc;
+	}
+	public void setItemColorDesc(String itemColorDesc) {
+		this.itemColorDesc = itemColorDesc;
+	}
+	public String getSize() {
+		return size;
+	}
+	public void setSize(String size) {
+		this.size = size;
+	}
+	public String getOrderedQty() {
+		return orderedQty;
+	}
+	public void setOrderedQty(String orderedQty) {
+		this.orderedQty = orderedQty;
+	}
+	public String getProductName() {
+		return productName;
+	}
+	public void setProductName(String productName) {
+		this.productName = productName;
+	}
+	public String getItemType() {
+		return itemType;
+	}
+	public void setItemType(String itemType) {
+		this.itemType = itemType;
+	}
+	public boolean isShipChrgApplInd() {
+		return shipChrgApplInd;
+	}
+	public void setShipChrgApplInd(boolean shipChrgApplInd) {
+		this.shipChrgApplInd = shipChrgApplInd;
+	}
+	public String getEstimatedShipDate() {
+		return estimatedShipDate;
+	}
+	public void setEstimatedShipDate(String estimatedShipDate) {
+		this.estimatedShipDate = estimatedShipDate;
+	}
+	public Map<String, Object> getLinePriceInfo() {
+		return linePriceInfo;
+	}
+	public void setLinePriceInfo(Map<String, Object> linePriceInfo) {
+		this.linePriceInfo = linePriceInfo;
+	}
+	public String getTaxCode() {
+		return taxCode;
+	}
+	public void setTaxCode(String taxCode) {
+		this.taxCode = taxCode;
+	}
+	public boolean isAutoAddInd() {
+		return autoAddInd;
+	}
+	public void setAutoAddInd(boolean autoAddInd) {
+		this.autoAddInd = autoAddInd;
+	}
+	public Map<String, Object> getLineTax() {
+		return lineTax;
+	}
+	public void setLineTax(Map<String, Object> lineTax) {
+		this.lineTax = lineTax;
+	}
+	public String getOriginalLineItemId() {
+		return originalLineItemId;
+	}
+	public void setOriginalLineItemId(String originalLineItemId) {
+		this.originalLineItemId = originalLineItemId;
+	}
+	public String getVendorUpcCode() {
+		return vendorUpcCode;
+	}
+	public void setVendorUpcCode(String vendorUpcCode) {
+		this.vendorUpcCode = vendorUpcCode;
+	}
+	public String getBrandCode() {
+		return brandCode;
+	}
+	public void setBrandCode(String brandCode) {
+		this.brandCode = brandCode;
+	}
+	public String getEligibleReturnLocationCode() {
+		return eligibleReturnLocationCode;
+	}
+	public void setEligibleReturnLocationCode(String eligibleReturnLocationCode) {
+		this.eligibleReturnLocationCode = eligibleReturnLocationCode;
+	}
+	@Override
+	public String toString() {
+		return "LineItem [lineItemNumber=" + lineItemNumber + ", skuNumber=" + skuNumber + ", itemColorDesc="
+				+ itemColorDesc + ", size=" + size + ", orderedQty=" + orderedQty + ", productName=" + productName
+				+ ", itemType=" + itemType + ", shipChrgApplInd=" + shipChrgApplInd + ", estimatedShipDate="
+				+ estimatedShipDate + ", linePriceInfo=" + linePriceInfo + ", taxCode=" + taxCode + ", autoAddInd="
+				+ autoAddInd + ", lineTax=" + lineTax + ", originalLineItemId=" + originalLineItemId
+				+ ", vendorUpcCode=" + vendorUpcCode + ", brandCode=" + brandCode + ", eligibleReturnLocationCode="
+				+ eligibleReturnLocationCode + "]";
+	}
+	
+	
+	
+	
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4011968783e8add6df97322efd5ed9ca067aaa1
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java
@@ -0,0 +1,127 @@
+package com.nisum.omd.domain;
+
+import java.util.Map;
+
+public class Order {
+	
+	
+	private String orderNum;
+	private String orderDate;
+	private String currency;
+	private String shipMethod;
+	private String customerId;
+	private String customerType;
+	private Promotions promotions;
+	private String gift;
+	private LineItem lineItem;
+	private Map<String,Object> shippingInfo;
+	private Map<String,Object> shipTo;
+	private Map<String,Object> billingTo;
+	private Map<String,Object> orderCharges;
+	private Map<String,Object> OrderTaxes;
+	private PaymentMethod paymentMethod;
+	
+	
+	public String getOrderNum() {
+		return orderNum;
+	}
+	public void setOrderNum(String orderNum) {
+		this.orderNum =  orderNum; //rdg.generateOrderNumber();
+	}
+	public String getOrderDate() {
+		return orderDate;
+	}
+	public void setOrderDate(String orderDate) {
+		this.orderDate = orderDate;
+	}
+	public String getCurrency() {
+		return currency;
+	}
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+	public String getShipMethod() {
+		return shipMethod;
+	}
+	public void setShipMethod(String shipMethod) {
+		this.shipMethod = shipMethod;
+	}
+	public String getCustomerId() {
+		return customerId;
+	}
+	public void setCustomerId(String customerId) {
+		this.customerId = customerId;//rdg.generateCustomerId();
+	}
+	public String getCustomerType() {
+		return customerType;
+	}
+	public void setCustomerType(String customerType) {
+		this.customerType = customerType;
+	}
+	public Promotions getPromotions() {
+		return promotions;
+	}
+	public void setPromotions(Promotions promotions) {
+		this.promotions = promotions;
+	}
+	public String getGift() {
+		return gift;
+	}
+	public void setGift(String gift) {
+		this.gift = gift;
+	}
+	public LineItem getLineItem() {
+		return lineItem;
+	}
+	public void setLineItem(LineItem lineItem) {
+		//this.lineItem = rdg.genetateLineItem();
+		this.lineItem = lineItem;
+	}
+	public Map<String, Object> getShippingInfo() {
+		return shippingInfo;
+	}
+	public void setShippingInfo(Map<String, Object> shippingInfo) {
+		this.shippingInfo = shippingInfo;
+	}
+	public Map<String, Object> getShipTo() {
+		return shipTo;
+	}
+	public void setShipTo(Map<String, Object> shipTo) {
+		this.shipTo = shipTo;
+	}
+	public Map<String, Object> getBillingTo() {
+		return billingTo;
+	}
+	public void setBillingTo(Map<String, Object> billingTo) {
+		this.billingTo = billingTo;
+	}
+	public Map<String, Object> getOrderCharges() {
+		return orderCharges;
+	}
+	public void setOrderCharges(Map<String, Object> orderCharges) {
+		this.orderCharges = orderCharges;
+	}
+	public Map<String, Object> getOrderTaxes() {
+		return OrderTaxes;
+	}
+	public void setOrderTaxes(Map<String, Object> orderTaxes) {
+		OrderTaxes = orderTaxes;
+	}
+	public PaymentMethod getPaymentMethod() {
+		return paymentMethod;
+	}
+	public void setPaymentMethod(PaymentMethod paymentMethod) {
+		this.paymentMethod = paymentMethod;
+	}
+	@Override
+	public String toString() {
+		return "Order [orderNum=" + orderNum + ", orderDate=" + orderDate + ", currency=" + currency + ", shipMethod="
+				+ shipMethod + ", customerId=" + customerId + ", customerType=" + customerType + ", promotions="
+				+ promotions + ", gift=" + gift + ", lineItem=" + lineItem + ", shippingInfo=" + shippingInfo
+				+ ", shipTo=" + shipTo + ", billingTo=" + billingTo + ", orderCharges=" + orderCharges + ", OrderTaxes="
+				+ OrderTaxes + ", paymentMethod=" + paymentMethod + "]";
+	}
+	
+	
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java
new file mode 100644
index 0000000000000000000000000000000000000000..b5fd48a6614d0009afee6b991e5b66e95079446e
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java
@@ -0,0 +1,57 @@
+package com.nisum.omd.domain;
+
+import java.util.Map;
+
+public class PaymentMethod {
+	private String paymetMethod;
+	private String creditCardNo;
+	private String creditCardType;
+	private String displayCreditCardNo;
+	private String paymentStatus;
+	private Map<String,Object> paymentDetail;
+	public String getPaymetMethod() {
+		return paymetMethod;
+	}
+	public void setPaymetMethod(String paymetMethod) {
+		this.paymetMethod = paymetMethod;
+	}
+	public String getCreditCardNo() {
+		return creditCardNo;
+	}
+	public void setCreditCardNo(String creditCardNo) {
+		this.creditCardNo = creditCardNo;
+	}
+	public String getCreditCardType() {
+		return creditCardType;
+	}
+	public void setCreditCardType(String creditCardType) {
+		this.creditCardType = creditCardType;
+	}
+	public String getDisplayCreditCardNo() {
+		return displayCreditCardNo;
+	}
+	public void setDisplayCreditCardNo(String displayCreditCardNo) {
+		this.displayCreditCardNo = displayCreditCardNo;
+	}
+	public String getPaymentStatus() {
+		return paymentStatus;
+	}
+	public void setPaymentStatus(String paymentStatus) {
+		this.paymentStatus = paymentStatus;
+	}
+	public Map<String, Object> getPaymentDetail() {
+		return paymentDetail;
+	}
+	public void setPaymentDetail(Map<String, Object> paymentDetail) {
+		this.paymentDetail = paymentDetail;
+	}
+	@Override
+	public String toString() {
+		return "PaymentMethod [paymetMethod=" + paymetMethod + ", creditCardNo=" + creditCardNo + ", creditCardType="
+				+ creditCardType + ", displayCreditCardNo=" + displayCreditCardNo + ", paymentStatus=" + paymentStatus
+				+ ", paymentDetail=" + paymentDetail + "]";
+	}
+	
+	
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e592ab7e550b13f65078930022cc1c133e23f3c
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java
@@ -0,0 +1,27 @@
+package com.nisum.omd.domain;
+
+import java.util.Map;
+
+public class Promotions {
+	private Map<String,Object> PromotionDetails;
+	private Map<String,Object> Awards;
+	
+	public Map<String, Object> getPromotionDetails() {
+		return PromotionDetails;
+	}
+	public void setPromotionDetails(Map<String, Object> promotionDetails) {
+		PromotionDetails = promotionDetails;
+	}
+	public Map<String, Object> getAwards() {
+		return Awards;
+	}
+	public void setAwards(Map<String, Object> awards) {
+		Awards = awards;
+	}
+	@Override
+	public String toString() {
+		return "Promotions [PromotionDetails=" + PromotionDetails + ", Awards=" + Awards + "]";
+	}
+	
+	
+}
diff --git a/omd-checkout-service/src/main/resources/Order.json b/omd-checkout-service/src/main/resources/Order.json
new file mode 100644
index 0000000000000000000000000000000000000000..75f2d5cee05a22429b840900bddac5e1c467caba
--- /dev/null
+++ b/omd-checkout-service/src/main/resources/Order.json
@@ -0,0 +1,101 @@
+{
+		"orderNum": "1000A1BX",
+		"orderDate": "2020-04-15T13:33:15.657-05:00",
+		"currency": "INR",
+		"shipMethod": "1",
+		"customerId": "189359",
+		"customerType": "01",
+		"promotions": {
+			"promotionDetails": {
+				"promotionDesc": "Electronic Items Ship Free",
+				"promotionApplied": "false",
+				"awards": {
+					"awardId": "1000",
+					"awardAmt": "0.00"
+				}
+			}
+		},
+		"gift": "false",
+		"lineItem": {
+			"lineItemNumber": "5475",
+			"skuNumber": "22222222",
+			"itemColorDesc": "White",
+			"size": "6",
+			"orderedQty": "2",
+			"productName": "Apple Mobile",
+			"itemType": "7",
+			"shipChrgApplInd": "true",
+			"estimatedShipDate": "2020-04-15T00:00:00-05:00",
+			"linePriceInfo": {
+				"listPrice": "29.50",
+				"retailPrice": "29.50",
+				"unitPrice": "20.00",
+				"linePriceType": "03"
+			},
+			
+			"lineTax": {
+				"chargeCategory": "Price",
+				"chargeName": "Price",
+				"taxName": "SalesTax",
+				"tax": "3.40",
+				"taxPercentage": "8.50",
+				"taxCode": "C1",
+				"unitTaxAmount": "1.70"
+			}
+			},
+		   "shippingInfo": {
+			"vaildShipTo": "true",
+			"maxDaysToDeliver": "9",
+			"minDaysToDeliver": "6"
+		},
+		"shipTo": {
+			"firstName": "Narendra",
+			"lastName": "Modi",
+			"addressLine1": "2 Folsom St",
+			"city": "Delhi",
+			"state": "DL",
+			"zipCode": "110001",
+			"country": "IN",
+			"mobile": "9988776655",
+			"eMailID": "modi@india.com",
+			"residentialAddr": "false"
+		},
+		"billingTo": {
+			"firstName": "Narendra",
+			"fastName": "Modi",
+			"addressLine1": "2 Folsom St",
+			"city": "Delhi",
+			"state": "DL",
+			"zipCode": "110001",
+			"country": "IN",
+			"mobile": "9988776655",
+			"eMailID": "modi@india.com",
+			"residentialAddr": "false"
+		},
+		"orderCharges": {
+			"ChargeAmount": "10.00",
+			"ChargeCategory": "Ship",
+			"ChargeName": "Ship"
+		},
+		"orderTaxes": {
+			"ChargeCategory": "Shipping",
+			"TaxName": "GST",
+			"Tax": "0.00",
+			"taxCode": "C1",
+			"TaxPercentage": "12"
+		},
+		"paymentMethod": {
+			"paymetMethod": "CC",
+			"creditCardNo": "12345678987665",
+			"creditCardType": "VISA",
+			"displayCreditCardNo": "8277",
+			"paymentStatus": "AUTH",
+			"paymentDetail": {
+				"TransactionId": "021361475199",
+				"ProcessedAmount": "1000.00",
+				"RequestAmount": "1000.00"
+			}
+		}
+	
+}
+