Bank Offers-Payment Links


Bank offers on Payment Links can be integrated with minimal effort at merchant side. Merchant will have to just pass an object in Create Links API. Majority of the experience w.r.t payment page and offer validation would be managed at Paytm end. Merchant can show the offer details (discount / cashback) against a payment instrument to its end users (as shown in demo below) before the users clicks on the pay button and the transaction gets processed at our end. Here, merchant and Paytm both will modify the order once offer is successfully applied to any transaction for reconciliation purpose.



  1. Merchant calls the Create Links API with simplifiedPaymentOffers as an object. To apply a specific promo code, the merchant uses the promoCode parameter in the object above but to apply the best available offer as per the eligibility on a transaction, send the applyAvailablePromo parameter as true to get verified by Paytm. If Merchant wants to execute a transaction only with the promo code successfully applied, then, merchant needs to send the validatePromo parameter as true.
  2. The default value against the validatePromo parameter is false. It is always recommended to keep the value as it is, unless merchant wants to handle a specific use case.
  3. Paytm validates the availability of simplifiedPaymentOffers object and its parameter in Create Links API.
  4. Paytm creates an order corresponding to the Merchant's order details shared in the Create Links API.
  5. When a user clicks on the link and the transaction is initiated, Paytm checks for promocode, applyAvailablePromo and validatePromo params within the object and will return a transaction token accordingly which will invoke the cashier page.
  6. Paytm hits the Apply Promo API internally to check for offer validation across payment instruments as per the parameter values within simplifiedPaymentOffers object shared in Initiate Transaction API by the merchant. Users will see applicable discounts / cashbacks on the checkout page itself before clicking on the Pay button.
  7. User clicks on the Pay button, Paytm hits Process Transaction API
  8. Paytm validates the promocode and applyAvailablePromo param values and accordingly may or may not internally hit our promo engine.
  9. Paytm checks the applicable offers for the transaction.
  10. After applying the promo successfully, Paytm modifies the order accordingly and shares the Process Transaction API response. This response though, does not convey any change in order due to offer applicability (eg. change in order value due to discount or amount of cashback applied). Based on the offer applicability, merchants may have to modify the order at their end as well. Hence, they need to integrate Fetch Transaction API and Payment Status Webhook, failing which, merchants won't get to know the final order and offer construct details which got processed ultimately. This is a mandatory step for bank offer integration with Payment Links flow.


     Note: In case of a discount, Paytm will only settle the discounted transaction amount.

    For example: If the cart value of a customer is Rs 1000, and there is a bank offer that entitles a user to a discount of Rs 100 on a min cart value/order value of Rs 1000, then the effective order value would be Rs 900 only. Paytm will process the transaction which would be worth Rs 900.
    In the case of cashback, the transaction value would be Rs 1000 only, as cashback have to be honoured by banks 


Key scenarios of “simplifiedPaymentOffers” object


Merchant can see below a few key scenarios to understand the simplifiedPaymentOffers object:


1 NOT NULL TRUE TRUE Both promo code and applyAvailablePromo can't be true for the same order. In this scenario, the Promocode param value would be given preference at paytm end.
2 NOT NULL NULL TRUE Txn will only execute, if a given promocode is applicable, else the txn will fail.
3 NULL NULL FALSE This is invalid, if both the 1st and 2nd params are null. There is no point of having this object at all let alone validatePromo
4 NULL TRUE FALSE Txn will be executed even if there is no valid promo applicable
5 NULL TRUE TRUE No txn will be executed, if no valid promo is available


 Note: To learn about prerequisites, please refer to Prerequisite section.

Steps to process an offer


  1. Configure an offer

    Merchant can configure a bank offer by providing the offer construct in an email to their Paytm’s account manager, client management team, or may contact us. Paytm has introduced a solution for select merchants to configure and customize the bank offers campaigns in a DIY mode through Paytm Dashboard. To get more information on this, refer to the documentation mentioned on Offer configuration via Paytm Dashboard page.

  2. Create Link with Bank Offer

    Merchant passes an object simplifiedPaymentOffers with promocodeapplyAvailablePromo and validatePromo in the Create Links API. The link is generated. 

  3. Validate Transaction (Implementation: Mandatory)
  • Once the customer has completed payment via the link, Merchant receives a Payment Callback Notification on the server. Accordingly, the payment status can be updated.
  • To check if any payments have been made against the link, please use the Fetch Transaction API.
  • Merchant uses the Fetch Links API to show the list of links created in their own dashboard. Use the Fetch Transaction API to fetch details of payments made against these links.