diff --git a/payapi/src/main/java/com/supwisdom/dlpay/exception/BadRequestError.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/BadRequestError.java
new file mode 100644
index 0000000..a32465a
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/exception/BadRequestError.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.BAD_REQUEST)
+public class BadRequestError extends RuntimeException {
+  public BadRequestError() {
+  }
+
+  public BadRequestError(String message) {
+    super(message);
+  }
+
+  public BadRequestError(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  public BadRequestError(Throwable cause) {
+    super(cause);
+  }
+
+  public BadRequestError(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+    super(message, cause, enableSuppression, writableStackTrace);
+  }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/exception/ConflictError.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/ConflictError.java
new file mode 100644
index 0000000..2cc0de5
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/exception/ConflictError.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.CONFLICT)
+public class ConflictError extends RuntimeException {
+  public ConflictError() {
+  }
+
+  public ConflictError(String message) {
+    super(message);
+  }
+
+  public ConflictError(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  public ConflictError(Throwable cause) {
+    super(cause);
+  }
+
+  public ConflictError(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+    super(message, cause, enableSuppression, writableStackTrace);
+  }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/exception/InternalServerError.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/InternalServerError.java
new file mode 100644
index 0000000..4eb5168
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/exception/InternalServerError.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+public class InternalServerError extends RuntimeException {
+  public InternalServerError() {
+  }
+
+  public InternalServerError(String message) {
+    super(message);
+  }
+
+  public InternalServerError(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  public InternalServerError(Throwable cause) {
+    super(cause);
+  }
+
+  public InternalServerError(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+    super(message, cause, enableSuppression, writableStackTrace);
+  }
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
index a4d7619..f37cae1 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
@@ -28,6 +28,10 @@
             return ResponseEntity.ok(create().fail(bean, code, msg))
         }
 
+        fun <T> ok(bean: T): ResponseEntity<T> {
+            return ResponseEntity.ok(bean)
+        }
+
         fun <T> fail(status: HttpStatus, bean: T): ResponseEntity<T> {
             return ResponseEntity.status(status).body(bean)
         }
@@ -44,7 +48,7 @@
             return fail(HttpStatus.NOT_FOUND, msg)
         }
 
-        fun notFound(error: ErrorResponse) : ResponseEntity<ErrorResponse> {
+        fun notFound(error: ErrorResponse): ResponseEntity<ErrorResponse> {
             return fail(HttpStatus.NOT_FOUND, error)
         }
 
