ON-DEVICE SDK · iOS · ANDROID

Generate QR codes entirely on-device.

Turn a URL, plain text, a vCard, a UPI string, or Wi-Fi credentials into a crisp QR bitmap your app can display, cache, or save to the gallery. Everything runs on the phone. Nothing leaves the device, and it works with no connection at all.

iOS, Android, Flutter & React Native 100% on-device, no network URL, text, vCard, UPI, Wi-Fi payloads
WHAT IT DOES

QR bitmaps from any payload, fully offline

  • ✓ Encode URLs, plain text, vCard contacts, UPI payment strings, and Wi-Fi credentials
  • ✓ Render straight to a bitmap you can show in an ImageView, cache, or save to the gallery
  • ✓ 100% on-device, so there's no network round-trip and no payload ever leaves the phone
  • ✓ Outputs a crisp QR bitmap, sized automatically up to 512 px
  • ✓ Single synchronous call, safe to run off the UI thread for batch generation
  • ✓ Works in air-gapped and offline environments with no server dependency
java
// Encode a UPI payment string into a QR bitmap, fully on-device
OpticalCodeHelper codes = new OpticalCodeHelper(this);
Bitmap qr = codes.GenerateQRCode("upi://pay?pa=merchant@bank&am=250.00");
imageView.setImageBitmap(qr);
USE CASES

Common scenarios

In-app dynamic QR

Generate a fresh code on every screen render: session tokens, checkout carts, or booking references that change per user and expire fast.

Offline payment QR

Encode UPI or EMV payment strings on the device. A merchant can take payment even with no signal at the counter.

Event passes

Render ticket and badge codes on the device for entry gates. Scanning works instantly, even where venue Wi-Fi is patchy.

Device pairing

Show a pairing code that a second device reads with QR Code Scanning to exchange keys or push configuration.

Share links

Turn a deep link or profile URL into a scannable code. Users point a camera at it to open a page or start an install flow.

Loyalty codes

Issue member and coupon codes as QR bitmaps that redeem at the counter. Pair them with captured docs from Mobile Scanning for full onboarding.

PRICING

Priced for every team

Included in the SDK licence. Pricing shown in your local currency.

Affordable to all

On-device generation means no per-render server cost. One SDK licence covers every code you create, from a handful a day to millions a month.

See pricing →

FAQ

Common questions

Which platforms does the QR code generation SDK support?
It runs natively on iOS, Android, Flutter, and React Native from a single SDK. The same call encodes a string into a QR bitmap on every platform, so you write your payload logic once and reuse it across your mobile apps.
Does QR code generation work offline?
Yes. Generation runs entirely on the device with no network round-trip, so it works in air-gapped, low-signal, and fully offline environments. The payload you encode never leaves the phone, which keeps sensitive data such as payment strings or credentials private.
What kinds of data can I encode into a QR code?
Anything you can express as a string: a URL or deep link, plain text, a vCard contact, a upi:// payment string, or Wi-Fi credentials. You build the payload text in your app and pass it in, and the encoder treats it as a string, so any standard QR payload format works.
How large is the generated QR code image?
The call returns a QR bitmap sized automatically up to 512 px. You can display it directly in an image view, scale it for print, cache it, or save it to the gallery.
Can I set the error-correction level or custom colours?
No. Generation takes a single string and returns a standard black-on-white QR bitmap; there is no error-correction-level or colour parameter to configure. This keeps the API to one call and produces a code that any standard QR reader can scan.
Can the same SDK also generate barcodes?
Yes. Alongside QR codes, the same on-device generator produces Code 128 barcodes, with an option to render the human-readable value beneath the bars. Reading codes is a separate capability that handles a broader set of 1D and 2D symbologies via QR scanning and barcode scanning.
Is it fast enough to generate codes in bulk?
Yes. Each code is produced by a single synchronous call, so you can generate one per screen render or run it off the UI thread to create codes in batches. Because there is no server involved, throughput is limited only by the device, with no per-render network cost.
How is QR code generation licensed?
It is included in the SDK licence: one licence covers every code you generate, whether that is a handful a day or millions a month. Because generation runs on-device there is no per-render server cost. See pricing for details.

Add QR generation to your app

Free signup credit. No card required.