diff --git a/src/main/java/com/kms/service/PaymentService.java b/src/main/java/com/kms/service/PaymentService.java
index f766a3f608b402f2c833979216364e14eb008fe1..4bd791a4191ff16cc0c2ac8f830e21c847ed0deb 100644
--- a/src/main/java/com/kms/service/PaymentService.java
+++ b/src/main/java/com/kms/service/PaymentService.java
@@ -1,6 +1,7 @@
 package com.kms.service;
 
 import com.j256.ormlite.dao.Dao;
+import com.kms.crosscut.SoapFaultHelper;
 import com.kms.dto.payment.PaymentInitReq;
 import com.kms.dto.payment.PaymentInitResp;
 import com.kms.dto.payment.PaymentStatusResp;
@@ -24,6 +25,7 @@ public class PaymentService {
 
     @WebMethod
     public PaymentInitResp initPayment(@WebParam(name = "req") PaymentInitReq req) {
+        verifyInitPaymentData(req);
         try {
             List<Payment> idempotentCheck = paymentDao.queryForMatching(Payment.builder()
                     .initiatorId(req.getInitiatorId())
@@ -67,4 +69,17 @@ public class PaymentService {
             return new PaymentStatusResp(null, "Unexpected error has happened");
         }
     }
+
+    private void verifyInitPaymentData(PaymentInitReq req) {
+        if (req.getInitiatorId() == null) {
+            SoapFaultHelper.throwFault("InvalidRequest", "Payment initiator id is empty");
+        }
+        if (req.getIdempotentId() == null) {
+            SoapFaultHelper.throwFault("InvalidRequest", "Payment idempotent id is empty");
+        }
+        if (req.getAmount() <= 0) {
+            SoapFaultHelper.throwFault("InvalidRequest", "Payment amount is invalid");
+        }
+    }
+
 }