Pre-Auth Payment

Paytm Pre-Auth is a one-click payment experience for your website or mobile app enabling payments via a user’s Paytm account. Your customers just need to authorize and link their Paytm account with your application once and enjoy superfast checkout every time after that.


Paytm Pre-Auth is ideal for cases where the delivery of service or order fulfilment is not immediate. You can block the order amount from customer’s Paytm account and debit it later when the order is complete, ensuring successful order placement and payment post delivery.

Note: Paytm Pre-Auth is only available to select enterprise customers with high transaction volumes and established businesses. Get in touch to request access to Paytm Pre-Auth payment solution.

Demo of Paytm Pre-Auth

Overview of payment processing via Paytm Pre-Auth

  1. User visits your website or mobile application
  2. You ask the user to link her Paytm account for seamless payments
  3. You initiate the account linking process using Send OTP API and Validate OTP API
  4. Once user account is successfully linked, Paytm shares the user SSO_TOKEN with you
  5. User adds goods/services into the shopping/order cart
  6. You calculate the total amount and call the Paytm Check Balance API
  7. Paytm returns if the user has sufficient balance for the transaction. If not, you initiate the Add Money process with the differential amount
  8. Call the Paytm Pre-auth API to block the amount from user account
  9. Paytm blocks the amount in user’s account and returns the Preauth ID
  10. You proceed with the order/service fulfillment
  11. Once the fulfillment is done, call the Capture API with the final amount to capture the amount from user's Paytm account
  12. Notify the payment status to user

Steps in processing payments via Paytm Pre-Auth

STEP 1: Get your authentication keys

Note: Paytm Pre-Auth is only available to select enterprise customers with high transaction volumes and established businesses. Get in touch to request access to Paytm Pre-Auth payment solution.

  1. Client ID: A unique alphanumeric identifier issued by Paytm for your account
  2. Client Secret: A unique alphanumeric key issued by Paytm for your account
  3. MID: A unique merchant identifier issued by Paytm for your account
  4. Merchant Key: This is a unique secret key used to secure encryption of every request. This needs to be kept on server side and should not be shared with anyone.

NoteClient Secret and Merchant Key are secret keys used for encryption so never share these with anyone.


STEP 2: Link a user’s Paytm account with your application

Demo of Paytm Account Linking

Use the following APIs to link a user’s Paytm account, validate the linked account and remove a linked account


Please find below the APIs list and their use cases with respect to the paytm account linking on merchant App/website.

Use case category API Name

Sending of OTP to entered mobile number Send OTP API          This API is used to send an OTP to a user's mobile number so as to start linking of Paytm user’s account on merchant web/app.
Linking of Paytm account Validate OTP API
This API is used to verify the OTP entered by the user and provide required tokens in response.
  • The tokens received (Access and Refresh token) are specific to client ids provided by Paytm
  • Access token also known as SSO token is an identifier for Paytm user account
  • Refresh token has a longer validity and is used to retrieve a new SSO token on its expiry.
Refresh Paytm user’s SSO token Refresh Token API This API is used to retrieve the new SSO token of Paytm user account upon its expir
Validate Paytm user’s SSO token Validate Token API This API is used to validate the Paytm user’s SSO token.
De-link Paytm user’s account Revoke Access API This API is used for expiring the Paytm user’s SSO token. This is done in the case of user deleting or de-linking the account on your application.


STEP 3: Check Balance and Add Money

You must ensure user has enough balance to pay for the order by calling the Check Balance API.

  1. Call the check balance API with the amount required for the order

  2. Paytm validates if given amount exists in any Paytm proprietary payment instrument (Paytm Balance and Paytm Postpaid)

  3. If any of the proprietary payment instruments don’t have sufficient balance then API returns the differential Amount.

    For example: A user has Rs. 100 in her Paytm Wallet, Rs. 150 in Paytm Postpaid and transaction amount for the order is Rs. 220. In this case, no payment method has sufficient funds so the API returns the differential amount (transaction amount - wallet amount), Rs. 120 that is. You have to prompt the user to add money in her Wallet.

  4. In case user needs to add money to pay for an order, you initiate the Add Money process

STEP 4: Debit amount from user’s Paytm account and confirm transaction

STEP 5: Managing Refunds

If you need to cancel or refund a successful transaction, you can do so by simply sending a Refund API request and ensuring success using the Refund Status API.


On completion of your integration

Post completion of integration on your staging environment, do a complete transaction from order summary page on your website or mobile app

  1. Attempt a test transaction using test paymodes credentials

  2. Ensure you re-verify transaction response with Transaction Status API via server to server call in payment flow and not separately as a one time activity

  3. See the transaction details in “Test Data” mode on your dashboard

Once the test transaction is complete, move your code to live environment with production account details, which you would have received from Paytm.

Lastly, it's recommended that you read about Managing Refunds and late payment notifications

In case of any issues with integration, please get in touch.