diff --git a/transport.js b/transport.js
index 88f6815..69931c3 100644
--- a/transport.js
+++ b/transport.js
@@ -97,8 +97,25 @@ function init(cb) {
     createHttpServer();
 }
 
-function send(partner, msg, params) {
-    logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params});
+function _sleepAndResend(partner, msg, params, retry) {
+    if (retry === null || retry === undefined) {
+        retry = Number(config.max_send_retry) || 5;
+    }
+
+    if (retry > 0) {
+        setTimeout(
+            function() {
+                send(partner, msg, params, retry);
+            },
+            (Number(config.sleep_before_retry_secs) || 60) * 1000
+        )
+    }
+}
+
+function send(partner, msg, params, retry) {
+    if (!retry) {
+        logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params});
+    }
 
     if (!params || !params.reverse_url) {
         logger.verbose('Undefined reverse_url, not forwarding message to partner');
@@ -115,11 +132,13 @@ function send(partner, msg, params) {
     request(reqOptions, function(err, res, body) {
         if (err) {
             logger.warn('Error sending reverse report to partner', {request: reqOptions, err: err});
+            _sleepAndResend(partner, msg, params, retry);
             return;
         }
 
         if (res.statusCode != 200) {
             logger.warn('Partner not returning HTTP status code 200 on reverse report', {request: reqOptions, http_status: res.statusCode});
+            _sleepAndResend(partner, msg, params, retry);
             return;
         }