Paytm for Business merchant QR and settlement data API
Paytm for Business is One97 Communications' merchant app for Indian kiranas, restaurants, clinics and other UPI-accepting shops that collect on Paytm QR, Soundbox and card machines. Shopkeepers sign in with the same Paytm account used on the consumer app, pin a static or photo QR at the till, hear each inbound payment announced, and open Payments and Settlements tabs to see today's take and the bank credit that follows. Same-day or thrice-daily settlement can land in a linked current account; Payment Links cover remote invoices when the customer is not in the shop. The product is India-only and sits next to PhonePe Business and BharatPe for Business for the same neighbourhood stores, while the consumer Paytm app remains the buyer-side counterpart.
TWS payout rows stamp merchantOrderId and settlementStatus against the linked bankAccountNo. Same-day bills add settlementBillId, settlementAmount and the bank UTR in bankTxnId. Inbound QR collections carry acquirementId, txnAmount, payerName and pay mode.
The shop identity sits on merchantId, merchantDisplayName and KYC bankVerifiedName. QR plates expose qrCodeId, UPI qrCodeString and shareable qrPaymentLink. The home strip splits totalAmount, availableAmount and amountOnHold before alreadySettledToBank.
Reconcilers join collections to 8/13/19 TWS UTRs, store-ops map physical plates onto a mid, and investigators resolve a kirana from its merchantId. openData Studio turns those fields into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Merchant session context
GET
/v1/merchant/sessionosintLoads the signed-in merchant's merchantId, display name and account state used to seed the home drawer after login.
Auth: Merchant session cookie plus a user-token request header; request-id header for correlation.
- merchantId
- merchantName
- merchantDisplayName
- merchantAccountState
- posId
GET /v1/merchant/session HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> X-Request-Id: <request-id> Accept: application/json{ "merchantId": "MRCH10482937461", "merchantName": "RAJ VERMA", "merchantDisplayName": "RAJ VERMA", "merchantAccountState": "ACTIVE", "posId": "5678" }Merchant basic profile
GET
/v1/merchant/profileosintReads the merchant profile card: legal name, display name and masked settlement bank account.
Auth: Merchant session cookie plus a user-token request header.
- merchantId
- merchantName
- merchantDisplayName
- bankAccountNo
- bankName
GET /v1/merchant/profile HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "merchantId": "MRCH10482937461", "merchantName": "RAJ VERMA", "merchantDisplayName": "Verma General Store", "bankAccountNo": "4821**7305", "bankName": "SAMPLE PAYMENTS BANK LIMITED" }Merchant KYC status
GET
/v1/merchant/verificationosintReturns KYC settlement type and frequency plus the verified bank name and IFSC used on the KYC screen.
Auth: Merchant session cookie plus a user-token request header.
- merchantId
- kyc_settlement_type
- kyc_settlement_freq
- bankVerifiedName
- bankIfscCode
GET /v1/merchant/verification HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "merchantId": "MRCH10482937461", "kyc_settlement_type": "BANK", "kyc_settlement_freq": "THRICE", "bankVerifiedName": "RAJ VERMA", "bankIfscCode": "SMPL0000001" }Wallet dashboard aggregates
GET
/v1/balances/overviewopenbankingLoads the home payments strip: today's totalAmount, availableAmount, amountOnHold and alreadySettledToBank.
Auth: Merchant session cookie plus a user-token request header.
- totalAmount
- availableAmount
- amountOnHold
- amount_to_be_settled_header
- alreadySettledToBank
GET /v1/balances/overview HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "totalAmount": "96480.00", "availableAmount": "90150.00", "amountOnHold": "6330.00", "amount_to_be_settled_header": "96480.00", "alreadySettledToBank": "71200.00" }Wallet collection transactions
GET
/v1/collectionsopenbankingPages inbound wallet collections with merchantOrderId, acquirementId, txnAmount, payerName, pay mode and settlementStatus.
Auth: Merchant session cookie plus a user-token request header.
- orderList
- merchantOrderId
- acquirementId
- txnAmount
- txnDate
- posId
- merchantId
- mode
- payerName
- remarks
- settlementStatus
GET /v1/collections?from=2026-10-17&to=2026-10-17&pageNo=1&pageSize=20 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "orderList": [ { "merchantOrderId": "ORD20261017000412", "acquirementId": "ACQ20261017110830000412", "txnAmount": "250.00", "txnDate": "2026-10-17T16:24:57+05:30", "posId": "5678", "merchantId": "MRCH10482937461", "mode": "UPI", "payerName": "ANITA KUMAR", "remarks": "Payment received", "settlementStatus": "PENDING_LESS_THAN_ONE_DAY" } ] }Wallet settlement reports
GET
/v1/payoutsopenfinanceLists wallet settlement bills with settlementBillId, amount, destination bank and settlementTime.
Auth: Merchant session cookie plus a user-token request header.
- settlementBillArray
- settlementBillId
- settlementAmount
- settlementBankName
- settlementAccountNo
- settlementStatus
- settlementTime
GET /v1/payouts?from=2026-10-01&to=2026-10-17 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "settlementBillArray": [ { "settlementBillId": "BILL-20261017-0042", "settlementAmount": "71200.00", "settlementBankName": "SAMPLE PAYMENTS BANK LIMITED", "settlementAccountNo": "4821**7305", "settlementStatus": "SUCCESS", "settlementTime": "2026-10-17T19:05:00+05:30" } ] }Settlement UTR details
GET
/v1/payouts/bank-referenceopenfinanceReturns the bank UTR (bankTxnId) for a settlement bill so the merchant can match the credit on the bank statement.
Auth: Merchant session cookie plus a user-token request header.
- settlementBillId
- bankTxnId
- settlementAmount
- bankName
- bankAccountNo
- settlementStatus
GET /v1/payouts/bank-reference?settlementBillId=BILL-20261017-0042 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "settlementBillId": "BILL-20261017-0042", "bankTxnId": "SMPL202610171905000042", "settlementAmount": "71200.00", "bankName": "SAMPLE PAYMENTS BANK LIMITED", "bankAccountNo": "4821**7305", "settlementStatus": "SUCCESS" }Today settlement summary
GET
/v1/payouts/todayopenfinanceLoads today's settlement card: amount, settlementFreq, pending/success state and next settlementTime.
Auth: Merchant session cookie plus a user-token request header.
- settlementAmount
- settlementFreq
- settlementType
- settlementState
- settlementTime
- balanceFromFailedSettlement
GET /v1/payouts/today HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "settlementAmount": "96480.00", "settlementFreq": "THRICE", "settlementType": "BANK", "settlementState": "PENDING", "settlementTime": "19:00", "balanceFromFailedSettlement": "0.00" }TWS same-day order list
GET
/v1/collections/same-dayopenbankingPages same-day TWS (today-will-settle) orders that power the Settlements tab order list.
Auth: Merchant session cookie plus a user-token request header.
- orderList
- merchantOrderId
- txnAmount
- mode
- payerName
- settlementStatus
- posId
GET /v1/collections/same-day?pageNo=1&pageSize=20 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "orderList": [ { "merchantOrderId": "ORD20261017000977", "txnAmount": "499.00", "mode": "UPI", "payerName": "MEERA IYER", "settlementStatus": "PENDING_LESS_THAN_ONE_DAY", "posId": "5678" } ] }TWS settlement list
GET
/v1/payouts/batchesopenfinanceLists TWS payout batches (once/twice/thrice daily) with settlementAmount and settlementStatus.
Auth: Merchant session cookie plus a user-token request header.
- settlementBillArray
- settlementBillId
- settlementAmount
- settlementStatus
- settlementTime
- settlementBankName
GET /v1/payouts/batches?pageNo=1&pageSize=20 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "settlementBillArray": [ { "settlementBillId": "BATCH-20261017-01", "settlementAmount": "32400.00", "settlementStatus": "SUCCESS", "settlementTime": "2026-10-17T08:15:00+05:30", "settlementBankName": "SAMPLE PAYMENTS BANK LIMITED" } ] }Merchant QR codes
GET
/v1/qr-platesopendataLists the shop's QR plates with qrCodeId, UPI qrCodeString, shareable qrPaymentLink and qrType.
Auth: Merchant session cookie plus a user-token request header.
- qrCodeId
- qrCodeString
- qrPaymentLink
- qrType
- merchantDisplayName
GET /v1/qr-plates?type=ALL HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "qrCodes": [ { "qrCodeId": "QR-20481376", "qrCodeString": "upi://pay?pa=verma.store@examplebank&pn=Verma%20General%20Store", "qrPaymentLink": "https://pay.example.com/l/Ab12Cd34", "qrType": "STATIC", "merchantDisplayName": "Verma General Store" } ] }Map physical QR to merchant
POST
/v1/qr-plates/bindopendataBinds a scanned physical QR plate to the signed-in merchant after the Map QR camera flow.
Auth: Merchant session cookie plus a user-token request header.
- qrCodeId
- qrCodeString
- merchantId
- qrType
- status
POST /v1/qr-plates/bind HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Content-Type: application/json {"qrCodeId":"QR-20481376","qrCodeString":"upi://pay?pa=verma.store@examplebank"}{ "qrCodeId": "QR-20481376", "merchantId": "MRCH10482937461", "qrType": "STATIC", "status": "MAPPED" }Payment links
GET
/v1/payment-requestsopenbankingLists remote Payment Links with amount, shareable qrPaymentLink and merchantOrderId.
Auth: Merchant session cookie plus a user-token request header.
- qrPaymentLink
- txnAmount
- merchantDisplayName
- status
- merchantOrderId
GET /v1/payment-requests?pageNo=1&pageSize=20 HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "links": [ { "qrPaymentLink": "https://pay.example.com/l/Zx98Yw76", "txnAmount": "2500.00", "merchantDisplayName": "Verma General Store", "status": "ACTIVE", "merchantOrderId": "PL-20261017-0033" } ] }Settlement bank details
GET
/v1/merchant/settlement-accountopenfinanceReads the linked settlement bank: masked account number, IFSC, holder name and verified name.
Auth: Merchant session cookie plus a user-token request header.
- bankAccountNo
- bankName
- bankIfscCode
- bankAccountHolderName
- bankVerifiedName
GET /v1/merchant/settlement-account HTTP/1.1 Cookie: session=<session-token> X-User-Token: <user-token> Accept: application/json{ "bankAccountNo": "4821**7305", "bankName": "SAMPLE PAYMENTS BANK LIMITED", "bankIfscCode": "SMPL0000001", "bankAccountHolderName": "RAJ VERMA", "bankVerifiedName": "RAJ VERMA" }
Data categories
- merchant-profile
- transactions
- settlements
- qr
- kyc
- bank-accounts
Where teams use this data
Same-day TWS recon
Nightly finance jobs join TWS orderList rows (merchantOrderId, txnAmount, payerName) to settlementBillId batches and bankTxnId UTRs so a kirana can match the 8/13/19 payouts without waiting for the next Soundbox day.
QR plate inventory
Store-ops tools pull qrCodeId, qrCodeString and qrPaymentLink, then post map calls when a new physical plate is scanned onto the mid.
Merchant OSINT from mid
Investigators resolve merchantId to merchantDisplayName, bankVerifiedName and masked bankAccountNo when mapping a shop that collects on Paytm QR.
Hold vs settled cash
ERP bots read totalAmount, availableAmount and amountOnHold from the wallet dashboard and flag shops whose alreadySettledToBank lags the day's take.
Frequently asked questions
Which identifier ties a Paytm for Business shop to its QR?
Session and profile calls return merchantId; the QR plate list repeats that mid with qrCodeId, qrCodeString and qrPaymentLink for each plate.
How are inbound UPI collections identified?
Each collection row carries merchantOrderId, acquirementId, txnAmount, payerName, mode and settlementStatus.
Where do settlement UTRs appear?
The bank-reference call exposes bankTxnId for a settlementBillId; the payout list adds settlementAmount, settlementBankName and settlementTime.
What does TWS mean in this app?
Today-will-settle: same-day payout batches, typically at 8, 13 and 19 for thrice-daily merchants.
Apps similar to Paytm for Business
- BharatPe for Business — BharatPe for Business is Resilient Innovations' merchant app for Indian shops, with a UPI QR, BharatPe Speaker voice alerts, BharatPe Swipe card terminals, and settlement to a linked bank account.
- PhonePe Business — PhonePe Business is PhonePe's merchant app for Indian shops, with in-store QR stickers, SmartSpeaker audio confirmations, a POS that takes cards and UPI, and tools to track transactions and settlements.
- Razorpay POS — Razorpay POS supplies Indian merchants with swipe terminals, Growth DQR codes, and Bharat Soundbox devices that take UPI and card payments in store.
- Pine Labs — Pine Labs Mini is a compact Android device that combines POS, UPI QR and a soundbox so Indian retailers can take tap-and-dip cards and QR payments with instant audio alerts.
- Mswipe — Mswipe is an RBI-licensed payment aggregator whose Wisepos terminals and Boombox soundboxes let Indian shops accept cards, dynamic UPI QR and payment links.
- PayU — PayU offers Indian merchants Bharat QR for in-store and doorstep UPI collections, plus POS and a payment gateway covering cards, UPI and net banking.
Topics
- Paytm for Business
- Paytm merchant QR
- TWS settlement
- merchantOrderId
- bankTxnId
- qrCodeString
- India merchant UPI
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use