diff --git a/lib/partner.js b/lib/partner.js
index f46d683..aadadf1 100644
--- a/lib/partner.js
+++ b/lib/partner.js
@@ -18,21 +18,18 @@ if (config.partner.use_sslv3) {
     https.globalAgent.options.secureProtocol = 'SSLv3_method';
 }
 
-function buy(task) {
-    const partnerUrl = url.parse(config.partner.url);
+function createXmlRpcClient(endpoint) {
+    const partnerUrl = url.parse(endpoint);
     const clientOptions = {
         host: partnerUrl.hostname,
         port: partnerUrl.port,
         path: partnerUrl.pathname
     };
 
-    let client;
-    if (partnerUrl.protocol == 'https:') {
-        client = xmlrpc.createSecureClient(clientOptions);
-    } else {
-        client = xmlrpc.createClient(clientOptions);
-    }
+    return partnerUrl.protocol === 'https' ? xmlrpc.createSecureClient(clientOptions) : xmlrpc.createClient(clientOptions);
+}
 
+function buy(task) {
     const params = {
         MSISDN: config.partner.msisdn || config.partner.userid,
         REQUESTID: task.trx_id,
@@ -42,8 +39,9 @@ function buy(task) {
     };
 
     const xmlrpcMethod = 'topUpRequest';
-    logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: partnerUrl.href});
+    logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: config.partner.url});
 
+    const client = createXmlRpcClient(config.partner.url);
     client.methodCall(xmlrpcMethod, [ params ], function (err, value) {
 
         if (err) {
@@ -91,20 +89,6 @@ function buy(task) {
 }
 
 function advice(task) {
-    const partnerUrl = url.parse(config.partner.url);
-    const clientOptions = {
-        host: partnerUrl.hostname,
-        port: partnerUrl.port,
-        path: partnerUrl.pathname
-    };
-
-    let client;
-    if (partnerUrl.protocol == 'https:') {
-        client = xmlrpc.createSecureClient(clientOptions);
-    } else {
-        client = xmlrpc.createClient(clientOptions);
-    }
-
     const params = {
         REQUESTID: task.trx_id,
         MSISDN: config.partner.msisdn || config.partner.userid,
@@ -113,8 +97,9 @@ function advice(task) {
     };
 
     const xmlrpcMethod = 'topUpInquiry';
-    logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: partnerUrl.href});
+    logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: config.partner.url});
 
+    const client = createXmlRpcClient(config.partner.url);
     client.methodCall(xmlrpcMethod, [ params ], function (err, value) {
 
         if (err) {
@@ -152,6 +137,10 @@ function advice(task) {
 }
 
 function report(data) {
+    if (!data) {
+        return;
+    }
+
     matrix.last_report_to_core = data;
     pull.report(data);
 }