PHPackages                             takashato/laravel-vietqr - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. takashato/laravel-vietqr

ActiveLibrary[API Development](/categories/api)

takashato/laravel-vietqr
========================

Laravel package to generate VietQR codes for Vietnamese bank transfers (NAPAS/EMVCo standard)

v0.0.2(2y ago)4463[2 PRs](https://github.com/takashato/laravel-vietqr/pulls)MITPHPPHP ^8.1CI failing

Since Dec 25Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/takashato/laravel-vietqr)[ Packagist](https://packagist.org/packages/takashato/laravel-vietqr)[ Docs](https://github.com/takashato/laravel-vietqr)[ RSS](/packages/takashato-laravel-vietqr/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (13)Versions (5)Used By (0)

Laravel VietQR
==============

[](#laravel-vietqr)

[![Latest Version on Packagist](https://camo.githubusercontent.com/22205850119cb2974e7f5c3a2ee6e785145df8baf39b1a748c03889314393dfc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f74616b61736861746f2f6c61726176656c2d7669657471722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/takashato/laravel-vietqr)[![GitHub Tests Action Status](https://camo.githubusercontent.com/e6e89f80537ffbc31ff817c42af8e7ce62f14e973bc571a07af1900852d8d52e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f74616b61736861746f2f6c61726176656c2d7669657471722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473)](https://github.com/takashato/laravel-vietqr/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/7f9cbcf423f0c361df2b9dc0ec36819faf01ff7973e84a3a5b72f185aa721352/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f74616b61736861746f2f6c61726176656c2d7669657471722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/takashato/laravel-vietqr)

Generate VietQR codes for Vietnamese bank transfers. Follows [NAPAS VietQR v1.5.2](https://vietqr.net/) specification (EMVCo standard).

Features
--------

[](#features)

- **Static &amp; Dynamic QR** - Reusable or one-time payment codes
- **Account &amp; Card Transfers** - IBFT to bank accounts or cards
- **50+ Vietnamese Banks** - Type-safe bank enum with BIN codes
- **Multiple Formats** - SVG, PNG, PDF, Base64 image generation
- **Laravel Integration** - Service provider, facade, Laravel 10/11/12
- **NAPAS Compliant** - Verified against official specification

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 10, 11, or 12

Installation
------------

[](#installation)

```
composer require takashato/laravel-vietqr
```

The package auto-registers via service provider.

Quick Start
-----------

[](#quick-start)

### Simple Bank Account QR (Static)

[](#simple-bank-account-qr-static)

```
use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

// Static QR - customer enters amount
$qr = VietQrCode::bankAccount(Bank::VIETCOMBANK, '0011012345678');

// Get QR string (for your own rendering)
$qrString = $qr->build();

// Generate SVG
$svg = $qr->generateQr('svg', 300);

// Generate Base64 PNG
$base64 = $qr->generateQrBase64('png', 300);
```

### Dynamic QR with Amount

[](#dynamic-qr-with-amount)

```
use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

// Dynamic QR - fixed amount of 180,000 VND
$qr = VietQrCode::bankAccount(
    bank: Bank::TECHCOMBANK,
    accountNumber: '19033123456789',
    amount: 180000,
    purpose: 'Thanh toan don hang #12345'
);

echo $qr->build();
```

### Card Transfer QR

[](#card-transfer-qr)

```
use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

$qr = VietQrCode::bankCard(
    bank: Bank::MB_BANK,
    cardNumber: '9704229012345678',
    amount: 50000
);
```

Advanced Usage
--------------

[](#advanced-usage)

### Fluent Builder API

[](#fluent-builder-api)

```
use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Data\MerchantInfo;
use Takashato\VietQr\Data\AdditionalInfo;
use Takashato\VietQr\Enums\Service;

$qr = (new VietQrCode())
    ->dynamicMethod()
    ->withMerchant(function (MerchantInfo $merchant) {
        $merchant
            ->setService(Service::NAPAS_BY_ACCOUNT)
            ->setAcquirerId('970436')  // Vietcombank BIN
            ->setMerchantId('0011012345678');
    })
    ->amount(180000)
    ->withAdditionalInfo(function (AdditionalInfo $info) {
        $info
            ->terminalLabel('POS001')
            ->purpose('Thanh toan don hang');
    })
    ->build();
```

### Using Bank Enum

[](#using-bank-enum)

```
use Takashato\VietQr\Enums\Bank;

// Get bank BIN code
$bin = Bank::VIETCOMBANK->value; // '970436'

// Get bank names
$shortName = Bank::VIETCOMBANK->shortName(); // 'Vietcombank'
$fullName = Bank::VIETCOMBANK->nameVi(); // 'Ngân hàng TMCP Ngoại thương Việt Nam'

// Find bank by BIN
$bank = Bank::fromBin('970436'); // Bank::VIETCOMBANK

// Search banks
$results = Bank::search('viet'); // Returns matching Bank enums
```

### Using Facade

[](#using-facade)

```
use Takashato\VietQr\Facades\VietQr;

$qr = VietQr::create()
    ->staticMethod()
    ->withMerchant(...)
    ->build();
```

Available Banks
---------------

[](#available-banks)

The `Bank` enum includes 50+ Vietnamese banks:

**State-owned:** Vietcombank, VietinBank, BIDV, Agribank

**Joint-stock:** Techcombank, MB Bank, ACB, VPBank, Sacombank, TPBank, HDBank, VIB, SHB, SCB, OCB, MSB, Eximbank, SeABank, LienVietPostBank, ABBank, and more...

**Foreign branches:** HSBC, Standard Chartered, Shinhan Bank, UOB, Woori Bank, CIMB, and more...

**E-wallets:** VNPT Money, CAKE, Ubank, Timo, TNEX

QR Code Types
-------------

[](#qr-code-types)

TypeMethodAmountUse CaseStatic`staticMethod()`Customer entersStore display, reusableDynamic`dynamicMethod()`Fixed in QRInvoice, one-time paymentServices
--------

[](#services)

ServiceEnumDescriptionNAPAS\_BY\_ACCOUNT`Service::NAPAS_BY_ACCOUNT`Transfer to bank accountNAPAS\_BY\_CARD`Service::NAPAS_BY_CARD`Transfer to bank cardQR\_CASH`Service::QR_CASH`ATM cash withdrawalQR\_PUSH`Service::QR_PUSH`Product paymentBlade Usage
-----------

[](#blade-usage)

```
{{-- SVG directly in HTML --}}
{!! VietQrCode::bankAccount(Bank::BIDV, '12345678901')->generateQr('svg', 250) !!}

{{-- Base64 image --}}

```

Documentation
-------------

[](#documentation)

Comprehensive documentation is available in the `/docs` directory:

- **[Project Overview &amp; PDR](./docs/project-overview-pdr.md)** - Feature list, requirements, roadmap
- **[System Architecture](./docs/system-architecture.md)** - Component design, data flow, EMVCo structure
- **[Codebase Summary](./docs/codebase-summary.md)** - File structure, design patterns, code organization
- **[Code Standards](./docs/code-standards.md)** - Development guidelines, naming conventions, quality checks

Testing
-------

[](#testing)

```
composer test
```

Code Quality
------------

[](#code-quality)

```
# Format code with Pint
composer format

# Run static analysis
composer analyse
```

Security
--------

[](#security)

For security vulnerabilities, please email .

Credits
-------

[](#credits)

- [takashato](https://github.com/takashato)
- [NAPAS VietQR Specification](https://vietqr.net/)

License
-------

[](#license)

MIT License. See [LICENSE.md](LICENSE.md).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance52

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~240 days

Total

2

Last Release

995d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5b280ed74626c8d1b0987f67b9d44a800176c00ca29eed6b952dcdcdaa13fbe0?d=identicon)[takashato](/maintainers/takashato)

---

Top Contributors

[![takashato](https://avatars.githubusercontent.com/u/18548719?v=4)](https://github.com/takashato "takashato (18 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

laraveltakashatolaravel-vietqr

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/takashato-laravel-vietqr/health.svg)

```
[![Health](https://phpackages.com/badges/takashato-laravel-vietqr/health.svg)](https://phpackages.com/packages/takashato-laravel-vietqr)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.0k7.8M57](/packages/dedoc-scramble)[scalar/laravel

Render your OpenAPI-based API reference

6183.9k2](/packages/scalar-laravel)[ryangjchandler/bearer

Minimalistic token-based authentication for Laravel API endpoints.

8129.8k](/packages/ryangjchandler-bearer)[combindma/laravel-facebook-pixel

Meta pixel integration for Laravel

4956.9k](/packages/combindma-laravel-facebook-pixel)[stechstudio/laravel-hubspot

A Laravel SDK for the HubSpot CRM Api

2971.0k](/packages/stechstudio-laravel-hubspot)[njoguamos/laravel-plausible

A laravel package for interacting with plausible analytics api.

208.8k](/packages/njoguamos-laravel-plausible)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
