OPEN SOURCE. BUILT WITH CARE.

Payment QR,
a little simpler.

From a few lines of TypeScript to a QR in your app. Tools for Vietnamese payments, with room for your own design.

TypeScript · MIT · Local payload generation
AT HOME IN YOUR STACK
ReactVueSvelteVanilla JS
A SMALL INTERACTIVE DEMO
A little everyday payment.

45.000đ

Ca phe sang

Vietcombank1122334455

SAMPLE DATA · PLEASE DO NOT TRANSFER

Generated in your browser
payment.ts
generateVietQR({
  bankId: "VCB",
  accountNo: "1122334455",
  amount: 45000,
  content: "Ca phe sang"
});
01

Small at the core.

Generate and validate EMVCo payload strings with a dependency-free TypeScript core.

02

Works where you do.

Generate payloads locally with the bundled bank directory. No QR generation service required.

03

Make it your own.

Start with a component or a ready-made template. Keep control of the experience.

01 / FROM IDEA TO CODE

Your stack. Your starting point.

Choose your framework, install the package, then make your first payment QR.

Read the quick start
Your stack
pnpm add @viet-qr/core @viet-qr/react

02 / A PLACE TO EXPERIMENT

See it in your framework.

One set of payment details. Four familiar ways to build.

A SMALL PROJECT BY ZEFORC

Useful tools deserve a little care.

VietQR brings payload generation, framework components and practical examples together. Explore the source, share an idea, or help make the next release better.

Meet the project on GitHub