The UPI gateway that verifies itself.
Host-to-host APIs, embedded UPI intent, and automatic UTR verification that confirms every payment in real time, so no rupee goes unclaimed and no customer waits.
Real-time auto-verification, self-healing routing, and books that close themselves. The work the rest of the market does by hand, JUNEPAY does in software. That is the moat.
Accepts every UPI app. Settles across leading bank rails.
and every UPI-enabled bank app
Create. Pay. Auto-verify. Settle.
One API call to collect. Everything after is automatic.
Create a payment
POST one request to the host-to-host API with your order and amount. Get back a UPI intent, a QR, and a hosted link. Your choice.
Customer pays
They pay in any UPI app, embedded in your UI from the intent or on a branded hosted checkout.
Auto-verify
The payment is matched and confirmed in real time. No one types a UTR. You receive a signed webhook the moment it clears.
Settle
Funds are reconciled to the rupee and settled to your bank, instantly or on your schedule.
Automatic UTR verification
The status quo is a person matching bank references by hand, or a script that keeps breaking. JUNEPAY confirms payments in real time on the server.
Real-time confirmation
Credits are matched to orders the instant they land, by reference first and then amount.
Zero unclaimed money
Late, mistyped, or expired-order payments are automatically recovered and reconciled, never left to become a dispute.
Self-monitoring rails
Health checks flag a stalled or thinning channel before it can cost you a payment.
A true host-to-host API
Integrate entirely server-to-server, with no forced redirect. Branch on the response mode and build the checkout you want.
- Zero-dependency SDKs: Node, Python, PHP, Ruby, Go, Java, C#.
- Idempotent on
order_id, so retries are safe and never double-charge. - Signed webhooks (HMAC-SHA256 of the raw body) with dedup, retries, and a dead-letter queue.
- Live + test keys, sandbox mode, one-click test webhook, full OpenAPI reference.
// 1) Create a payment (host-to-host)
const res = await junepay.paymentRequests.create({
order_id: 'INV-1001',
amount: 499.00,
customer: { name: 'A. Sharma', email: 'a@example.com' },
callback_url: 'https://you.com/junepay/webhook',
});
// Branch on the mode you got back:
if (res.checkout.mode === 'upi_intent') {
render(res.qr); // your own embedded checkout
} else {
redirect(res.paymentLink); // hosted checkout
}
// 2) Verify the signed webhook (raw body)
app.post('/junepay/webhook', express.raw({ type: '*/*' }), (req, res) => {
const ok = junepay.verifyWebhook(req.body, req.headers['x-signature']);
if (!ok) return res.sendStatus(401);
res.sendStatus(200); // ACK fast, then process
});
One platform, end to end
From the first API call to settlement and reconciliation.
Embed it, or drop it in
Build a fully embedded checkout from a UPI intent, or use a branded hosted page. Same API, your call.
- Embedded (H2H): render the dynamic QR, open app deep links (Google Pay, PhonePe, Paytm), or show a “pay to VPA” UI. No redirect.
- Hosted checkout: a polished, mobile-first page in four themes.
- Payment links & bills: share a link or invoice, no code required.
- Redirects: success/failure URLs and per-request callback URLs.
Engineered to stay up under load
Smart routing
Self-balancing across a pool with a hard daily-cap ceiling. No overrun, no clumping.
Automatic failover
A dead session is detected and dropped from routing before it costs you a payment.
Limit shaping
Per-account daily cap, per-transaction cap, new-account ramp, and fill taper protect every channel.
Multi-gateway
One integration; switch or add underlying rails with no code change.
Books that close themselves
Automated rail-vs-ledger reconciliation and end-of-day reports, for every audience.
- Close-of-day rail-vs-ledger: every difference surfaced automatically.
- End-of-day reports for four audiences: business, tech, operations, and each merchant.
- Real-time dashboards: conversion, volume, and per-channel / per-merchant breakdowns.
- Unclaimed-money exposure tracked continuously, so your chargeback risk is visible at a glance.
Built to be trusted with money
Signed webhooks
HMAC-SHA256 over the raw body, with event dedup, retries, and a dead-letter queue.
Hashed API keys
Keys are hashed at rest and shown once; one live + one test key, with rotation.
2FA & RBAC
Two-factor for privileged roles, role-based access, and audited impersonation.
Encrypted & auditable
Credentials encrypted at rest; a tamper-evident audit chain; IP allowlisting.
For merchants & platforms
Go live fast. Collect on every UPI app. Stop chasing “paid but not updated”.
Start integrating- Integrate once: host-to-host API, embedded UPI intent, or a hosted checkout.
- Accept every UPI app; ship a branded, themed checkout.
- Payments confirm automatically in real time, so far fewer “I paid, where's my order?” tickets.
- Fast, predictable settlement to your bank; instant/auto-settle available.
- Real-time dashboard, analytics, and end-of-day reports.
- No chargebacks from unclaimed payments. Every credit is reconciled.
Why teams choose JUNEPAY
It verifies itself
Payments are confirmed in real time on the server. No one pastes bank references by hand, and there are no brittle scripts to babysit.
Zero unclaimed money
Every rail credit is matched to an order. Late or mistyped payments are automatically recovered, so money never strands and never turns into a dispute.
It stays on
Self-balancing routing, automatic failover on dead sessions, and per-account limit shaping keep collection flowing at volume.
One integration, any rail
Switch the underlying gateway or add a new rail without changing a line of your code.
It reconciles itself
Automated close-of-day rail-vs-ledger reconciliation replaces the nightly spreadsheet. Differences surface instantly.
Built for scale, run by few
Automation and chat-ops let a small team operate high volume with real-time oversight.
Performance that compounds
A full operations layer, not just an API
Multi-role
Purpose-built consoles for merchants, operators, finance, and admins.
Chat-ops
Run the floor from your phone: live volume, capacity, and gated actions.
Real-time control
Live snapshots, capacity meters, and an orphan queue that stays empty.
Money movement
Settlements, wallet, tiered commission, refunds, and treasury.
Questions, answered
Ready to collect on UPI the modern way?
Integrate in an afternoon. Confirm every payment automatically. Settle without the wait.