Tutorial 23 Aug 2026 2 Kali Dibaca

Cara Membuat QR Code untuk Verifikasi Invoice Laravel

Gugun Nurdiansyah
Penulis
Cara Membuat QR Code untuk Verifikasi Invoice Laravel

Apa Itu QR Code Verifikasi Invoice?

QR Code verifikasi invoice adalah kode yang dapat dipindai menggunakan kamera smartphone untuk membuka halaman verifikasi invoice.

Contoh alurnya:

Invoice PDF
↓
QR Code
↓
Scan dengan Smartphone
↓
Halaman Verifikasi
↓
Invoice Valid / Tidak Valid

Informasi yang dapat ditampilkan:

  1. Nomor invoice.

  2. Tanggal invoice.

  3. Nama pelanggan.

  4. Total transaksi.

  5. Status pembayaran.

  6. Waktu verifikasi.

Install Library QR Code

Salah satu package yang dapat digunakan adalah Simple QR Code.

Install menggunakan Composer:

composer require simplesoftwareio/simple-qrcode

Kemudian QR Code dapat dibuat dari URL verifikasi invoice.

Membuat Route Verifikasi

Tambahkan route:

Route::get(
    '/invoice/{invoice}/verify',
    [InvoiceController::class, 'verify']
)->name('invoice.verify');

Contohnya, invoice dengan ID 125 memiliki URL:

https://example.com/invoice/125/verify

Namun, untuk keamanan sebaiknya jangan menggunakan ID database secara langsung sebagai kode verifikasi.

Gunakan Token Verifikasi

Tambahkan kolom token pada tabel invoice:

$table->string('verification_token')
    ->unique();

Kemudian buat token ketika invoice dibuat:

use Illuminate\Support\Str;

$invoice = Invoice::create([
    'invoice_number' => $invoiceNumber,
    'customer_id' => $request->customer_id,
    'verification_token' => Str::random(64),
    'invoice_date' => now(),
    'total' => $request->total,
]);

Contoh URL:

https://example.com/invoice/verify/8f72a9...

Token tersebut digunakan sebagai identitas publik invoice.

Membuat Halaman Verifikasi

Pada controller:

public function verify(string $token)
{
    $invoice = Invoice::where(
        'verification_token',
        $token
    )->first();

    if (!$invoice) {
        return view(
            'invoices.invalid'
        );
    }

    return view(
        'invoices.verify',
        compact('invoice')
    );
}

Jika token ditemukan, invoice dianggap valid.

Membuat QR Code

Pada halaman atau template invoice:

use SimpleSoftwareIO\QrCode\Facades\QrCode;

Kemudian:

{!! QrCode::size(120)->generate(
    route(
        'invoice.verify',
        $invoice->verification_token
    )
) !!}

QR Code tersebut akan berisi URL verifikasi.

Menampilkan QR Code pada PDF

Jika invoice dibuat menjadi PDF, QR Code dapat ditempatkan pada bagian bawah invoice.

Contohnya:

<div class="verification">
    <p>
        Scan QR Code untuk verifikasi invoice
    </p>

    {!! QrCode::size(100)->generate(
        route(
            'invoice.verify',
            $invoice->verification_token
        )
    ) !!}
</div>

Hasilnya kira-kira:

┌─────────────────────────────┐
│          INVOICE            │
│                             │
│ No: INV/2026/08/000001      │
│ Total: Rp1.500.000          │
│                             │
│       [ QR CODE ]           │
│                             │
│ Scan untuk verifikasi       │
└─────────────────────────────┘

Membuat Halaman Invoice Valid

Contoh Blade:

<h1>Invoice Valid</h1>

<p>
    Nomor Invoice:
    {{ $invoice->invoice_number }}
</p>

<p>
    Tanggal:
    {{ $invoice->invoice_date->format('d/m/Y') }}
</p>

<p>
    Total:
    Rp {{ number_format(
        $invoice->total,
        0,
        ',',
        '.'
    ) }}
</p>

<p>
    Status:
    {{ strtoupper($invoice->status) }}
</p>

Halaman tersebut dapat dibuat lebih sederhana agar pelanggan langsung mengetahui bahwa invoice berhasil diverifikasi.

Jika Invoice Tidak Valid

Buat:

resources/views/invoices/invalid.blade.php

Contohnya:

<h1>Invoice Tidak Ditemukan</h1>

<p>
    Nomor invoice tidak dapat diverifikasi.
</p>

<p>
    Silakan hubungi pihak penerbit invoice.
</p>

Jangan menampilkan informasi database atau error internal kepada pengguna.

Tambahkan Status Pembayaran

Halaman verifikasi dapat menampilkan:

Invoice       : INV/2026/08/000001
Tanggal       : 23/08/2026
Total         : Rp1.500.000
Status        : LUNAS

Status dapat dibuat berdasarkan field:

$invoice->status

Contohnya:

UNPAID
PAID
CANCELLED
EXPIRED

Dengan demikian QR Code tidak hanya memverifikasi keberadaan invoice, tetapi juga membantu pelanggan mengetahui status dokumen tersebut.

Jangan Masukkan Data Sensitif ke QR Code

Hindari memasukkan data seperti:

NIK
Nomor rekening
Password
Token pembayaran
Data kartu
Data pribadi lengkap

QR Code cukup berisi URL verifikasi atau identifier acak.

Contohnya:

https://example.com/verify/8f72a9...

Data invoice kemudian diambil dari server.

Tambahkan Signature untuk Keamanan

Untuk sistem dengan kebutuhan keamanan lebih tinggi, URL verifikasi dapat menggunakan signed URL atau token acak yang tidak mudah ditebak.

Laravel menyediakan signed URL untuk memastikan URL tidak dimodifikasi tanpa terdeteksi.

Contohnya:

URL::signedRoute(
    'invoice.verify',
    [
        'invoice' => $invoice->id,
    ]
);

Pada route:

Route::get(
    '/invoice/{invoice}/verify',
    [InvoiceController::class, 'verify']
)->name('invoice.verify')
->middleware('signed');

Pendekatan ini dapat menjadi lapisan keamanan tambahan.

QR Code untuk Invoice yang Sudah Dibatalkan

Invoice yang dibatalkan tetap dapat ditemukan, tetapi statusnya harus ditampilkan dengan jelas.

Contohnya:

Invoice: INV/2026/08/000001

Status:
DIBATALKAN

Invoice ini tidak lagi berlaku.

Jangan menghapus data invoice hanya karena statusnya dibatalkan jika sistem membutuhkan riwayat transaksi.

QR Code untuk Invoice Lunas

Untuk invoice yang sudah dibayar:

✓ INVOICE VALID

Nomor:
INV/2026/08/000001

Status:
LUNAS

Total:
Rp1.500.000

Informasi tersebut membantu pelanggan atau pihak lain melakukan pengecekan tanpa harus meminta dokumen tambahan.

Contoh Alur Lengkap

Pelanggan melakukan transaksi
↓
Laravel membuat invoice
↓
Generate nomor invoice
↓
Generate verification token
↓
Simpan invoice
↓
Generate QR Code
↓
QR Code dimasukkan ke PDF
↓
Invoice dikirim ke pelanggan
↓
Pelanggan melakukan scan
↓
Laravel memeriksa token
↓
Tampilkan status invoice

Fitur Tambahan yang Bisa Dibuat

Sistem verifikasi dapat dikembangkan dengan:

  1. QR Code invoice.

  2. Nomor invoice otomatis.

  3. Status pembayaran realtime.

  4. Digital signature.

  5. Timestamp verifikasi.

  6. Link download invoice.

  7. Cetak ulang invoice.

  8. Riwayat perubahan status.

  9. Payment gateway.

  10. WhatsApp invoice.

Untuk sistem multi-cabang, QR Code juga dapat menampilkan informasi cabang penerbit invoice.

Kesalahan yang Perlu Dihindari

Menggunakan ID Database sebagai QR Code

ID seperti:

/invoice/125

lebih mudah ditebak.

Gunakan token acak atau signed URL.

Menyimpan Data Invoice di QR Code

QR Code sebaiknya berisi URL verifikasi, bukan seluruh informasi transaksi.

Tidak Menggunakan HTTPS

Halaman verifikasi invoice sebaiknya menggunakan HTTPS untuk melindungi komunikasi antara perangkat pelanggan dan server.

Tidak Memeriksa Status Invoice

Invoice yang dibatalkan atau expired tetap dapat ditemukan, tetapi statusnya harus ditampilkan dengan benar.

Membuka Data Sensitif

Tampilkan informasi yang diperlukan untuk verifikasi saja.

QR Code Invoice Bersama Ovla Media

Ovla Media dapat membantu mengembangkan sistem invoice dan verifikasi digital untuk:

  1. Invoice PDF.

  2. QR Code verification.

  3. Digital signature.

  4. Payment gateway.

  5. QRIS.

  6. WhatsApp invoice.

  7. Sistem multi-cabang.

  8. Point of Sales.

  9. Sistem billing.

  10. Aplikasi bisnis custom.

Sistem dapat dibuat agar pelanggan cukup melakukan scan QR Code untuk memastikan invoice benar-benar diterbitkan oleh perusahaan dan mengetahui status pembayarannya.

Kesimpulan

QR Code dapat menjadi bagian penting dari sistem verifikasi invoice Laravel.

Konsep sederhananya:

Invoice
↓
QR Code
↓
URL Verifikasi
↓
Token
↓
Database
↓
Status Invoice

QR Code sebaiknya hanya menyimpan URL atau token verifikasi, sementara informasi invoice tetap diambil dari database.

Dengan pendekatan ini, bisnis dapat membuat invoice PDF yang lebih profesional sekaligus menyediakan mekanisme verifikasi yang mudah digunakan oleh pelanggan.

#QR Code Laravel #QR Code Invoice #Verifikasi Invoice #Invoice Laravel #PDF Laravel #Laravel DomPDF #Laravel QR Code #Invoice Verification #Digital Invoice #Invoice Online #Laravel Security #Signed URL Laravel #Payment Verification #QRIS Laravel #Sistem Billing #Invoice PDF #Laravel Developer Indonesia #Web Development #Ovla Media #Jasa Laravel
Beranda Produk Artikel
Konsultasi
OVLA

Navigasi Utama

Hubungi Kami

Mulai Konsultasi Sekarang