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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/request-otp.php?mobile=9876543210
Parameters
| Parameter | Type | Location | Required | Description |
|---|---|---|---|---|
mobile / mobile_number | string | Query / Body | Yes | 10-digit registered Indian mobile number (e.g. 9876543210). |
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/validate-otp.php?otp=123456&state=...&csrf_token=...&mobile=9876543210
Parameters
| Parameter | Type | Location | Required | Description |
|---|---|---|---|---|
otp / otp_code | string | Query / Body | Yes | 6-digit numeric OTP received on phone. |
state | string | Query / Body | Yes | State token from Step 1. |
csrf_token | string | Query / Body | Optional | CSRF Token from Step 1. Auto-loaded if omitted. |
mobile | string | Query / Body | Recommended | 10-digit mobile number for multi-user session mapping. |
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/get-upi.php?mobile=9876543210
Success Response (200 OK)
{
"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).
Endpoint URL
https://normalpaytm.gurupaygateway.com/profile.php?mobile=9876543210
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/transactions.php?mobile=9876543210
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/check-status.php?txn_id=PTM771BB8A1BE444F0F805B0E13A0D9B3B0&mobile=9876543210
Parameters
| Parameter | Type | Location | Required | Description |
|---|---|---|---|---|
txn_id / order_id | string | Query / Body | Yes | Paytm transaction ID or reference (e.g. PTM771BB8A1BE444F0F805B0E13A0D9B3B0). |
mobile | string | Query / Body | Optional | Mobile number to specify active user session. |
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/validate-utr.php?utr=617700859699&amount=67&mobile=9876543210
Success Response (200 OK)
{
"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).
Endpoint URL
https://normalpaytm.gurupaygateway.com/myupi.php?mobile=9876543210
Success Response (200 OK)
{
"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.
Endpoint URL
https://normalpaytm.gurupaygateway.com/cron.php