diff --git a/partner-sc.js b/partner-sc.js
index 38ea767..2346a18 100644
--- a/partner-sc.js
+++ b/partner-sc.js
@@ -7,9 +7,10 @@ var xml2js = require('xml2js').parseString;
 var strftime = require('strftime');
 var math = require('mathjs');
 var winston = require('winston');
-var cekstatus = require('./cekstatus.js');
+//var cekstatus = require('./cekstatus.js');
 var mongoClient = require('mongodb').MongoClient;
 var LRU = require('lru-cache');
+var reverseParser = require('./reverse-parser');
 
 var config;
 var httpServer;
@@ -513,7 +514,9 @@ function callbackFromWebReport(status) {
 
     } else if ((status.status == 'P') || (status.status == 'W')) {
 
-        callbackReport(status.response.reffid[0].trim(), '68', responseMessage);
+        return callbackReport(status.response.reffid[0].trim(), '68', responseMessage);
+
+        /*
         logger.info('Got pending status, requesting advice from webreport in ' + sleep_before_retry + 'ms');
 
         setTimeout(function () {
@@ -521,7 +524,7 @@ function callbackFromWebReport(status) {
             cekstatus.advice({trxid: status.trxId,}, callbackFromWebReport);
 
         }, sleep_before_retry);
-        return;
+        */
 
     } else {
         responseCode = status.response.resultcode[0].replace(/^00/, "");
@@ -531,7 +534,7 @@ function callbackFromWebReport(status) {
     }
 
 
-    callbackReport(status.response.reffid[0].trim(), responseCode, responseMessage);
+    return callbackReport(status.response.reffid[0].trim(), responseCode, responseMessage);
 }
 
 function createHttpReportServer() {
@@ -546,14 +549,32 @@ function createHttpReportServer() {
         var resultCode = qs.rescode;
 
         if (requestId && resultCode && resultCode != '0') {
-            if (pendingResultCode.indexOf(resultCode) >= 0) {
-                callbackReport(requestId, '68', 'Got reverse report: ' + qs.msg);
-            } else {
-                callbackReport(requestId, '40', 'Got reverse report: ' + qs.msg);
+
+        }
+
+        if (requestId && resultCode)
+            if (resultCode == '0') {
+                var responseData = reverseParser.parseMessage(qs.msg);
+                var sn = [
+                    qs.token,
+                    responseData.namapel,
+                    responseData.tarifdaya,
+                    responseData.jumlahkwh
+                ].join('/');
+
+                return callbackReport(requestId, '00', 'SN=' + sn + ';' + 'Got reverse report: ' + qs.msg);
+            }
+            else if (pendingResultCode.indexOf(resultCode) >= 0) {
+                return callbackReport(requestId, '68', 'Got reverse report: ' + qs.msg);
+            }
+            else {
+                return callbackReport(requestId, '40', 'Got reverse report: ' + qs.msg);
             }
-            return;
         }
 
+
+        /*
+
         var  trxid;
         try {
             trxid = qs.transid;
@@ -561,7 +582,6 @@ function createHttpReportServer() {
         catch(err) {
         }
 
-        /*
         if (trxid) {
             logger.info('Requesting advice from webreport', {trxid: trxid})
             cekstatus.advice({trxid: trxid}, callbackFromWebReport);