Paytm for Business icon

Paytm for Business merchant QR and settlement data API

Paytm - One97 Communications Ltd. · Payments

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

  • Paytm for Business screenshot 1
  • Paytm for Business screenshot 2
  • Paytm for Business screenshot 3
  • Paytm for Business screenshot 4
  • Paytm for Business screenshot 5
  • Paytm for Business screenshot 6
  • Paytm for Business screenshot 7
  • Paytm for Business screenshot 8

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/session osint

    Loads 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/profile osint

    Reads 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/verification osint

    Returns 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/overview openbanking

    Loads 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/collections openbanking

    Pages 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/payouts openfinance

    Lists 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-reference openfinance

    Returns 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/today openfinance

    Loads 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-day openbanking

    Pages 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/batches openfinance

    Lists 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-plates opendata

    Lists 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/bind opendata

    Binds 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-requests openbanking

    Lists 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-account openfinance

    Reads 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

Get a quote