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 8e6deb5..a4d7619 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
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.framework
 
 import com.google.gson.Gson
+import com.nimbusds.oauth2.sdk.ErrorResponse
 import com.supwisdom.dlpay.api.APIRequestParam
 import com.supwisdom.dlpay.api.bean.ApiResponse
 import com.supwisdom.dlpay.api.exception.RequestParamCheckException
@@ -27,7 +28,7 @@
             return ResponseEntity.ok(create().fail(bean, code, msg))
         }
 
-        fun <T> fail(status: HttpStatus, bean: T): ResponseEntity<*> {
+        fun <T> fail(status: HttpStatus, bean: T): ResponseEntity<T> {
             return ResponseEntity.status(status).body(bean)
         }
 
@@ -43,14 +44,26 @@
             return fail(HttpStatus.NOT_FOUND, msg)
         }
 
+        fun notFound(error: ErrorResponse) : ResponseEntity<ErrorResponse> {
+            return fail(HttpStatus.NOT_FOUND, error)
+        }
+
         fun badRequest(msg: String): ResponseEntity<*> {
             return fail(HttpStatus.BAD_REQUEST, msg)
         }
 
+        fun badRequest(error: ErrorResponse): ResponseEntity<*> {
+            return fail(HttpStatus.BAD_REQUEST, error)
+        }
+
         fun conflict(msg: String): ResponseEntity<*> {
             return fail(HttpStatus.CONFLICT, msg)
         }
 
+        fun conflict(error: ErrorResponse): ResponseEntity<ErrorResponse> {
+            return fail(HttpStatus.CONFLICT, error)
+        }
+
         fun forbbiden(msg: String): ResponseEntity<*> {
             return fail(HttpStatus.FORBIDDEN, msg)
         }
@@ -62,6 +75,10 @@
         fun internalServerError(msg: String): ResponseEntity<*> {
             return fail(HttpStatus.INTERNAL_SERVER_ERROR, msg)
         }
+
+        fun internalServerError(error: ErrorResponse): ResponseEntity<ErrorResponse> {
+            return fail(HttpStatus.INTERNAL_SERVER_ERROR, error)
+        }
     }
 
     private var retCode = INVALIDE_RETCODE
