QRIS jadi gambar siap pakai
Ubah QRIS statis, dinamis, atau payload string menjadi standee, poster, stiker, dan story promosi. Pilih template, sesuaikan teks, warna, dan logo. Library TypeScript, API gratis, dan generator di browser.
Generator
Semua diproses di browser. QRIS dan logo Anda tidak dikirim ke server mana pun.
Lanjutan: template kustom (JSON)
Salin spec template saat ini, ubah posisi/teks/warna, lalu aktifkan. Elemen: rect, circle, path, text, image, qr. Binding: {{merchantName}}, {{nmid}}, {{amount}}, {{colors.primary}}, {{assets.qris}}, {{logo}}.
Template & kustomisasi
Tiga lapis, makin dalam makin bebas:
- Preset siap pakai.
renderQRIS(payload, { template: 'gpn' })langsung jadi. Nama merchant, NMID, dan nominal terisi otomatis dari payload. - Kustomisasi preset. Tiap template punya
fields(judul, footer, dll), plus tema warna, gaya QR (square,dots,rounded), warna per elemen, dan logo di tengah QR. - Template sendiri. Spec JSON deklaratif atau
extendTemplate. Semua preset memakai format yang sama, jadi bisa disalin lalu diubah.
import { extendTemplate, renderQRIS } from 'qristifier'
// Turunkan dari preset…
const mine = extendTemplate('minimal', {
id: 'kafe',
fields: [{ key: 'footer', label: 'Footer', type: 'text', default: 'Kopi Senja' }],
})
// …atau tulis spec JSON sendiri (rect, circle, path, text, image, qr)
renderQRIS(payload, { template: mine })Library
ESM + CJS + tipe TypeScript. SVG dihasilkan murni di JS (jalan di Node, Bun, browser, Workers). PNG lewat subpath opsional qristifier/png.
npm i qristifierimport { renderQRIS } from 'qristifier'
// Pilih template, sisanya terisi otomatis dari payload (nama, NMID, ...)
const svg = renderQRIS(payload, { template: 'gpn' })
// Kustomisasi: nominal, tema, logo, teks
const poster = renderQRIS(payload, {
template: 'poster',
amount: 25000, // statis → dinamis (via qrisnamis)
theme: 'biru',
qrStyle: 'rounded',
logo: 'data:image/png;base64,...',
fields: { title: 'BAYAR DI SINI', footer: 'Terima kasih!' },
})import { renderQRISPng } from 'qristifier/png' // butuh: npm i @resvg/resvg-wasm
const { png } = await renderQRISPng(payload, { template: 'story', width: 1080 })
await Bun.write('qris.png', png)API
Gratis dan stateless. Coba langsung di API Playground.
GET /api/templates— daftar template, field, dan temaGET /api/render— gambar langsung (format=svg|png), cocok untuk<img>POST /api/render— kustomisasi lengkap, termasuk template JSON sendiriPOST /api/parse— parse & validasi payload
curl -X POST https://qristifier.pages.dev/api/render \
-H 'content-type: application/json' \
-d '{"qris":"000201...","template":"gpn","amount":15000,"format":"png"}' \
-o qris.pngSVG ringan dan cepat. Render PNG di server memakai CPU lebih besar dan bisa melewati batas plan gratis Cloudflare; untuk PNG besar gunakan generator di atas atau library. Dengan memakai API ini Anda menyetujui Syarat Penggunaan.
Proyek terkait
Traktir pengembang
qristifier gratis dan open source. Kalau bermanfaat, traktir kopi lewat Trakteer atau GitHub Sponsors.