diff --git a/README.md b/README.md
index a6118d6..1c33d1d 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Vietnam QR Pay
-Thư viện hỗ trợ encode/decode mã QR của VietQR & VNPayQR
+Thư viện hỗ trợ encode/decode mã QR của VietQR (QR Ngân hàng, QR Đa năng Momo/ZaloPay) & VNPayQR
[![npm](https://img.shields.io/npm/v/vietnam-qr-pay.svg)](https://www.npmjs.com/package/vietnam-qr-pay)
[![download](https://img.shields.io/npm/dt/vietnam-qr-pay.svg)](https://www.npmjs.com/package/vietnam-qr-pay)
@@ -49,6 +49,67 @@ console.log(content)
```
+### QR Đa năng của MoMo và ZaloPay
+
+Hiện tại, QR Đa năng của MoMo và ZaloPay đang thông qua Ngân hàng Bản Việt (BVBank) để nhận tiền.
+
+Mỗi tài khoản MoMo/ZaloPay sẽ được gán một STK tương ứng tại BVBank. Tiền chuyển đến STK này sẽ được chuyển tiếp đến ví MoMo/ZaloPay.
+
+Bạn có thể lấy STK này tại trang chi tiết của QR Nhận tiền trong ứng dụng MoMo/ZaloPay.
+
+#### MoMo
+
+```javascript
+import { QRPay, BanksObject } from 'vietnam-qr-pay';
+
+// Số tài khoản trong ví MoMo
+const accountNumber = '99MM24011M34875080'
+
+const momoQR = QRPay.initVietQR({
+ bankBin: BanksObject.banviet.bin,
+ bankNumber: accountNumber,
+ // amount: '10000', // Số tiền (không bắt buộc)
+ // purpose: 'Chuyen tien', // Nội dung (không bắt buộc)
+})
+
+// Trong mã QR của MoMo có chứa thêm 1 mã tham chiếu tương ứng với STK
+momoQR.additionalData.reference = 'MOMOW2W' + accountNumber.slice(10)
+
+// Mã QR của MoMo có thêm 1 trường ID 80 với giá trị là 3 số cuối của SỐ ĐIỆN THOẠI của tài khoản nhận tiền
+momoQR.setUnreservedField('80', '046')
+
+const content = momoQR.build()
+
+// 00020101021138620010A00000072701320006970454011899MM24011M348750800208QRIBFTTA53037045802VN62190515MOMOW2W3487508080030466304EBC8
+
+```
+
+
+
+#### ZaloPay
+
+> Trong mã QR của ZaloPay có chứa một số thông tin bổ sung ở trường ID 26. Tuy nhiên chưa rõ chức năng của các thông tin này (có thể là dùng để định danh từng mã QR đc tạo trên hệ thống của ZaloPay). Trong ví dụ dưới sẽ bỏ qua các thông tin này.
+
+```javascript
+import { QRPay, BanksObject } from 'vietnam-qr-pay';
+
+// Số tài khoản trong ví ZaloPay
+const accountNumber = '99ZP24009M07248267'
+
+const zaloPayQR = QRPay.initVietQR({
+ bankBin: BanksObject.banviet.bin,
+ bankNumber: accountNumber,
+ // amount: '10000', // Số tiền (không bắt buộc)
+ // purpose: 'Chuyen tien', // Nội dung (không bắt buộc)
+})
+
+const content = zaloPayQR.build()
+// 00020101021138620010A00000072701320006970454011899ZP24009M072482670208QRIBFTTA53037045802VN6304073C
+```
+
+
+
+
### VNPay
```javascript
diff --git a/package.json b/package.json
index 8e7c541..0c48d04 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"@typescript-eslint/parser": "^6.7.2",
"eslint": "^8.50.0",
"jest": "^28.1.1",
+ "qrto": "^0.0.3",
"ts-jest": "^28.0.5",
"ts-node": "^10.8.1",
"typescript": "^4.7.4"
diff --git a/test/momo.svg b/test/momo.svg
new file mode 100644
index 0000000..e3d61a4
--- /dev/null
+++ b/test/momo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/test-momo-zalopay.spec.ts b/test/test-momo-zalopay.spec.ts
new file mode 100644
index 0000000..0c20331
--- /dev/null
+++ b/test/test-momo-zalopay.spec.ts
@@ -0,0 +1,62 @@
+import fs from 'node:fs'
+import { toSVG } from 'qrto'
+
+import { BanksObject } from '../src'
+import { QRPay } from '../src/qr-pay'
+
+
+test('MoMo', () => {
+ const accountNumber = '99MM24011M34875080'
+ const momoQR = QRPay.initVietQR({
+ bankBin: BanksObject.banviet.bin,
+ bankNumber: accountNumber,
+ })
+ momoQR.additionalData.reference = 'MOMOW2W' + accountNumber.slice(10)
+ momoQR.setUnreservedField('80', '046')
+ // QR Content generated from MoMo app
+ const content = momoQR.build()
+ expect(content).toBe('00020101021138620010A00000072701320006970454011899MM24011M348750800208QRIBFTTA53037045802VN62190515MOMOW2W3487508080030466304EBC8')
+
+ const svg = toSVG(content, {
+ ecLevel: 'L',
+ style: 'round',
+ foregroundColor: {
+ type: 'linear',
+ colors: ['#d82f8b', '#a50064']
+ },
+ logo: {
+ url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAL0UExURawgcKsdb/78/ffp8akYa6sgcKkZbP///6seb6sfb60gcaYTaLU4f9aRuOnD2PXm7+jA16sdbrlEh9KHsaoabLtJi64ndO3P4awhcKobbawfcKwfb/fo8asfcKscbqgWaqkXaqkZa6kabKocbawhcaobbrApdv/+/qsebqsbbagVact0pqoZbLQ1fvz3+qcTaP/+//79/blBhqkVaqoabfjr8rU4gN2kxfvz9/DW5a7Teaodbq4ldO/T47Eued6lxvz2+bMwe/rw9tKGsacUablDh7tJivHY5uvJ3LErd7Y6gOnC2L1OjrMyfLIveunF2qwgcd2iw60hca8odctxpMtypfjr89iWvOW30bQ0fdiVu/77/f37/Pry9q0jcq8nde7P4eCsysFYlNuewdWNtvHZ575Pjtyhw+OyzfPg6+S0z+KvzPb+x6cSZ/bm7/7+/t+ox/z4+/35+71Ki79RkKgXa9GEsK4kc+3R4evI27g/heW50tmZvvXk7cRfmMBXkrc9g7EteezM3sx1p815qvHZ5sluovHb6L9TkdiUu6ULY/jt8+3P4Prz97c7gqobbNygwul/6cpvo+nE2dB/rfPd6fTi7Nqav89+rtGBrq0jc8dpn8Ncl8hqn9SMtchroPPf6sltofjt9Pfr89aPuMVimsZmneW40uW609eUuue81KYPZee+1vz1+MZlnMZ9zrc+g8Zjm899rOOzz60hcuvK3btGiMdnnvLc6a8mdPbo8OKxze7S4vbl78x3qO3N39+pydaQuPbm7tudwM56qtSJs/Xj7rxLjOrH2+S20aweb7tHidWMtujA1r1NjdGBr/Lb6Mtxpea71O/V5bU3f814qcRgmfbq8fTh69ubwLpEiMBVkd+nx/nw9dSLtKkYasJblsNel9GFsc58q79UkaYRZ+vM3uCrycFalvnu9Kwdb/v1+NmZvfTi7deRudGDr6sgcaoYa+e91aoaa+Guy9SStqIGXsZrnaYVZqkfbejD2btRiyeeQ7cAAApSSURBVHja7Vp5VBRHHu5heoZu1IR2R53DmWHOnQEGFBDlcd+HglxCQILhVPRx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'
+ }
+ })
+ fs.writeFileSync(__dirname + '/momo.svg', svg)
+})
+
+
+test('ZaloPay', () => {
+ const accountNumber = '99ZP24009M07248267'
+ const zaloPayQR = QRPay.initVietQR({
+ bankBin: BanksObject.banviet.bin,
+ bankNumber: accountNumber,
+ })
+
+ const content = zaloPayQR.build()
+ expect(content).toBe('00020101021138620010A00000072701320006970454011899ZP24009M072482670208QRIBFTTA53037045802VN6304073C')
+
+ const svg = toSVG(content, {
+ ecLevel: 'L',
+ marker: {
+ style: {
+ outer: 'round',
+ inner: 'circle',
+ }
+ },
+ foregroundColor: {
+ type: 'linear',
+ colors: ['#0068ff', '#003e99'],
+ },
+ logo: {
+ url: 'data:image/png;base64,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'
+ }
+ })
+ fs.writeFileSync(__dirname + '/zalopay.svg', svg)
+})
diff --git a/test/zalopay.svg b/test/zalopay.svg
new file mode 100644
index 0000000..3076fa4
--- /dev/null
+++ b/test/zalopay.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 75faec9..6428164 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2445,6 +2445,11 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+qrto@^0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/qrto/-/qrto-0.0.3.tgz#5609878601de9baff7b7f84e1fa2564ddb99d5be"
+ integrity sha512-2NWE4JPrxilv/8Kbtjh5O08Tv7vw1K6mxtwyMnAyj4sgtEE71NlOJMD1DUESo1mB8NX8vKCVxMxkPABquZ0ZAQ==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"