Paytm UPI & Merchant API Suite

100% Standalone Pure PHP Engine • Zero Python / External Class Dependencies • Multi-User Isolated Sessions (sessions/{mobile}.json) • Real-Time Transaction Detail Lookup & NPCI MyUPI Integration.

Launch Interactive Test Console →
GET POST

1. Request Login OTP

Initializes Paytm OAuth session and dispatches 6-digit verification OTP to the registered mobile number. Returns dynamic state and csrf_token.
https://normalpaytm.gurupaygateway.com/request-otp.php?mobile=9876543210
ParameterTypeLocationRequiredDescription
mobile / mobile_numberstringQuery / BodyYes10-digit registered Indian mobile number (e.g. 9876543210).
{
    "status": "success",
    "message": "Login OTP dispatched successfully to ******3210",
    "data": {
        "state": "525baf14-2c34-55cb-b7d4-de45f7e7bdcb",
        "state_token": "525baf14-2c34-55cb-b7d4-de45f7e7bdcb",
        "csrf_token": "3139e1d9-cbf8-5418-8b45-a61ce909120c",
        "mobile": "9876543210",
        "masked_mobile_number": "******3210"
    }
}
GET POST

2. Validate OTP & Create Session

Validates the 6-digit SMS OTP, exchanges tokens with Paytm OAuth, establishes session, and saves user session in sessions/{mobile}.json.
https://normalpaytm.gurupaygateway.com/validate-otp.php?otp=123456&state=...&csrf_token=...&mobile=9876543210
ParameterTypeLocationRequiredDescription
otp / otp_codestringQuery / BodyYes6-digit numeric OTP received on phone.
statestringQuery / BodyYesState token from Step 1.
csrf_tokenstringQuery / BodyOptionalCSRF Token from Step 1. Auto-loaded if omitted.
mobilestringQuery / BodyRecommended10-digit mobile number for multi-user session mapping.
{
    "status": "success",
    "message": "OTP verified successfully. Paytm session established.",
    "data": {
        "token": "021agvkaljrgy89ypb4ppepiesto5cjc6070",
        "merchant_session": "cb4caf4a-4305-4aea-8f33-d3f9401836de",
        "csrf_token": "f3650ec7-df08-4119-9f06-cd1d3e2c8aec",
        "mobile": "9876543210"
    }
}
GET POST

3. Fetch Official UPI IDs & QR Code

Queries Paytm official meta suggest API using app token. Returns verified VPAs across Yes Bank, Axis Bank, SBI, and HDFC, plus standard QR code data.
https://normalpaytm.gurupaygateway.com/get-upi.php?mobile=9876543210
{
    "status": "success",
    "message": "Paytm UPI IDs and QR code fetched successfully.",
    "data": {
        "primary_vpa": "user@ptyes",
        "vpa_list": [
            "user@ptyes",
            "9876543210@ptyes",
            "9876543210@ptaxis",
            "user@ptaxis",
            "9876543210@ptsbi",
            "9876543210@pthdfc"
        ],
        "qr_string": "upi://pay?pa=user@ptyes&pn=Paytm+User&cu=INR",
        "qr_image_url": "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=..."
    }
}
GET POST

4. User Profile & Bank Accounts

Retrieves user context, display name, primary VPA, and all linked bank accounts (Bank name, account no, IFSC, is_default).
https://normalpaytm.gurupaygateway.com/profile.php?mobile=9876543210
{
    "status": "success",
    "message": "Paytm profile fetched successfully.",
    "data": {
        "mobile_number": "9876543210",
        "user_id": "1884267410",
        "account_type": "PERSONAL_UPI",
        "shop_name": "Paytm User",
        "primary_vpa": "user@ptyes",
        "vpa_list": [
            "user@ptyes",
            "9876543210@ptyes"
        ],
        "default_bank": {
            "bank_name": "Baroda Gujarat Gramin Bank",
            "subtitle": "A/c No: 5210",
            "account_no": "5210",
            "ifsc": "BARB0BGGBXX",
            "acc_ref_id": "1273255410",
            "is_default": true,
            "account_type": "SAVINGS",
            "logo_url": "https://pwebassets.paytm.com/ocl-upi/upi/images/bank-logo/606995.png"
        },
        "bank_accounts": [
            {
                "bank_name": "Baroda Gujarat Gramin Bank",
                "subtitle": "A/c No: 5210",
                "account_no": "5210",
                "ifsc": "BARB0BGGBXX",
                "is_default": true,
                "account_type": "SAVINGS",
                "logo_url": "https://pwebassets.paytm.com/ocl-upi/upi/images/bank-logo/606995.png"
            }
        ]
    }
}
GET POST

5. Passbook & Transactions

Fetches all bank credit & debit transactions across Baroda Gramin Bank, SBI, Jio, etc. Automatically calculates yesterday-to-tomorrow date window with multi-token fallback.
https://normalpaytm.gurupaygateway.com/transactions.php?mobile=9876543210
{
    "status": "success",
    "message": "Paytm transactions fetched successfully.",
    "data": {
        "total_records": 5,
        "count": 5,
        "page": 1,
        "page_size": 50,
        "from_date": "07-11-2026",
        "to_date": "09-11-2026",
        "applied_filters": {
            "status": "all",
            "bank": "all",
            "category": "all"
        },
        "transactions": [
            {
                "txn_id": "PTM771BB8A1BE444F0F805B0E13A0D9B3B0",
                "amount": 67,
                "type": "DEBIT",
                "status": "SUCCESS",
                "date": "2026-11-07 13:05:32",
                "sender_name": "Paytm User",
                "sender_vpa": "user@ptyes",
                "receiver_name": "Ketan Kirana Store",
                "receiver_vpa": "66n042431i@mairtel",
                "bank_name": "Baroda Gujarat Gramin Bank",
                "utr": "617700859699"
            }
        ]
    }
}
GET POST

6. Check Transaction Status by txn_id (check-status.php / transaction-status.php)

Takes a specific txn_id, resolves its official receipt via Paytm UTH Detail API (pth/ext/v3/UPI/detail), and returns the exact transaction status, 12-digit UTR, amount, sender, receiver, and bank details.
https://normalpaytm.gurupaygateway.com/check-status.php?txn_id=PTM771BB8A1BE444F0F805B0E13A0D9B3B0&mobile=9876543210
ParameterTypeLocationRequiredDescription
txn_id / order_idstringQuery / BodyYesPaytm transaction ID or reference (e.g. PTM771BB8A1BE444F0F805B0E13A0D9B3B0).
mobilestringQuery / BodyOptionalMobile number to specify active user session.
{
    "status": "success",
    "message": "Transaction status retrieved successfully.",
    "data": {
        "txn_id": "PTM771BB8A1BE444F0F805B0E13A0D9B3B0",
        "status": "SUCCESS",
        "amount": 67,
        "currency": "INR",
        "type": "DEBIT",
        "utr": "617700859699",
        "date": "2026-11-07 13:05:32",
        "narration": "Paid Successfully",
        "sender_name": "Paytm User",
        "sender_vpa": "user@ptyes",
        "receiver_name": "Ketan Kirana Store",
        "receiver_vpa": "66n042431i@mairtel",
        "bank_name": "Baroda Gujarat Gramin Bank",
        "account_no": "5210",
        "ifsc": "BARB0BGGBXX"
    }
}
GET POST

7. Validate 12-Digit Bank UTR / RRN

Verifies customer payments by checking transactions history against the 12-digit UTR/RRN, with optional amount verification.
https://normalpaytm.gurupaygateway.com/validate-utr.php?utr=617700859699&amount=67&mobile=9876543210
{
    "status": "success",
    "message": "Payment verified successfully for UTR 617700859699.",
    "data": {
        "verified": true,
        "utr": "617700859699",
        "amount": 67,
        "status": "SUCCESS",
        "type": "DEBIT",
        "date": "2026-11-07 13:05:32",
        "txn_id": "PTM771BB8A1BE444F0F805B0E13A0D9B3B0",
        "sender_name": "Paytm User",
        "sender_vpa": "user@ptyes",
        "receiver_name": "Ketan Kirana Store",
        "bank_name": "Baroda Gujarat Gramin Bank"
    }
}
GET POST

8. NPCI MyUPI Dispute Resolution Portal

Calls Paytm's internal meta endpoint with active user tokens to generate a passwordless NPCI dispute and transaction session code (signInCode).
https://normalpaytm.gurupaygateway.com/myupi.php?mobile=9876543210
{
    "status": "success",
    "message": "NPCI MyUPI portal session created successfully.",
    "data": {
        "sign_in_code": "4A1637BF-81A1-4228-B4C2-40F11DF4F9CE",
        "redirect_url": "https://www.upihelp.npci.org.in/?signInCode=4A1637BF-81A1-4228-B4C2-40F11DF4F9CE",
        "portal": "NPCI MyUPI Dispute & Transaction Portal"
    }
}
GET

9. Multi-User Cron Synchronization

Designed for scheduled cPanel cron execution (e.g. every 1-5 minutes). Iterates across all saved user sessions in sessions/*.json and synchronizes today's transactions.
https://normalpaytm.gurupaygateway.com/cron.php