diff --git a/partner-masterpulsa-voucher.js b/partner-masterpulsa-voucher.js
index 0a593fd..b5fc79b 100644
--- a/partner-masterpulsa-voucher.js
+++ b/partner-masterpulsa-voucher.js
@@ -23,6 +23,15 @@ function callbackReportWrapper(requestId, rc, message) {
             logger.warn('Exception on callbackReportWrapper: ' + err);
         }
     }
+    
+    if (rc != '00' && rc != '68') {
+        try {
+            var key = dupcheckKey(config.globals.gateway_name, task);
+            redisClient.del(key);
+        }
+        catch(delErr) {
+        }
+    }
 
     callbackReport(requestId, rc, message);
 }
@@ -56,8 +65,13 @@ function getRedisKey(task) {
     return config.globals.gateway_name + '.tid:' + task.requestId;
 }
 
+function dupcheckKey(gatewayName, task) {
+    return 'DUPCHECK.gw:' + gatewayName + '.prod:' + task.remoteProduct + '.dest:' + task.destination + '.date:' + strftime('%Y%m%d', new Date);
+}
+
 function topupRequest(task, retry) {
-    var key = 'DUPCHECK.gw:' + config.globals.gateway_name + '.prod:' + task.remoteProduct + '.dest:' + task.destination + '.date:' + strftime('%Y%m%d', new Date);
+    var key = dupcheckKey(config.globals.gateway_name, task);
+    
     redisClient.get(key, function(err, data) {
         if (err) {
             callbackReportWrapper(task.requestId, '40', 'Gagal cek anti transaksi duplikat (redis error)');
@@ -258,7 +272,7 @@ function advice(task, retry) {
     logger.info('Requesting advice to supplier', {requestOptions: requestOptions});
     request(requestOptions, function(requestError, requestResponse, requestResponseBody) {
         if (requestError || requestResponse.statusCode != 200) {
-            logger.warn('Advice error', {error: request_error, http_response: requestResponse.statusCode});
+            logger.warn('Advice error', {error: requestError, http_response: requestResponse.statusCode});
 
             if (retry > 0) {
                 logger.warn('Going to retry advice in ' + adviceDelay + 'ms', {task: task, retry: retry});