diff --git a/package.json b/package.json
index 50a45ca..96afb90 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
     "ini": "^1.3.4",
     "sate24": "git+http://gitlab.kodesumber.com/reload97/node-sate24.git",
     "sate24-expresso": "git+http://gitlab.kodesumber.com/reload97/sate24-expresso.git",
+    "soap": "^0.15.0",
     "winston": "^2.2.0"
   }
 }
diff --git a/partner-kospinjasa.js b/partner-kospinjasa.js
new file mode 100644
index 0000000..0c35784
--- /dev/null
+++ b/partner-kospinjasa.js
@@ -0,0 +1,51 @@
+var winston = require('winston');
+var soap = require('soap');
+
+var max_retry = 10;
+var sleep_before_retry = 5000;
+
+var config;
+var callbackReport;
+var aaa;
+var logger;
+var options;
+
+function start(_config, _callbackReport, options) {
+    config = _config;
+    callbackReport = _callbackReport
+
+    if (options && options.aaa) {
+            aaa = options.aaa;
+    }
+
+    if (options && options.logger) {
+        logger = options.logger;
+    } else {
+        logger = new winston.Logger({
+            transports: [
+              new (winston.transports.Console)()
+            ]
+        });
+    }
+}
+
+function topupRequest(task, retry) {
+    if (retry === undefined) {
+        retry = max_retry;
+    }
+
+    soap.createClient(url, function(err, client) {
+        client.MyFunction(args, function(err, result) {
+            console.log(result);
+        });
+    });
+}
+
+function createSoapClient(url, callback) {
+    soap.createClient(url, function(err, client) {
+        callback(err, client);
+    });
+}
+
+exports.start = start;
+exports.topupRequest = topupRequest;