• Getting Started
    • Website Integration
      Mobile Integration (Android/IOS)
      Enterprise Solutions
      Accept Payments
      Process Payments
      Disbursals
      API References
      Webhooks
      Testing
      Refunds
      Guides
      Other Processes

      Fetch Payment Option API

      Checksum required: No

      Use Case


      • To fetch payment options available for the transaction
      • To fetch payment options with which addition of fund is possible into customer’s Paytm wallet
      • To fetch saved cards of a customer. Along with saved cards, you also get a low success rate indicator. In case this indicator is positive, the customer should not be allowed to use the card
      • To fetch balance available in customer Paytm wallet and Paytm payments bank. Balance is only fetched, if the customer has logged into Paytm using Send and validate OTP flow with the same transaction token as being passed in this API request
      • To fetch list of top 5 netbanking options
      • BANK_MANDATE paymode is present in response only when txnToken is generated via Initiate Subscription API.

      Request Attributes

      API Content format: JSON

      Head

      ATTRIBUTEDESCRIPTIONMANDATORY
      version String (4)Version of the API. Current version is v1No
      requestTimestamp String (15)UNIX timestamp of the time request is being sentNo
      channelId String (3)Channel through which call is initiated.
      For websites, the value is WEB
      For Mobile websites/App, the value is WAP.
      Yes
      txnToken String (64)Unique Transaction Token generated in response of Initiate Transaction API / Initiate Subscription API. Merchant has to send back the same transaction token everytime in each subsequent API Call to communicate with PGYes

      Response Attributes

      Head

      ATTRIBUTEDESCRIPTIONMANDATORY
      version String (2)Version of the API passed in the request.No
      responseTimestamp String (15)UNIX Timestamp of the responseYes

      Body

      ATTRIBUTEDESCRIPTIONMANDATORY
      paymentFlow String (12)Define the payment flow applied on merchant. Possible values (ADDANDPAY/NONE) For Subscription, this will be NONEYes
      merchantPayOption PayOptionContain the payment modes that are available on merchant. Additionally consists of list of saved cards saved against the customerYes
      addMoneyPayOption PayOptionContain the payOption object that are applicable for add money transaction. This will be applicable if the wallet balance is insufficient.Yes
      merchantDetails MerchantDetailsDetails of the merchantYes
      addMoneyMerchantDetails MerchantDetailsDetails of the merchant for add moneyNo
      merchantOfferMessage StringOffer Message specific to the merchantYes
      nativeJsonRequestSupported booleanJSON API request supported for custom checkout or notYes
      promoCodeData PromoCodeDataData releated to promoYes
      resultInfo ResultInfoResult info of the API requestYes
      extraParamsMap Map <String, Object>Map for any extra informationNo
      promoCode StringIt is the code that has been applied during the transaction on the merchant websiteNo

      PayOption

      ATTRIBUTEDESCRIPTIONMANDATORY
      paymentModes List<PayMethod>Array of different payment Modes
      Possible values: WALLET, PPBL, PAYTM_DIGITAL_CREDIT, UPI, EMI, DEBIT_CARD, CREDIT_CARD, NET_BANKING, BANK_MANDATE.

      BANK_MANDATE - For Subscription only.
      No
      savedInstruments List<SavedInstruments>Array of saved card and other user saved instrumentsNo

      Pay Method

      ATTRIBUTEDESCRIPTIONMANDATORY
      paymentMode String (15)Possible vales: CREDIT_CARD, DEBIT_CARD, BALANCE, PPBL and BANK_MANDATE. Note that these codes should not be used as display names.

      BANK_MANDATE - For Subscription only.
      Yes
      displayName String (15)Payment Modes’ name ex- credit card, debit card, Paytm Balance, Paytm Payments Bank. Note that these names should be used as display namesYes
      isDisabledStatusInfoProvides the status of payment mode/instrument. If marked disabled, it is not available for the transactionYes
      payChannelOptions List<PayChannelBase>Success Rate, balance Information and issuing bank icon URL for issuing bank of Payment method.In case of NB, this will give list of top 5 used netbanks. Additionally here bank logos are also provided which can be rendered by the merchant on his cashier pageYes
      isHybridDisabled booleanFlag denoting if hybrid payment is allowed with the payment modeYes
      priority StringOrder in which the payment mode should be displayedYes

      MerchantDetails

      ATTRIBUTEDESCRIPTIONMANDATORY
      mcc Stringmcc of the merchantNo
      merchantVpa StringVirtual payment address of the merchantNo
      merchantName StringName of the merchantNo

      SavedInstruments

      ATTRIBUTEDESCRIPTIONMANDATORY
      issuingBank String saved instrument issuing bankYes
      cardDetailsCardDetailsCard details objectYes
      authModes ENUM (otp,atm) Available Authmode list for saved instrumentYes
      isEmiAvailable Boolean Indicates EMI available or notYes
      displayName Stringdisplay title of the saved instrumentYes
      channelCode NumericChannel code of saved instrument Like Visa/MasterYes
      channelName NumericChannel name of saved instrumentYes
      iconUrl StringIcon of issuing bank of saved instrumentYes
      isDisabled StatusInfoProvides the status of payment mode/instrument. If marked disabled, it is not available for the transactionYes
      hasLowSuccessStatusInfoIdentifier to depict low success rate on the payment mode/instrument in past 15 minutes. If the success rate is low, user should be communicated the same on the cashier page and motivated to choose a different payment instrumentYes
      isHybridDisabled booleanFlag denoting if hybrid payment is allowed with the saved instrumentYes

      CardDetails

      ATTRIBUTEDESCRIPTIONMANDATORY
      cardId StringPaytm saved card Id unique for each cardYes
      cardType ENUM (DEBIT_CARD, CREDIT_CARD)Define that merchant can accept payment from this payment modeYes
      expiryDate Date (YYYYMM)Expiry date of the card YYYYMMYes
      firstSixDigit StringFirst six digit of cardsYes
      lastFourDigit StringLast four digit of cardsYes
      status StringCard status if 1 then card is active if 0 card is inactiveYes
      cvvLength Stringlength of Cvv with the cardYes
      cvvRequired booleanflag to state that cvv is required or notYes

      StatusInfo

      ATTRIBUTEDESCRIPTIONMANDATORY
      userAccountExist BooleanDefine that user account exist for this payment modeNo
      merchantAccept BooleanDefine that merchant can accept payment from this payment modeNo
      Status BooleanDisable status of payment mode or instrumentYes
      Msg StringDisable status messageYes

      BalanceInfo

      ATTRIBUTEDESCRIPTIONMANDATORY
      Value floatTransaction value upto 2 decimal places like 100.50Yes
      Currency StringCurrency code (INR)Yes

      hasLowSuccess

      ATTRIBUTEDESCRIPTIONMANDATORY
      Status BooleanIf success rate is lower in last 15 minutes, then the value is returned as trueYes
      Msg StringMessage to display the user about the low success rateYes

      PayChannelBase

      ATTRIBUTEDESCRIPTIONMANDATORY
      isDisabled StatusInfoisDisabledNo
      hasLowSuccess StatusInfopay channel success rateNo
      iconUrl Stringicon URLYes

      PromoCodeData

      ATTRIBUTEDESCRIPTIONMANDATORY
      promoCodeMsg StringMessage related to the promotional CodeYes
      promoCodeTypeName StringType of promo codeYes
      promoCodeValid; booleanis the promo code valid for the transactionYes
      promoMsg Stringmessage related to the promotional CodeYes
      promoCode StringPromo code that has been applied on the transactionYes

      ResultInfo

      ATTRIBUTEDESCRIPTIONMANDATORY
      resultCodeStringResult code returned to merchant . Max length of result code can be 64Yes
      resultStatusStringStatus of API call
      (S:Success, F:Failure, U:Unknown)
      Yes
      resultMsgString (256)Result Message contains information about the result.Yes

      Response Codes and Messages

      resultCoderesultStatusresultMsg
      0000SSuccess
      400FInvalid Id supplied
      3001FException in Payment RequestProcessing
      00000900USystem error

      Endpoints

      Staging: https://securegw-stage.paytm.in/fetchPaymentOptions?mid={mid}&orderId={order-id}

      Production: https://securegw.paytm.in/fetchPaymentOptions?mid={mid}&orderId={order-id}

      Request CodeResponse JSON
      curl -X POST 'https://securegw-stage.paytm.in/fetchPaymentOptions?mid={mid}&orderId={order-id}' --header 'Content-Type: application/json' --data '{"head":{"txnToken":"{transaction-token}"}}'