diff --git a/index.js b/index.js
index 0d9322b..1378ff5 100644
--- a/index.js
+++ b/index.js
@@ -4,5 +4,7 @@ process.chdir(__dirname);
 const pullgw = require('komodo-sdk/gateway/pull');
 const partner = require('./lib/partner');
 const reverseReport = require('./lib/reverse-report');
+const adviceServer = require('komodo-sdk/gateway/advice-push-server');
 
 pullgw.setPartner(partner);
+adviceServer.setPartner(partner);
diff --git a/lib/partner.js b/lib/partner.js
index 35836bf..f46d683 100644
--- a/lib/partner.js
+++ b/lib/partner.js
@@ -91,6 +91,64 @@ 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,
+        PIN: config.partner.pin || config.partner.password,
+        NOHP: task.destination
+    };
+
+    const xmlrpcMethod = 'topUpInquiry';
+    logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: partnerUrl.href});
+
+    client.methodCall(xmlrpcMethod, [ params ], function (err, value) {
+
+        if (err) {
+
+            const msg = 'XMLRPC Client Error: ' + err;
+
+            logger.warn(msg, {method: xmlrpcMethod, trx_id: task.trx_id, destination: task.destination, err: err});
+            report({
+                trx_id: task.trx_id,
+                rc: '68',
+                message: 'INTERNAL: ' + msg,
+                misc: {
+                    task: task
+                }
+            });
+
+            return;
+        }
+
+        logger.info('Got XMLRPC response from partner for', {method: xmlrpcMethod, trx_id: task.trx_id, destination: task.destination, response: value});
+        //matrix.last_topupRequest_ack = value;
+
+        report({
+            trx_id: task.trx_id,
+            rc: partnerRc[value.RESPONSECODE] || '40',
+            message: value.MESSAGE,
+            sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE),
+            amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE),
+            raw: value,
+            misc: {
+                task: task
+            }
+        });
+    });
 }
 
 function report(data) {