• Callback Response
  • Getting Started
    • Mobile Integration (Android/IOS)
      Enterprise Solutions
      Retail Solutions
      Accept Payments
      Process Payments
      Paytm Payouts
      API References
      Refunds
      Guides
      Other links
      Mini Apps Platform
  • Features for Investments PG
  • post Bank Transfer API

    Use Case


    To disburse fund from sub-wallets/disbursal accounts to bank account using VPA / Mobile number / Bank account number and IFSC code.

    HTTP Headers

    ATTRIBUTE DESCRIPTION
    x-midstring(50)
    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.
    x-checksumstring(108)
    mandatory
    Signature encryption for validation. It's value to be sent should be the checksum string created by using Paytm checksum library.
    Note: Create the signature using all the request parameters.

    Request Attributes


    API Content Type: JSON

    ATTRIBUTE DESCRIPTION
    orderIdstring(50)
    mandatory
    Unique reference ID provided by merchant using which each disbursal request is processed. This should be alphanumeric. Duplicate requests with the same orderId are rejected.
    subwalletGuidstring
    mandatory
    Sub wallet/disbursal account GUID. This is available on Paytm dashboard
    amountstring
    mandatory
    Amount in INR payable by the merchant. Should contain digits up to two decimal points. The only special character allowed is (“.”). Amount limit from 1 to 200000.
    purposestring(50)
    mandatory
    Pass any one from below options: SALARY_DISBURSEMENT
    REIMBURSEMENT
    BONUS
    INCENTIVE
    OTHERS.
    datestring(10)
    mandatory
    Pass the date for which merchant wants to disburse the amount. Required for SALARY_DISBURSEMENT and REIMBURSEMENT. Date format <YYYY-MM-DD>.
    callbackUrlstring(255)
    optional
    URL where we will post disbursal status. The merchant needs to whitelist this URL with Paytm.
    commentsstring(50)
    optional
    Disbursal comments.
    transactionTypestring
    optional
    Pass the transaction type as per your use case. We will be treated this as NON_CASHBACK if it's blank.
    NON_CASHBACK
    CASHBACK
    transferModestring(25)
    optional
    Merchant can use this field to specify the disbursal mode. pass anyone from below:
    IMPS
    NEFT
    UPI
    beneficiaryNamestring
    conditional
    Beneficiary name is Optional for IMPS and Mandatory for NEFT to disburse the amount.
    beneficiaryAccountstring(19)
    mandatory
    Bank account number of the beneficiary to which the disbursal should be made.
    beneficiaryIFSCstring(11)
    mandatory
    IFSC code of the beneficiary account holding bank branch.
    beneficiaryVPAstring
    mandatory
    VPA of the beneficiary to which the disbursal should be made
    beneficiaryPhoneNostring
    mandatory
    Phone No. of the beneficiary to which the disbursal should be made

    Note: For UPI Transfer, You have to send transferMode as UPI and pass anyone from beneficiaryVPA or beneficiaryPhoneNo in disbursal request.

    Response Attributes


    API Content Type: JSON

    ATTRIBUTE DESCRIPTION
    statusCodestring Failure reason code where status is FAILURE. A detailed list of statusCode is mentioned at the bottom of this page.
    statusstring Disbursal request status. It can be FAILURE or ACCEPTED or SUCCESS.
    statusMessagestring Description of each statusCode.

    Response Codes and Messages


    statusCodestatusstatusMessage
    DE_001SUCCESSSuccessful disbursal to Bank Account is done.
    DE_002ACCEPTEDRequest accepted.
    DE_010FAILUREparameter is mandatory and it's can't be null or blank.
    DE_011FAILUREparameter doesn't contain valid value.
    DE_012FAILUREAmount must be a positive number with maximal 2 decimal places.
    DE_013FAILUREParam doesn't contain valid length, It should be <length> or less.
    DE_014FAILUREPPBL account no should be 12 digits and starts with 91.
    DE_015FAILUREPurpose not valid.
    DE_016FAILUREMonth not valid.
    DE_017FAILUREYear not valid.
    DE_018FAILUREYou can disburse the amount up to 6 months before from the current month.
    DE_019FAILUREMID is not valid.
    DE_021FAILUREDisburse amount should be Rs. 1 or more.
    DE_022FAILUREDisburse amount should not be more than Rs. 200000.
    DE_023FAILUREMid is not active.
    DE_024FAILUREAccount no should be alphanumeric with length between 9 to 18 digits.
    DE_025FAILUREIFSC code is invalid.
    DE_034FAILUREInvalid Pay Mode.
    DE_039FAILURENo record found.
    DE_040FAILUREDuplicate order id.
    DE_041FAILUREUnable to process your request. Please try after some time.
    DE_042FAILUREDate format is not correct as it should be yyyy-MM-dd.
    DE_050FAILURECallback URL passed is Invalid.
    DE_051FAILUREDisbursal to other bank accounts not supported
    DE_052FAILUREBank Transfer Mode not valid
    DE_053FAILUREIMPS not allowed for amount more than 2 lakhs
    DE_054FAILURESubwalletGuid is not correct, Please check and try again
    DE_055FAILUREUnable to disburse from given subWalletGuid. Please use another or create a new one
    DE_056FAILUREUPI not allowed for amount more than 1 lakhs
    DE_057FAILUREInvalid request
    DE_101PENDINGYour request is in process. Kindly check after sometime.
    DE_102PENDINGDisbursal to Bank Account failed. Your refund to sub-wallet is in process.
    DE_602FAILUREDisbursal to bank account failed. Please try after some time.
    DE_400FAILUREInvalid Request Parameter.
    DE_401FAILUREAuthentication Parameters Required.
    DE_402FAILUREAccess Denied.
    DE_403FAILUREAPI Not Found.
    DE_404FAILUREUnable to authenticate request.
    DE_405FAILURERemote IP not whitelisted.
    DE_406FAILUREInvalid Client-Token.
    DE_407FAILUREClient-Token Required.
    DE_408FAILUREChecksum Required.
    DE_409FAILUREChecksum Verification Failed.
    DE_500FAILURESystem Error.
    DE_606FAILUREInvalid account number.
    DE_607FAILUREError at bank end.
    DE_603FAILUREDisbursal to bank account failed.
    DE_609FAILUREUnable to fetch details.
    DE_612FAILUREAccount blocked/frozen.
    DE_613FAILUREInvalid IFSC/MICR.
    DE_614FAILUREAccount is closed.
    DE_615FAILUREInvalid account number or IFSC code.
    DE_616FAILUREDaily allowed amount limit for the beneficiary is exceeded.
    DE_617FAILUREBeneficiary account is NRE account.
    DE_618FAILUREInvalid NBIN (IFSC code).
    DE_619FAILURENPCI rejects as net debit cap is exceeded for remitter.
    DE_620FAILURECard is restricted at beneficiary account.
    DE_621FAILURETransaction declined, Bank not enabled for P2A functionality.
    DE_622FAILUREMaximum limit amount exceeded.
    DE_623FAILUREExceeded maximum allowed number of transfers per day.
    DE_625FAILUREInvalid IFSC code.
    DE_626FAILURETransaction is declined based on From account type and To account type.
    DE_627FAILURETransaction is declined based on transaction limit imposed on the From account type and To account type.
    DE_628FAILUREBeneficiary PPI is Gift prepaid and this is not the first transaction.
    DE_629FAILUREAcquiring bank has not implemented customer initiated person-to-merchant transaction.
    DE_631FAILUREAmount is greater than 2 Lakhs (Applicable for Bank where NDC is greater than 2 Lakhs).
    DE_632FAILUREInvalid payment reference.
    DE_634FAILUREInvalid transaction.
    DE_636FAILUREUnable to process.
    DE_640FAILURELimit Exceed.
    DE_641FAILURENo record found.
    DE_643FAILURERemmiter and beneficiary accounts are same.
    DE_646FAILUREFund transfer not allowed for this transaction type.
    DE_647FAILURERefund not allowed for this transaction type.
    DE_648FAILUREProduct Service Unavailable.
    DE_649FAILURECA Form 60 Val Current Account Form 60 current balance limit breached.
    DE_650FAILURECA Form 60 Val Current Account Form 60 Daily deposit limit breached.
    DE_651FAILUREFraud verification Maquette suspicious response.
    DE_652FAILURENodal IMPS Nodal IMPS Amount Limit Breached.
    DE_653FAILURENodal IMPS Beneficiary Does Not exist.
    DE_656FAILURECredit account freeze.
    DE_657FAILUREHost (CBS) offline / Beneficiary node offline
    DE_658FAILUREAccount does not exist in CBS
    DE_659FAILUREBank is not enabled for IMPS P2U
    DE_660FAILUREThis IFSC is no longer valid. Please update account details
    DE_661FAILUREInvalid payee mobile
    DE_662FAILUREInvalid virtual address
    DE_663FAILUREMoney transfer is not allowed to receiver account
    DE_664FAILUREMoney transfer request declined by the receiver bank. Please try again
    DE_665FAILUREPayee bank UPI not supported
    DE_666FAILUREMoney transfer request declined by the remitter bank
    DE_667FAILUREBank account is not active
    DE_668FAILUREUPI user not found
    DE_669FAILUREUPI not registered or UPI registered but bank a/c not linked
    DE_670FAILUREYour request was unsuccessful. Please try again
    DE_671FAILUREYou have exceeded the daily transaction amount limit set by your bank
    DE_672FAILUREYou can not send money to this UPI ID
    DE_673FAILUREInvalid UPI id
    DE_674FAILUREBeneficiary bank account details are not correct
    DE_675FAILURESomething went wrong at the receiver bank servers. Please try again
    DE_676FAILUREBeneficiary account does not exist
    DE_677FAILURERequest declined by the receiver bank
    DE_678FAILUREInvalid payer UPI address
    DE_679FAILUREBeneficiary bank rejected as account type is not supported
    DE_680FAILUREBeneficiary bank rejected credit for a reason.
    Eg: name missing/does not match
    DE_681FAILUREUser is not a Paytm UPI registered user
    DE_682FAILUREUPI VPA does not exist
    DE_683FAILUREMoney transfer declined by UPI payment service provider
    DE_701FAILUREMerchant does not exists.
    DE_703FAILUREWallet could not found, please verify walletGuid.
    DE_704FAILURESub wallet not found.
    DE_705FAILUREAgent wallet balance can't be negative. Please fund your wallet and try again.
    StagingProduction
    REQUESTRESPONSE
    curl -X POST 'https://staging-dashboard.paytm.com/bpay/api/v1/disburse/order/bank' \
    --header 'Content-Type: application/json' \
    --header 'x-mid: {mid}' \
    --header 'x-checksum: {checksum}' \
    --data '{"subwalletGuid":"28054249-XXXX-XXXX-af8f-fa163e429e83","orderId":"ORDERID_98765","beneficiaryAccount":"918008484891","beneficiaryIFSC":"PYTM0123456","purpose":"SALARY_DISBURSEMENT","date":"2020-06-01","amount":"1.00"}'