The UPI gateway that verifies itself.
Host-to-host APIs, embedded UPI intent, and automatic UTR verification that confirms every payment in real time. Multi-rail routing, payouts on the same key, chargeback intelligence and books that close themselves, 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. Pay out to any bank account or UPI beneficiary with the same key.
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.
- A missed-callback sweep every three minutes: no terminal order ever goes without its webhook.
- Batch reconciliation (500 orders per call), order-status, refund, balance and payout endpoints on the same key.
- Per-merchant IP allowlist with CIDR ranges, 1,200 create calls per minute, and every rejected call logged with a spike alert.
- Configurable payment window per platform, per merchant, or per order, from 1 to 20 minutes.
// 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. 150+ capabilities.
The complete catalogue, from the first API call to payouts, reconciliation and risk. Search it, filter it, read every line. Nothing here is a roadmap item; it is all running in production.
Built fast, tested hard, shipped daily
Real counts from the codebase that runs JUNEPAY in production. Not projections.
Verify itself
Real-time credit matching, reference-first, with orphan rescue and a zero-unclaimed guarantee.
Stay on
Self-balancing routing, limit shaping, dead-session failover and a rail-health watchdog.
Any rail
A pluggable rail contract, admin-switchable registry, bank-transfer pay-in and multi-account rails.
Money out
Payouts to bank and UPI on the same key, partner payout API, treasury and auto-settlement.
Know the payer
Chargeback risk scoring, a payer identity graph, holds and dispute-file 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
Every order is routed to the healthiest channel with headroom. A dead channel is skipped the moment it is detected, and the merchant never notices.
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-rail
One integration; switch or add underlying rails with no code change. Genuine outages fail over automatically.
Rail-health watchdog
Detects a silently suspended channel and a thinning pool before collection drops, and alerts once per outage.
17 self-healing timers
Expiry sweeps, status polls, hourly late-settle reconciles, missed-callback replays and keep-alives run unattended.
Callbacks never lost
A durable outbox with eight retries and a three-minute sweep that re-fires any terminal order missing its webhook.
Capacity-aware
Amount-aware routing, per-provider daily caps with first-hit alerts, and maintenance mode that keeps rails live.
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.
- Flagship EOD report: hourly curve, peak hour, like-for-like trend, projection, per-merchant conversion and expiry, and a plain-English insights engine.
- Failure-analysis lenses: success by load, by ticket size and by hour, with expiry root causes tagged on every lapsed order.
- Two-way live reconcile against upstream accounts: paid-but-uncredited and credited-but-unpaid must both be empty.
- Export anything: any window, any status, any columns, Excel-safe UTRs and Indian number grouping, with no row cap.
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 sealed at rest; a tamper-evident, append-only audit chain; per-merchant IP allowlists with CIDR.
Money-flow integrity
Every money mutation locks and re-checks inside the transaction: amount cover, duplicate UTR, and a database trigger that blocks re-settling a reversed order.
Two-part auth for payouts
Money-out calls need key and secret, are off until an admin enables them, and never send a beneficiary without a read-back check.
Human gate on large sums
A per-merchant ceiling holds high-value automated approvals for a person, and rate limits cover login, API, UTR and links.
Kill switches
Pairing, auto-settle and auto-verify each have an independent switch, so one leak or one bad day never takes the platform with it.
Payouts on the same key
Pay-in and pay-out are one product on one credential. Send money to any bank account by IMPS, NEFT or RTGS, or to a UPI beneficiary, from the API you already integrated.
- One integration: no second account, no second dashboard. An admin flips payouts on and the endpoints start working.
- Bank and UPI: IMPS, NEFT, RTGS to an account + IFSC, or a UPI payout to a VPA, with strictest-common beneficiary validation.
- Honest states: created, processing, success, failed and REVERSED, each delivered as a signed webhook and queryable by your own transaction id.
- Instant settlement: opt-in auto-settle sweeps your available balance to a saved bank the moment it clears a threshold.
- Partner payout API: an operator queue with pluggable providers for settlement partners, including cross-border INR settlement.
- Treasury in view: float attribution, a treasury ledger, refunds and tiered commission in one place.
Know the payer, not just the payment
Chargebacks are the hidden cost of UPI collection. JUNEPAY scores every payment the moment it settles, remembers who disputed before, and reconciles every dispute file back to the order.
Risk score per payment
A probabilistic model over amount, 24-hour payer total, history and app, calibrated on real dispute files. It flags; you decide the policy.
Payer identity graph
Recognises the same person across rotated UPI handles, names and phone numbers, so a block on one covers them all.
Dispute files, reconciled
Upload a chargeback file: every row is matched by RRN or reference, reported per merchant with "charged to you?", and held payments are worked to a resolution.
Controls that fit the risk
Optional daily limit per payer, name watch, holds, VPA name verification, and a reversal path that undoes the ledger and blocks re-settling.
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.
- Pay out to bank or UPI with the same key, and see every payout state including reversals.
- Risk flags on every payment, dispute files reconciled for you, and an in-portal "What's New" so you always know what shipped.
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.
Money in and money out
Collections and payouts on one key, one ledger, one webhook signature. No second vendor for disbursements.
It knows the payer
Risk scoring, an identity graph and dispute-file reconciliation turn chargebacks from a surprise into a managed number.
It explains itself
Every report ends in plain-English findings: why orders expired, which hour converts worst, where money is waiting to be resolved.
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, payouts, wallet, tiered commission, refunds, and treasury.
Reports for every audience
Business, rails, tech, agents and each merchant, nightly to Telegram and email, or on demand as of any time of day.
Needs attention
A short list of only what an operator must act on now, instead of a wall of numbers.
Usage telemetry
Adoption of every route and view by role, with rising versus collapsing trends, so we promote, fix or retire on evidence.
Announcements
An in-portal changelog with targeting by integration mode or merchant, pinned banners and read tracking.
Questions, answered
Ready to collect on UPI the modern way?
Integrate in an afternoon. Confirm every payment automatically. Settle without the wait.