diff --git a/examples/kopnus/config.json b/examples/kopnus/config.json
new file mode 100644
index 0000000..1e6a914
--- /dev/null
+++ b/examples/kopnus/config.json
@@ -0,0 +1,11 @@
+{
+    "auto_resend": {
+        "delay_ms": 60000,
+        "max_retry": 1,
+        "max_age_ms": 240000
+    },
+    "sn_pattern": {
+        "pattern": "SN=(.*?)\\.",
+        "match_idx": 1
+    }
+}
diff --git a/examples/kopnus/rc-local.json b/examples/kopnus/rc-local.json
new file mode 100644
index 0000000..3664726
--- /dev/null
+++ b/examples/kopnus/rc-local.json
@@ -0,0 +1,11 @@
+{
+    "00": "00",
+    "14": "14",
+    "15": "88",
+    "68": "68",
+    "74": "77",
+    "82": "94",
+    "I8": "14",
+    "I9": "14",
+    "A0": "68"
+}
diff --git a/lib/partner.js b/lib/partner.js
index 47c16ad..a79b2d2 100644
--- a/lib/partner.js
+++ b/lib/partner.js
@@ -144,7 +144,7 @@ function _topUpInquiry(task) {
             trx_id: task.trx_id,
             rc: partnerRc[value.RESPONSECODE] || '40',
             message: value.MESSAGE,
-            sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE),
+            sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE, config.sn_pattern),
             amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE),
             raw: value,
             misc: {
diff --git a/rc-local.sample.kopnus.json b/rc-local.sample.kopnus.json
deleted file mode 100644
index 3664726..0000000
--- a/rc-local.sample.kopnus.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "00": "00",
-    "14": "14",
-    "15": "88",
-    "68": "68",
-    "74": "77",
-    "82": "94",
-    "I8": "14",
-    "I9": "14",
-    "A0": "68"
-}