v3.0.0 is released! Automatic Transaction Splitting, Zod 4 & Precision Math.
What's New
Getting StartedZero Setup

Installation & Setup

Install @omkarbhosale/upiqr into your application. Shipped with zero external native binaries, full TypeScript type definitions, and dual ESM/CJS module exports.

Package Managers

Select your preferred package manager to install the latest v3.0.0 release:

bash
npm install @omkarbhosale/upiqr
Python Package Available
Building with Python, Django, Flask, or FastAPI? Use the dedicated Python package omkarbhosale-upi-qr. Read the Python Integration Guide →

Import Styles

Version 3.0.0 ships with first-class support for both named and default imports:

Named Imports (Recommended)

Enables modern tree-shaking and cleaner auto-completion in modern IDEs:

index.ts
// Recommended in v3.0.0 for optimal tree-shaking
import { generateQR, splitTransactionQR } from "@omkarbhosale/upiqr";

// Import TypeScript interfaces
import type { QRParams, SplitQRParams, SplitQRItem } from "@omkarbhosale/upiqr";

Default Import (Backward Compatible)

If migrating from v1.x/v2.x, your existing default imports continue to work without breaking changes:

legacy-handler.js
// Backwards-compatible default export
import upiqr from "@omkarbhosale/upiqr";

// Single QR
const qr = await upiqr({ UPI_ID: "merchant@upi", AMOUNT: 500 });

// Split Transaction
const splits = await upiqr.splitTransactionQR({ UPI_ID: "merchant@upi", AMOUNT: 4000 });

CommonJS

server.cjs
// CommonJS environments
const { generateQR, splitTransactionQR } = require("@omkarbhosale/upiqr");

TypeScript Declarations

The package includes built-in declaration files (.d.ts and .d.ts.map) generated directly by TypeScript. No separate @types/ package is needed.

QRParams

Parameters for single UPI QR generation

SplitQRParams

Parameters for transaction splitting with thresholds

SplitQRItem

Item return structure containing id, amount, and image

Supported Environments

EnvironmentStatusNotes
Node.js (16+)SupportedNative support in ESM and CommonJS
Next.js (App & Pages)SupportedClient components and Server Actions / API routes
Modern BrowsersSupportedBundled via Vite, Webpack, Turbopack, or Rollup
TypeScript (4.5+)SupportedNative types bundled in package root

Verify Installation

Run this minimal script to verify that the package is correctly installed and resolving:

verify.ts
import { generateQR } from "@omkarbhosale/upiqr";

async function test() {
  const dataUrl = await generateQR({
    UPI_ID: "test@upi",
    AMOUNT: 100,
  });
  console.log("Success! QR Data URL:", dataUrl.slice(0, 30) + "...");
}

test();