EMI Subvention through Custom Checkout

Express integration

This solution has been introduced to ease the integration of EMI subvention on custom checkout flow. The integration requires minimal changes on custom checkout flow. Some of the key points about this integration are listed below:

  • No need for you to integrate different subvention APIs as mentioned in Standard integration
  • You just need to pass one additional object in Initiate transaction API for providing EMI subvention as a payment option
  • You can show the different banks and tenures available to the users for EMI subvention from your database itself

As per this integration, you decide upon the banks and tenures for which you want to offer zero/low cost EMI to your customers. Paytm will configure the same for your mid and provide some static data which you will configure in your  database. 


Overview of payment processing via EMI subvention payment

  1. User adds a product/service to the cart and proceeds to checkout.
  2. User selects the EMI option and you show the different plans available to the user by fetching from your DB.
  3. User selects one of the zero cost EMI tenure and proceeds for the payment.
  4. You call the Initiate transaction API with “simplifiedSubvention” object. This object shall have the parameters of plan information and subvention identifiers.
  5. Paytm creates the order at its end corresponding to the order details in Initiate transaction API and returns the transaction token in response.
  6. Merchant server validates the token and passes the txn token to its app/browser.
  7. You call the Process transaction API.
  8. Paytm validates the subvention plan param and applies the subvention to calculate the final amount to be paid by the user. The order is modified and response is shared for the process transaction API.
  9. You call transaction status API to confirm the order status and know the modified order details after subvention application.

In case of discount based emi subvention strategy Paytm will only settle the discounted transaction amount.

For example: If the user purchases an item on zero cost EMI for Rs 30,000, and there is a zero cost EMI plan (gratification type discount) for which the bank was charging interest of Rs. 2500 over three month tenure, then the effective order value would be Rs 27,500 only. Paytm will process the transaction which would be worth Rs 27,500.

In case of gratification type as cashback based, the transaction value would be Rs 30,000 only, as cashbacks have to be honoured by banks.


Before starting the integration make sure, you follow the following steps:

  1. Create an account on Paytm as a merchant. Click on how to create an account.
  2. Get the merchant id and merchant key for the integration environment after creating the account.
  3. Go through the checksum logic to understand how to generate and validate the checksum.
  4. Get the EMI subvention plans configured for your products. You can collect the data as explained in the section Configuration of EMI subvention plans and send the email with details to your account manager or contact us.
  5. Paytm will share the plan ids and offer details for the subvention plans configured for your mid which you need to configure in your DB.

Integration Steps

Before proceeding with the integration, make sure that you have decided the subvention strategy (amount or item based) and finalised the subvention plans. Get the plans configured at paytm and in your database.

  1. User adds the product in the cart and proceeds to checkout on your website/app.
  2. User selects the EMI as a payment option on the checkout page. You show the different bank options and their tenures available for the cart item. These plans are fetched from your database itself.
  3. User selects a tenure of a bank, enters the card details and proceeds with the payment. 
  4. You call the Initiate transaction API from your backend server with the simplifiedSubvention object as mentioned below
"simplifiedSubvention": {
    "customerId": "1234", //Any unique number identifying a customer
    "planId": "5951", //Plan id obtained from Paytm and configured in your DB
    "subventionAmount": "470", //Eligible amount for subvention
    "offerDetails": {
        "offerId": "43953"
    } //Offer id obtained from Paytm and configured in your DB
"simplifiedSubvention": {
    "customerId": "9191",
    "planId": "3987",
    "items": [{
        "id": "1234",
        "productId": "27902",
        "brandId": "table",
        "categoryList": [
        "quantity": "1",
        "price": “1000",
        "offerDetails": {
            "offerId": "43955"
  1. 5
    Paytm will provide the transaction token in response to your backend server which is passed on to your app/browser.
  2. 6
    You call the process transaction API from your app/browser. Paytm validates the subvention plan param and applies the subvention to calculate the final amount to be paid by the user. The order is modified and response is shared for the process transaction API.
  3. 7
    As part of the process transaction API response, you will get to know whether the transaction was successful or not but you will not get the modified order amount due to subvention application.
  4. 8
    You call the transaction status API from your backend to validate the transaction response. As part of this API response, you will get the details about the modified order amount, gratification applied etc. You can also integrate a webhook to get these details.

Post Integration Steps

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 the 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 the "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.