search

Paytm All-in-One Payment Request

What is All-in-One Payment Request?

Paytm All-in-One Payment Request link takes you towards cashless, contactless, and hassle free in store payments acceptance from your customers using the Paytm or any UPI app.
The payment link is a request shared with the customer over an SMS to make quick payment through the securely generated UPI intent link. The customer clicks the link received over an SMS to complete the payment instantly from Paytm or any UPI app.
Subsequently, the merchant can check the status of the transaction using an API to close the bill and provide the goods/services to the customers.

Overview of All-in-One Payment Request

  1.   Customer chooses the goods/service in a store and shows the intent to the cashier for UPI payment.
  2. Customer gives their mobile number to the cashier at POS.
  3. Cashier creates an order with the bill amount and a unique Order ID in the POS system for the customer's mobile number.
  4. Merchant’s backend server calls Send Payment Request API with customer's phone number and consecutively, Paytm sends an SMS to the customer with a UPI payment link.
  5. The customer opens the link in SMS and selects their preferred UPI app for payment.
  6. Customer enters the UPI pin in the respective UPI app to complete the payment or can use any payment sources i.e. UPI, Wallet, Debit/Credit Cards, or Netbanking account in the Paytm app.
  7. Merchant's server receives the transaction confirmation from Paytm via an S2S Callback or calls the Transaction Status API to get the transaction confirmation against the order.
  8. Merchant's POS system closes the bill/order and shares the payment response with the customer.

Demo of All-in-One Payment Request

demo

 

Flow diagram of All-in-One Payment Request

flowchart

Benefits of All-in-One Payment Request

  • Each payment link generated by a merchant for an order is unique.
  • During the payment process, only the merchant has control over the order amount and the user cannot change it.
  • No additional device such as a card machine or customer facing screen is required to be used with a POS machine.
  • It facilitates payment through the Paytm or any UPI app.

Steps in processing payment

The section describes the integration steps required to integrate the Paytm All-in-One Payment Request with the billing POS to accept cashless and contactless payment from your customer using the Paytm or any UPI app.

 

Step 1: Get Your Authentication key

Paytm “All-in-One Payment Request” is only available to the select enterprise customers with high transaction volumes and established businesses. Get in touch to request access to All-in-One Payment Request flow.

  1. MID: A unique merchant identifier issued by Paytm to your account.
  2. Merchant Key: This is a unique secret key used to secure encryption of every request and needs to be kept on the server side.

Note: Never share your secret Merchant Key with anyone.

Step 2: Send Payment Request

To send a payment request, initially the POS operator needs the customer’s mobile number. To create and send the payment link for an order to the customer via an SMS, refer to the Send Payment Request API.

If the SMS is not delivered to the customer's mobile number due to any technical/network issue at the service provider’s end, you can resend the SMS for the same order by initiating the Resend Payment Request API.

 

Step 3: Confirm Transaction Status

Once the customer completes the payment, the merchant can confirm the transaction status by using S2S Webhook or the Transaction Status API.

The Merchant can get the transaction status using the following ways:

  • Webhook - Paytm sends a server to server (S2S) response in a key value pair on the configured URL. S2S response is sent only when the transaction has reached a terminal state (success/fail). To configure the URL, please connect with Paytm.
  • Polling - Setup a polling process after regular intervals using the Transaction Status API. To get the best results out of a status query, you should check the status 8 times/minute by following the schedule given below:
     
    Status Query Status Query Interval
    (Since the transaction was sent to Paytm)
    1st 15 seconds
    2nd 25 seconds
    3rd 30 seconds
    4th 35 seconds
    5th 40 seconds
    6th 45 seconds
    7th 50 seconds
    8th 55 seconds

Step 4: Manage Refunds

If you need to cancel or refund a successful transaction, send a Refund API and ensure success using the Refund Status API.

 

REFID - It is necessary to send the REFID parameter as a unique ID in every refund request sent to Paytm. The refund request may fail due to the insufficient funds in MPA (Merchant Payable Account). For Failure refund status, the merchant can retry refunds. However, for Pending refund status, the merchant should not retry refunds.

Integration Checklist

Post completion of integration in your staging environment, it is mandatory to test the integration flow in your staging environment using the test account credentials before moving into the live environment with production account details (received from Paytm team). You can view the staging transaction details in “Test Data” mode on your dashboard.

Make sure you take care of the following points during the integration:

  1. The transaction status is verified through the Transaction Status API in the payment flow and is used to code the bill/order.

  2. The order ID passed to Paytm is unique for your MID across all POS IDs.

  3. The amount must not contain more than 2 decimal points, comma or any special characters.

  4. The POS ID parameter is mandatory for creating payment requests.

  5. Record Paytm Transaction ID against your Order ID for reconciliation.

  6. The Send Payment Request, Refund & Transaction/Refund Status APIs are implemented & tested for positive & negative scenarios.

  7. You configure the API timeouts as per your business needs & architecture (For e.g. If you have multiple hops before the transaction reaches Paytm Servers, API timeouts should be higher).

  8. Integration handles the scenarios, where the status of transaction cannot be captured due to intermittent issues. E.g. If debit has happened but the bill has been marked with Unknown status, then you can refund the transaction through Paytm Dashboard or Refund API.

  9. For any local errors implemented in POS, the user friendly messages are displayed to the cashier.

  10. Maintain the error codes and logs that help in debugging issues during integration and post go-live.

For any issues regarding All-in-One Payment Request integration, please Get in touch.

Key attributes for All-in-One Payment Request integration

S.No. Attributes Description
1 Order_ID A unique reference ID for a transaction passed in the transaction request. Order ID should be passed to check the actual status of the transaction.
Example: OREDRID98765.
2 Transaction Amount This parameter is an object and should contain the value of transaction i.e. amount and currency type.
Example: { "value" : "1303.00", "currency" : "INR" }
3 POS_ID It is a unique ID with alphanumeric values for each POS. The format of POS ID should be as: “Store ID_POS ID”
Example: “S12_123”
4 Paytm Transaction ID Its string length should capable of storing 64 digits.
5 Transport Layer Security (TLS) 1.2 Paytm receives all the API requests with TLS 1.2 version.

Demo for Billing POS