Skip to content

Get paid in UPI.
Prove it.

Your app or your AI agent creates a payment, the customer pays and sends a screenshot, and a bank alert confirms it. No payment gateway, no fees.

Get an API keynpm i upiagent
mcp.json
{
  "mcpServers": {
    "upiagent": {
      "command": "npx",
      "args": ["-y", "upiagent", "mcp"],
      "env": { "UPIAGENT_API_KEY": "upi_ak_..." }
    }
  }
}

pay to shop@upi

₹499.37

expires in 20:00

created ₹499.37
screenshot received · UTR 4128 •••• 9021
checks passed → claimed
bank alert matched → verified

Illustrative. Try a real payment in the demo below.

One payment, four states.

01 · Create the payment

→ upiagent_create_payment({ amount: 499, addPaisa: true })

← pending · pay exactly ₹499.37 · expires in 20 minutes

A unique paisa amount makes this payment matchable against the bank alert later.

02 · Customer pays, sends proof

→ upiagent_submit_payment_proof(paymentId, screenshot)

← checks: success status, exact amount, right payee, after creation, unused UTR

A screenshot is always required first. It is checked, not trusted.

03 · Claimed

→ upiagent_get_payment_status(paymentId)

← claimed · UTR 4128 •••• 9021

The screenshot passed its checks (payee and time count when visible on it). Fine to release low-value goods.

04 · Verified by the bank

→ upiagent_get_payment_status(paymentId)

← verified · bank alert matched UTR and amount

Confirmed by Gmail bank alert or the Android app. Fine for anything.

Let your agent take payments.

upiagent is an MCP server. Add it to Claude, Cursor or any MCP client and your agent can charge, check proof and confirm, without ever holding a bank login.

mcp.json
{
  "mcpServers": {
    "upiagent": {
      "command": "npx",
      "args": ["-y", "upiagent", "mcp"],
      "env": { "UPIAGENT_API_KEY": "upi_ak_..." }
    }
  }
}
  • upiagent_create_payment

    Create a UPI payment request for the merchant.

  • upiagent_submit_payment_proof

    Check the customer's UPI payment screenshot against a pending payment: success status, exact amount, paid to this merchant, paid after the request was created, and a UTR never used before.

  • upiagent_get_payment_status

    Current status of a payment and its evidence trail (which sources — gmail, notification, screenshot — matched and with what confidence).

  • upiagent_list_payments

    List the merchant's payments, newest first, optionally filtered by status or creation time.

  • upiagent_cancel_payment

    Cancel a pending payment request, e.g. when the customer abandons checkout.

  • upiagent_get_usage

    Today's LLM token usage against the merchant's daily limit.

Illustrative transcript

youCharge ₹499 for the Pro plan.

→upiagent_create_payment { amount: 499, addPaisa: true }

←pending · pay exactly ₹499.37 · expires in 20 minutes

youPaid. Screenshot attached.

→upiagent_submit_payment_proof

←accepted · claimed

→upiagent_get_payment_status

←verified · sending the license key

Release rule: deliver on verified, or on claimed for low-value orders. Never deliver when a proof comes back accepted: false.

Know how much to trust it.

A screenshot is evidence, not proof. upiagent tells you which one you have.

StatusWhat it meansRelease goods?
pendingCreated, not paid yet. Expires 20 minutes after creation.Do not release.
claimedA payment screenshot passed its checks: success status, exact amount, unused 12-digit UTR, image never submitted before, and paid to your UPI ID and after the request was created whenever those show on the screenshot.Fine for low-value goods.
verifiedConfirmed by bank evidence (Gmail bank alert or the Android notification app). A claimed payment is upgraded to verified when bank evidence arrives.Fine for anything.
expiredFinal. The pending payment was not paid within 20 minutes.Do not release.
cancelledFinal. Cancelled before it was paid.Do not release.

Two ways the bank says yes.

Gmail bank alerts

Connect the inbox that receives your bank's credit alerts. upiagent matches the alert's UTR and exact amount to a claimed payment and upgrades it to verified.

Android notification app

Install the app on the phone that gets your bank and UPI notifications. It forwards credit notifications, so verification works without email.

You just want to get paid.

A payment gateway

  • Business registration
  • Current account
  • KYC review before you can charge
  • A fee on every payment

upiagent

  • Your existing UPI ID
  • Your existing bank account
  • An API key from the dashboard
  • 0% fee per payment

Take your first
payment today.

Get an API keynpm i upiagentRead the docs