Paytm Standard Checkout provides a secure and PCI-compliant way to accept payments on both website and App through different payment sources like Credit/Debit Card, Net-Banking, UPI, and Paytm Wallet from your customers.
Collect online payments with Paytm Payment Gateway
Demo for Paytm Standard Checkout
Overview of payment processing
The payment process starts at the click of the pay button on the merchant order summary page. On this click, you need to:
Create an order in your order system and then generate a transaction token by Initiate Transaction API.
Submit the request as HTML form POST. This will redirect the customer to Paytm's ShowPaymentPage.
Customer fills payment details and completes the payment authentication. Once the payment is complete, the response is posted as HTML form POST on your app/website's callback URL.
Verify checksumhash received in response to ensure that it has not been tampered with.
Integration steps for Payments processing
At the click of Payment button by the customer on your website, create an order in your system and generate transaction token by Initiate Transaction API.
Customer fills the payment details and is redirected to bank page for authorization. Once the transaction is authorized, Paytm receives the response from the bank and returns a status to your website via your callback URL. Response attributes description and samples HTML form post is provided below:
Response Attributes Description
This is a unique identifier provided to every merchant by Paytm
This is a unique Paytm transaction ID that is issued by Paytm for each transaction
Unique reference ID for a transaction which is generated by merchant and sent in the request
The transaction ID sent by the bank. In the case of Paytm proprietary instruments too, there is a unique reference number generated by Paytm's system. In case the transaction does not reach the bank, this will be a NULL or empty string. The primary reason for this is user dropping out of the payment flow before the transaction reaches to the bank to servers.
Amount paid by the customer in INR
Currency in which the transaction has taken place. Currently, only "INR" is the supported currency of the transaction.
This contains the transaction status and has only three values: TXN_SUCCESS, TXN_FAILURE and PENDING
Codes refer to a particular reason for payment failure/success. List in this PDF.
Description message is linked with each respcode. List in this PDF.
Date and Time of transaction in the format "yyyy-MM-dd HH:mm:ss.S"Example: "2015-11- 02 11:40:46.0"
Gateway used by Paytm to process the transactions. By paymodes, the details are provided below:
- Credit, debit cards UPI - Gateway used to process the transaction. For example, if HDFC gateway has been used to process SBI credit card transactions, the value will be HDFC
- Net banking - Netbanking transactions are not routed via a gateway. Hence issuing bank name is passed in this field
- Paytm Wallet - The value will be 'WALLET'
- Paytm Postpaid - The value will be 'PAYTMCC'
Name of issuing bank of the payment instrument used by the customer. By paymodes, the details are provided below:
- Credit, debit cards, net banking - Name of the issuing bank. Example in case the customer uses SBI's credit card, the value will be "SBI"
- Paytm Wallet - Wallet
- Note that in the case of UPI - This parameter will not be present in the response
The payment mode used by the customer for a transaction.
- Credit card – CC
- Debit card - DC
- Net banking - NB
- UPI - UPI
- Paytm wallet – PPI
- Postpaid - PAYTMCC
Security parameter to avoid tampering. Verified using server-side checksum utility provided by Paytm. Utilities to generate checksumhash is available here.
- Checksumhash received in response of transaction needs to be verified on merchant server using Paytm library with all the parameters in key-value pairs. Code snippets and Github links for the checksum utility are provided here.
- Validate transaction response via server-side request using Transaction Status API. This API requires checksumhash in request and its verification in response. The status should be treated as the final status of the transaction.
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.
Attempt a test transaction using test paymodes credentials.
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.
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. Note that production accounts details are available after you have activated your account on the dashboard.
In case of any issues with integration, please Get in touch.