diff --git a/partner-cjk.js b/partner-cjk.js
index c9efffe..9846059 100644
--- a/partner-cjk.js
+++ b/partner-cjk.js
@@ -108,9 +108,25 @@ function pushResponseToMongoDb(task, response) {
     if (!isMongoReady()) { return; }
     
     try {
+        var rc = null;
+        var message = null;
+        var refnum = null;
+        
+        if (response.parsed) {
+            if (response.parsed.rc) { rc = response.parsed.rc; };
+            if (response.parsed.message) { message = response.parsed.message; };
+            if (response.parsed.refnum) { refnum = response.parsed.refnum; };
+        }
+
         mongodb.collection(config.mongodb.collection).updateOne(
             {requestId: task.requestId},
-            {$push: {responses: response}},
+            {
+                rc: rc,
+                message: message,
+                refnum: refnum,
+                
+                $push: {responses: response}
+            },
             function(err, result) {
                 if (err) {
                     logger.warn('Error when pushing response to mongodb', {err: err, task: task, response: response});
@@ -135,11 +151,12 @@ function isMongoReady() {
 function getSNFromMessage(message) {
     try {
         var sn_match = message.match(/SN: (\w+)/);
-        logger.verbose('Got SN: ' + sn_match[1]);
         return sn_match[1].trim();
     }
     catch(err) {
-        logger.verbose('Exception on getting sn from message', {err: err});
+        if (logger) {
+            logger.verbose('Exception on getting sn from message', {err: err});
+        }
         return '';
     }
 }
@@ -199,16 +216,6 @@ function topupResponseHandler(body, task) {
         var rc = '68';
         var message = result.ciwaru.msg[0];
         
-        /*
-        var trxid = 0;
-        try {
-            trxid = result.ciwaru.reqnum[0];
-        } 
-        catch(err) {
-            trxid = result.ciwaru.trxid[0];
-        }
-        */
-        
         if (message.toUpperCase().indexOf('PENDING') >= 0) {
             rc = '68';
         }
@@ -306,10 +313,15 @@ function topupRequest(task, retry) {
         
         logger.verbose('Status code: ' + res.statusCode );
         var buffer = "";
-        res.on( "data", function( data ) { buffer = buffer + data; } );
+        
+        res.on( "data", function( data ) { 
+            buffer = buffer + data; 
+        });
+        
         res.on( "end", function( data ) {             
-                topupResponseHandler(buffer, task);
+            topupResponseHandler(buffer, task);
         });
+        
     });
     
     req.on('error', function(e) {
diff --git a/test.js b/test.js
index dc95c0f..d694bfe 100644
--- a/test.js
+++ b/test.js
@@ -26,8 +26,8 @@ describe("#partner-cjk", function() {
     
     describe('#getSNFromMessage', function() {
         it('should return correct sn', function() {
-            var message = '2016-05-04 10:15:50: SUKSES Topup Ke 081905851012 Sebesar 5.000 Dengan SN: 100008530070 Harga = 5.612. Saldo = 475.972';
-            partner.getSNFromMessage(message).should.equal('100008530070');
+            var message = '2016-05-09 13:26:29: SUKSES Topup Ke 087884428889 Sebesar 50.000 Dengan SN: 55000509134656 Harga = 48.750. Saldo = 104.418.989';
+            partner.getSNFromMessage(message).should.equal('55000509134656');
         });
     });
 });