• Callback Response
  • Getting Started
    • Mobile Integration (Android/IOS)
      Enterprise Solutions
      Retail Solutions
      Accept Payments
      Process Payments
      Disbursals
      API References
      Refunds
      Guides
      Other links
      Mini Program Platform
  • Features for Investments PG
  • post Process Transaction API

    Use Case


    It is used to process the transaction with respect to paymentMode provided by merchant in the request. We either return bank form for paymentMode like NET_BANKING, CREDIT_CARD, DEBIT_CARD or provide the result of payment in case of paymentMode like BALANCE, PAYTM_DIGITAL_CREDIT etc.

    Request Attributes


    API Content Type: JSON

    Head1

    Head

    ATTRIBUTEDESCRIPTION
    version string(4)
    optional
    Version of the API.
    Example: v1
    requestTimestamp string(15)
    optional
    EPOCH timestamp of the time at which request is being sent.
    Example: 1588402269
    channelId string(3)
    optional
    The parameter value identifies the Channel for which API call is initiated.
    Possible Values: WEBFor websites, the value to be passed should be "WEB", WAPFor Mobile websites/App, the value to be passed should be "WAP"
    txnToken string(64)
    mandatory
    This is the unique transaction token received in the response of Initiate Transaction API or Initiate Subscription API. It is valid for 15 minutes.
    Example: f0bed899539742309eebd8XXXX7edcf61588842333227
    Body1

    Body

    ATTRIBUTEDESCRIPTION
    mid string(20)
    mandatory
    Paytm provides MID as a unique identifier to each merchant. For your staging MID, click here. You get the production MID post the account activation.
    Example: INTEGR7769XXXXXX9383
    orderId string(50)
    mandatory
    It is unique reference ID for a transaction passed in Initiate Transaction API or Initiate Subscription API.
    Example: OREDRID_98765
    paymentMode string(3)
    mandatory
    The payment mode used by customer for transaction.
    Possible Values: BALANCE For Paytm Wallet, UPIFor Bhim Upi, UPI_INTENTFor Upi Intent, CREDIT_CARDFor Credit Card, DEBIT_CARDFor Debit Card, NET_BANKINGFor Net Banking, EMIFor emi options
    cardInfo string
    optional
    It contains the details of saved and new card in the format:
    cardInfo: saveCardId|cardNo|cvv|expDate.
    Possible Values:
    For Save Card - 123123||123|
    For Card - |4111111111111111|123|122032
    authMode string(5)
    optional
    Authentication mode for Cards.
    Possible Values: otpFor Mobile OTP, pinFor ATM PIN
    channelCode string(5)
    optional
    BankCode (only in NET_BANKING)
    Possible Values: SBI, ICICI, PNB, HDFC
    paymentFlow string(12)
    optional
    Define the payment flow applied on merchant.
    Possible Values: NONEFor Default, ADDANDPAYFor Add and Pay, HYBRIDFor Hybrid
    payerAccount string
    optional
    VPA, this is needed for UPI transaction.
    Example: 7777777777@paytm
    planId string
    optional
    This is the plan chosen for EMI, Input could be: BankCode|Month.
    Example: ICICI|3
    storeInstrument string
    optional
    Save instrument or not
    Possible Values: 1For storing user instrument., 0For not storing user instrument.
    requestType string(30)
    mandatory
    Request type
    Possible Values: NATIVE
    walletType string
    optional
    Only required for Intelligent Router when paymentMode is WALLET.
    Possible Values: PAYTMPG

    Example of sample inputs based on different paymentMode

    1. Card transaction (without saved card):
      paymentMode: DEBIT_CARD ( CREDIT_CARD or DEBIT_CARD as per the card )
      cardInfo: |4111111111111111|123|092017
      storeInstrument: 1

    2. Card transaction (with saved card):
      paymentMode: CREDIT_CARD (CREDIT_CARD or DEBIT_CARD as per the card )
      cardInfo: 123456||123|

    3. Card transaction (with auth mode option):
      paymentMode: DEBIT_CARD (CREDIT_CARD or DEBIT_CARD as per the card )
      cardInfo: |4111111111111111|123|092017
      storeInstrument: 1
      authMode: atm (atm and otp in case of user selected option)

    4. Net banking transaction:
      paymentMode: NET_BANKING
      channelCode : ICICI

    5. Paytm wallet transaction:
      paymentMode: BALANCE

      For intelligent router, please use below:
      paymentMode: WALLET
      walletType: PAYTMPG

    6. UPI Payment Transaction:
      paymentMode: UPI
      channelCode : collect
      payerAccount: abcdefgh@paytm

    7. Paytm Payments Bank
      paymentMode: PPBL

    8. Add and Pay with Cards
      paymentMode: DEBIT_CARD (CREDIT_CARD or DEBIT_CARD as per the card )
      cardInfo: |4111111111111111|123|092017
      paymentFlow: ADDANDPAY


    Response Attributes


    API Content Type: JSON

    Head2

    Head

    ATTRIBUTEDESCRIPTION
    version string(2)
    Version of the API passed in the request.
    Example: v1
    responseTimestamp string(15)
    EPOCH timestamp of the time at which response is being sent.
    Example: 1588402269
    Body2

    Body

    ATTRIBUTEDESCRIPTION
    resultInfo object
    This parameter gives the information about the result of the API response.
    ResultInfo +
    AttributeDescription
    resultCode string
    This is the resultCode corresponding to a particular message and is returned to the merchant. It's maximum length is 64. The different result codes corresponding to this API are mentioned below
    resultStatus string
    This parameter indicates the status of API call.
    Possible Values: SFor Success, FFor Failure
    resultMsg string(256)
    This parameter is the result message which contains information about the result.The different result messages corresponding to this API are mentioned below
    isRedirect boolean
    This flag indicates that number of retries are over and user is to be redirected from cashier page
    bankRetry boolean
    This flag indicates that retry is allowed at bank's end or not
    retry boolean
    This flag indicates whether retry is allowed or not
    txnInfo object
    Basic information about this transaction
    TxnInfo +
    AttributeDescription
    MID string(20)
    This is a unique identifier provided to every merchant by Paytm.
    Example: INTEGR7769XXXXXX9383
    TXNID string(64)
    This is a unique Paytm transaction ID that is issued by Paytm for each merchant.
    Example: 202005081112128XXXXXX68470101509706
    ORDERID string(50)
    Unique reference ID for a transaction which is generated by merchant and sent in the request
    Example: OREDRID_98765
    BANKTXNID string
    The transaction ID sent by the bank. In case of Paytm proprietary instruments too, there is unique reference number generated by Paytm's system. In case the transaction does not reach the bank, this will be NULL or empty string. Primary reason for this is user dropping out of the payment flow before the transaction reaches to bank servers.
    Example: 77700XXXX215242
    TXNAMOUNT string(10)
    Amount to be paid by customer in INR
    Example: 1.00
    CURRENCY string(3)
    This parameter indicates the currency in which transaction amount is to be deducted.
    Possible Values: INR
    STATUS string(20)
    This contains the transaction status.
    Possible Values: TXN_SUCCESS, TXN_FAILURE and PENDING
    RESPCODE string(10)
    Codes refer to a particular reason of payment.
    RESPMSG string(500)
    Description message is linked with each respcode.
    TXNDATE string
    Date and Time of transaction.
    Example: 2015-11- 02 11:40:46.0
    GATEWAYNAME string(15)
    Gateway used by Paytm to process the transactions.
    Example: HDFC
    PAYMENTMODE string(15)
    The payment mode used by customer for transaction.
    Possible Values: PPIFor Paytm Wallet, UPIFor Bhim Upi
    CHECKSUMHASH string(108)
    You should validate the txnInfo object parameter values by verifying the CHECKSUMHASH comes in txnInfo object. It ensures that parameter values are not tempered. CHECKSUMHASH string can be verified by using Paytm checksum library.
    VPA string
    VPA address which comes in request payload.
    Example: 7777777777@paytm
    PROMO_CAMP_ID string
    Promo code
    PROMO_RESPCODE string
    Response code of promo code for this transaction
    PROMO_STATUS string
    Status of promo code for this transaction
    Possible Values: SUCCESSFor Success, FAILUREFor Failure
    callBackUrl string
    Call back url which is given in Initiate Transaction API or Initiate Subscription API
    bankForm object
    BankForm Details returned in case of following paymentModes:
    CREDIT_CARD, DEBIT_CARD, NET_BANKING, EMI, UPI.
    BankForm +
    AttributeDescription
    pageType string
    It describe the page type.
    Possible Values: redirectFor Paytm Form, directFor Bank Form
    redirectForm object
    Contains Bank URL , Http method , headers and content to be used by merchant to open bankForm.
    FormDetail +
    AttributeDescription
    actionURL string
    URL that merchant needs to call.
    method string
    http method to be used by merchant to call the above URL.
    Example: post
    type string
    It describe the form type.
    Possible Values: redirect, submit, cancel, resend, payonbank
    headers object
    http headers to be used when calling actionURL.
    Example: {'Content-Type':'application/x-www-form-urlencoded'}
    content object
    Map of data that needs to be provided in the request body when calling actionURL.
    Example: {"MD":"1386959067","PaReq":"eJxVUsFy4jAM3036f4C56Zvls=", "TermUrl":"https://securegw-stage.paytm.in/instaproxy/bankresponse/HDFC/CC/90200XXXXXXXXXX71676"}
    directForms array of object
    Contains APIs (URLs, Header, Payload) to be used on merchant owned Bank Page.
    FormDetail +
    AttributeDescription
    actionURL string
    URL that merchant needs to call.
    method string
    http method to be used by merchant to call the above URL.
    Example: post
    type string
    It describe the form type.
    Possible Values: redirect, submit, cancel, resend, payonbank
    headers object
    http headers to be used when calling actionURL.
    Example: {'Content-Type':'application/json'}
    content object
    Map of data that needs to be provided in the request body when calling actionURL.
    Example: {"MD":"1386959067","PaReq":"eJxVUsFy4jAM3036f4C56Zvls=", "TermUrl":"https://securegw-stage.paytm.in/instaproxy/bankresponse/HDFC/CC/90200XXXXXXXXXX71676"}
    displayField object
    Contains field like Amount, Bank Name, URL for bank logo etc. which can be used for display purpose.
    Example:{ "amount" : "1.0", "headerText" : "", "bankName" : "HDFC", "bankLogo" : "", "descriptionText" : "" }
    isForceResendOtp boolean
    Status of resend OTP feature
    deepLinkInfo object
    Information of DeepLink
    UPI_INTENT only
    DeepLinkInfo +
    AttributeDescription
    deepLink string
    DeepLink URL
    orderId string
    Order ID is merchant’s unique reference ID for a transaction sent in request.
    cashierRequestId string
    Cashier Request ID
    transId string
    Transaction ID

    Response Codes and Messages


    resultCoderesultStatusresultMsg
    0000SSuccess
    0001FFAILED
    RC-00018FPayment failed as merchant has crossed his daily/monthly/weekly acceptance limit
    309FInvalid Order ID
    312FThis card is not supported. Please use another card.
    315FInvalid Year
    372FRetry count breached
    501FSystem Error
    810FMerchant Transaction Failure
    931FIncorrect Passcode
    1001FRequest parameters are not valid
    1005FDuplicate payment request exception
    1006FYour Session has expired.
    1007FMissing mandatory element
    2004FInvalid User Token
    StagingProduction
    REQUESTRESPONSE
    curl -X POST 'https://securegw-stage.paytm.in/theia/api/v1/processTransaction?mid={mid}&orderId=ORDERID_98765' \
    --header 'Content-Type: application/json' \
    --data '{"head":{"txnToken":"f0bed899539742309eebd8XXXX7edcf61588842333227"},"body":{"requestType":"NATIVE","mid":"{mid}","orderId":"ORDERID_98765","paymentMode":"CREDIT_CARD","authMode":"otp","cardInfo":"|4111111111111111|111|122032"}}'