VietQR Core SDK is an enterprise-grade payment infrastructure adhering strictly to Vietnamese National Standards (NAPAS 247) and the international EMVCo QR specification. Key architectural pillars include:
img.vietqr.io or cdn.vietqr.io). All bank logos, brand assets, typography, and QR image renderers are hosted 100% on your own server./image/{bin}-{acc}-{template}.png) and interactive Deeplink Hubs (/qr/pay) dynamically resolve against your configured custom domain (e.g., https://qr.yourdomain.com).x86, x64, ARMv7, and ARM64.+-------------------------------------------------------------------------------+
| CLIENTS |
| +--------------------+ +--------------------+ +-------------------------+ |
| | Web Browser / Ecom | | iOS / Android Apps | | ERP / POS / Backend API | |
| +---------+----------+ +---------+----------+ +------------+------------+ |
+------------|-----------------------|--------------------------|---------------+
| | |
v v v
+-------------------------------------------------------------------------------+
| REVERSE PROXY & SSL (NGINX / CADDY / CLOUDFLARE) |
| https://qr.yourdomain.com (Let's Encrypt TLS) |
+------------------------------------+------------------------------------------+
|
v
+-------------------------------------------------------------------------------+
| VIETQR GATEWAY ENGINE (RUST SERVICE) |
| |
| +------------------------+ +----------------------+ +-------------------+ |
| | QuickLink Image API | | Web Deeplink Hub | | REST API | |
| | /image/{slug}.png | | /qr/pay (Mobile) | | /api/v1/generate | |
| +-----------+------------+ +----------+-----------+ +---------+---------+ |
| | | | |
| v v v |
| +-------------------------------------------------------------------------+ |
| | CORE MODULES | |
| | - EMVCo TLV Generator & Parser (CRC16-CCITT False: 0x1021) | |
| | - High Performance Canvas Renderer (compact, compact2, standee, sepay) | |
| | - Bank Catalog & Local Assets Registry (62+ Vietnamese Banks) | |
| | - Deeplink Registry (35+ Banking Apps via Direct URL Schemes) | |
| +-------------------------------------------------------------------------+ |
| | |
| v |
| +-------------------------------------------------------------------------+ |
| | LOCAL ASSETS & STORAGE | |
| | assets/banks/*.png | assets/brand/*.png | assets/fonts/Roboto-Bold.ttf | |
| +-------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------+
^
| Direct SDK embedding or Gateway REST
+------------------------------------+------------------------------------------+
| MULTILINGUAL SDK SUITE |
| +--------+ +----------+ +------+ +------+ +---------+ +-----+ +------+ |
| | C (C99)| | C++(C++17| | Rust | | Go | | Node/TS | | PHP | | Java | |
| +--------+ +----------+ +------+ +------+ +---------+ +-----+ +------+ |
| +--------+ +----------+ |
| | Python | | .NET C# | |
| +--------+ +----------+ |
+-------------------------------------------------------------------------------+
The generated QR code strictly adheres to the EMVCo Merchant-Presented QR standard:
"01"."11": Static QR (Fixed counter, user enters variable amount)."12": Dynamic QR (Order-specific, pre-defined amount and memo).00 (Globally Unique Identifier): "A000000727" (NAPAS routing ID).01 (Payment Network Specific):
00: 6-digit Bank BIN (e.g. 970436 for Vietcombank).01: Beneficiary Account Number.02 (Service Code):
"QRIBFTTA": Transfer to Account."QRIBFTTC": Transfer to Card."704" (ISO 4217 VND code)."100000")."VN".08 (Purpose of Transaction): Order memo (max 50 chars, auto-normalized without Vietnamese diacritics for 100% banking app compatibility).Polynomial: 0x1021, Initial Value: 0xFFFF, no reflection).