my-qris
v1.0.3
Published
A Javascript package for generating dynamic QRIS codes.
Downloads
18
Maintainers
Readme
🚀 Installation
npm install my-qris
# or
yarn add my-qris🔧 Usage Examples
1️⃣ Basic Payment QR
import { makeQRPayment, readQRCodeFromURL } from "my-qris";
(async () => {
const qris = await readQRCodeFromURL("https://example.com/qrcode.png");
const newCode = makeQRPayment({
qrCode: qris,
amount: 10000,
fee: 30,
feeType: "percentage",
});
console.log(newCode);
})();2️⃣ Generate Data URL
import { generateQRDataUrl, makeQRPayment, readQRCodeFromURL } from "my-qris";
(async () => {
const qris = await readQRCodeFromURL("https://example.com/qrcode.png");
const newCode = makeQRPayment({
qrCode: qris,
amount: 10000,
fee: 30,
feeType: "percentage",
});
const qrUrl = await generateQRDataUrl(newCode);
console.log(qrUrl);
})();3️⃣ Print QR in Terminal
import { makeQRPayment, printQRTerminal, readQRCodeFromURL } from "my-qris";
(async () => {
const qris = await readQRCodeFromURL("https://example.com/qrcode.png");
const newCode = makeQRPayment({
qrCode: qris,
amount: 10000,
fee: 30,
feeType: "percentage",
});
printQRTerminal(newCode, true);
})();🧠 Function Reference
| Function | Description | Parameters | Returns |
| ------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| readQRCodeFromURL(url) | Reads and decodes a QR code from an image URL. | url: string — the source image URL. | QRIS data string |
| readQRCodeFromFile(filePath) | Reads and decodes a QR code from an file locally. | filePath: string — the local path of image source. | QRIS data string |
| makeQRPayment({ qrCode, amount, fee, feeType }) | Generates a new QRIS payment code based on an existing QR code. | - qrCode: base QR string- amount: transaction amount- fee: fee value- feeType: "percentage" or "flat" | New QRIS code string |
| generateQRDataUrl(qrString) | Converts QRIS string into a Base64 QR image data URL. | qrString: QRIS code string | Promise<string> (data URL) |
| getInfo(qrString) | Detail information of QRIS like merchant name, etc. | qrString: QRIS code string | QRISInfo: Information of QRIS |
| printQRTerminal(qrString, small?) | Prints the QR code to terminal using ASCII format. | - qrString: QRIS code- small (optional): boolean to toggle small display | void |
✅ Features
| Feature | Status | Description |
| ------------------------- | ------ | ----------------------------------------------------- |
| Read QR from URL | ✅ | Decode QR image directly from any URL |
| Generate new QRIS payment | ✅ | Create dynamic QRIS with custom amount and fee |
| Output as Data URL | ✅ | Generate QR image as base64 data URI |
| Terminal QR print | ✅ | Print QR directly in the console |
| Fee type control | ✅ | Supports percentage and flat fee |
| TypeScript support | ✅ | Fully typed with .d.ts declarations |
| Error handling | ✅ | Includes DefaultError and ValidationError classes |
| Local file QR reading | ✅ | Decode QR image locally |
| Get QRIS information | ✅ | Detail information of QRIS like merchant name, etc. |
🧾 License
MIT License © 2025 Ferdian Satria Akbar (@Ferdian9991) See LICENSE for more information.
💡 Contributing
Pull requests and issues are welcome! If you’d like to add features or improve QR validation, please fork the repo and submit a PR.
