
Welcome to the Raast QR documentation, your definitive guide to Generating Raast Payment QR Codes in Laravel. Raast QR offers a fluent, expressive API built specifically for Pakistani IBANs.
Introduction
Across Pakistan, a huge share of online payments still happen the same way: a store shows a customer an IBAN and an amount, and asks them to type both into their banking app. Twenty-four characters of account number, then a figure, then a hope that nothing was mistyped.
That's where Raast QR comes in. Give it an IBAN and an amount, and it produces a QR code that fills in the account and the amount automatically in any Raast-enabled banking app. The customer scans, checks the account title, and confirms.
Everything happens inside your own application. There is no API key, no outbound HTTP request, and no database table. The IBAN goes in as an argument and comes back out as pixels.
What It Looks Like
A checkout screen and a printed counter card, both generated by the package:


More in Real-World Examples.
Features
Fluent Builder: A chainable API that reads naturally. Set the IBAN, amount, expiry, size, colours, logo and label in one expression, then ask for whatever output you need.
Multiple Output Formats: Raw PNG bytes, an SVG string, a
data:URL for an<img>tag, a file on disk, a file on a filesystem disk, or an HTTP response returned straight from a controller.Blade Component: Drop
<x-raast-qr />into any view. Attributes for amount, size, colour, logo and label, with everything else passed through to the rendered element.IBAN Validation: A
PakistaniIbanrule object and apakistani_ibanstring rule, both checking the full ISO 13616 mod-97 checksum rather than just the shape.Artisan Commands: Generate a QR or inspect a payload straight from the terminal, useful for debugging what a banking app is actually reading.
Static and Dynamic Codes: Include an amount for a one-off payment, or leave it out for a static code you print once and leave on the counter all day.
Swappable Renderer: The payload builder has no dependency on the image layer. Bind your own renderer if you would rather use a different QR library.
Machine-Readable Errors: Every failure carries an
ErrorCodeenum, so your API can return a stable code instead of a message string.Nothing Stored, Nothing Sent: No network calls, no persistence, no telemetry.
Getting Started
Ready to turn manual transfers into a single scan? Dive into the straightforward installation process outlined in the Installation section.
A Note on Scope
Raast QR generates person-to-person QR codes. Funds go straight to an IBAN, which means the format carries no merchant settlement reporting, no refunds, and no dispute resolution. Businesses that need those should use Raast P2M through an SBP-licensed acquirer.
This package only draws the code. It never touches the payment, never confirms one happened, and cannot reverse one.
Support My Work ☕
If you find Raast QR helpful and would like to support my work, you can buy me a coffee. Your support will help keep this project alive and thriving. It's a small token of appreciation that goes a long way.
License 🔐
Raast QR is open-sourced software licensed under the MIT License (MIT). Please see License File for more information.
Let's turn every payment screen into a single scan with Raast QR!
Made with ❤️ from Pakistan
