diff --git a/partner-trugee.js b/partner-trugee.js
index 058ac42..c2eb6d6 100644
--- a/partner-trugee.js
+++ b/partner-trugee.js
@@ -99,19 +99,26 @@ function directResponseHandler(body, request_id) {
         if (status === 'failed') {
             response_code = '40';
             
-            if (message.indexOf('Jenis produk tidak cocok') >= 0) {
-                response_code = '14';
-            } else if (message.indexOf('GAGAL. Nomor telp salah.') >= 0) {
-                response_code = '14';
-            } else if (message.indexOf('GAGAL. MSISDN tidak ditemukan') >= 0) {
-                response_code = '14';
+            var new_response_code = responseCodeFromMessage(message);
+            if (new_response_code) {
+                response_code = new_response_code;
             }
 
         }
         
         callbackReport(request_id, response_code, message);
     });
-    
+}
+
+function responseCodeFromMessage(message) {
+    if (message.indexOf('Jenis produk tidak cocok') >= 0) {
+        return '14';
+    } else if (message.indexOf('GAGAL. Nomor telp salah.') >= 0) {
+        return '14';
+    } else if (message.indexOf('GAGAL. MSISDN tidak ditemukan') >= 0) {
+        return '14';
+    } 
+    return;
 }
 
 function createServer() {
@@ -138,7 +145,14 @@ function createServer() {
         } else if (qs.code == 4) {
             response_code = '00';
             message = 'SN=' + qs.sn + ';' + message;
-        } 
+        }
+        
+        if (respose_code == '40') {
+            var new_response_code = responseCodeFromMessage(message);
+            if (new_response_code) {
+                response_code = new_response_code;
+            }
+        }
         
         callbackReport(request_id, response_code, message);
     });