EMI Subvention through JS Checkout

EMI subvention on JS checkout can be integrated with minimal effort at the merchant side. Merchant passes the relevant object in the Initiate transaction API and invokes the JS module through a transaction token. Paytm backend configures the banks and EMI plans on which merchant wants to offer EMI subvention. Once this configuration is done then Paytm would manage the eligibility during the transaction.

Transaction flow

  1. After the user adds the items in the cart, the merchant calls the Initiate transaction API with an additional simplifiedSubvention object. Please refer to the below example explaining the simplifiedSubvention object that needs to be sent as part of the initiate transaction API.

    In case you want to integrate an amount based EMI subvention, you need to pass the simplifiedSubvention Object as explained in the example below. In this example, the total cart amount is of Rs. 2000 out of which you want to offer EMI subvention on Rs. 1100.

          "customerId": "1234",
          "selectPlanOnCashierPage": true,
          "subventionAmount":"1100.00" // subvention amount

    In case you want to integrate an item based EMI subvention, you need to pass the simplifiedSubvention Object as explained in the example below. In this example, there is 1 item in the cart and you want to give EMI subvention on it, then you pass the identifier of the item in the simplifiedSubvention Object. The different identifiers for item based EMI Subvention are categoryList, brandId and model. Out of these three identifiers, “categoryList” and “brandId” are mandatory whereas “model” is optional. Basically you need to send the same identifiers as you have got configured at Paytm Subvention engine. 

          "customerId": "1234",
          "items": [
              "quantity": 1, //quantity of the product.quantity
              "productId": "321067334", //unique product identifier for the merchant
              "price": 10000, //cumulative price of the product
              "brandId": "53066",
              "categoryList": [
                     ], //Product category identifiers for the merchant
              "model": "",
              "merchantId": "YOUR_MID_HERE",
              "id": "1" //unique identifier for one item in the request
          "selectPlanOnCashierPage": true
  2. Paytm receives the request and returns the transaction token in the response to the merchant.

  3. The merchant uses the transaction token along with other parameters to initialise the JS module. The other parameters required are mentioned below:

    • transactionAmount
    • tokenType
    • token
  4. Merchant invokes the JS module.

  5. JS module renders the cashier page on the browser, preset with the configurations received.

  6. User selects the payment instrument and fills the required payment details like card number, expiry date etc.

  7. Paytm receives the request and internally calls the Process transaction API and returns the transaction status to the merchant UI via callback.

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

  8. User is redirected to the bank page for authorization. Once the transaction is authorized, Paytm receives the response from the bank and returns a status to the website via your callback URL. Please refer to the sample callback response here

API Integration

Post Integration Steps

Post completion of integration on merchant's staging environment, do a complete transaction from order summary page on the mobile app.

  1. Attempt a test transaction using the test paymodes credentials.
  2. 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 the dashboard.

Once the test transaction is complete, move the code to a live environment with production account details, which merchant would have received from Paytm.
In case of any issues with integration, please get in touch.