Payout Error Codes

RazorpayX Payout Error Codes. Understand why they occur and the steps to resolve them.


Payout Error Codes are returned when a Payout is created but fails for some reason. You can identify when a payout has failed with the Payout response or via Webhook Payloads.

There are plenty of reasons for why a payout may fail. When that happens, a

takes place so that money is not mistakenly transferred.

The error code that appears when you fire the API shows the source and the reason for the error. This payouts error codes documentation will help you understand the:

Handy Tips

The error object in the payouts' API response gives more details about the exact reason for a payout failure and the suggested next steps. You can enable these changes from the RazorpayX Dashboard.

Please share this information with your developers and make sure to check if there is any hard mapping for parameters before making this change. Once enabled, these changes cannot be reversed.

Also take a look at the

to see how you can enhance your payout processes.

Here is an example of how an error code appears when a payout fails.

The following table lists the error parameters and what they mean.

code

string The error code.

description

string A brief description of the error. For example, The account number field is required.

source

string Possible values:

step

NA Not applicable for API Error Codes, value displayed to maintain consistency of error object.

reason

string The error reason. For example, input_validation_failed.

metadata

Null Value Not applicable for API Error Codes, value displayed to maintain consistency of error object.

field

string Details pertaining to the payout such as account_number, amount, payout purpose and so on.

The following table lists down the Payout Error Source and what it means.

SourceExplanation
gatewayTechnical error at Razorpay Partner bank.
beneficiary_bankTechnical error at beneficiary bank.
businessMerchant action is required.
internalTechnical error at Razorpay's server.

The below table lists the error reasons and the explanation for why they occured. Find out how you can resolve the errors with the troubleshooting steps mentioned against the respective errors.

ReasonExplanationNext Step
gateway_technical_errorTechnical error at Razorpay partner bank/NPCI/Wallet providers. This usually occurs when there is some server issue at the partner bank end.Retry after some time or reach out to RazorpayX Support from the Dashboard.
beneficiary_bank_offlineTechnical error at beneficiary bank. This usually occurs when there is some server issue at the beneficiary bank end.Retry after some time or reach out to RazorpayX Support from the Dashboard.
beneficiary_psp_offlineTechnical error at beneficiary payment service provider. This usually occurs when there is some server issue at beneficiary bank end.Retry after some time or reach out to RazorpayX Support from the Dashboard.
bank_account_invalidIncorrect beneficiary bank account number.Correct the account number and retry.
bank_account_closedPayout failed as the beneficiary account is closed.Check with your contact or reach out to RazorpayX Support from the Dashboard.
bank_account_dormantPayout failed as beneficiary account is dormant.Contact the beneficiary bank.
transaction_limit_exceededPayout amount is greater than the limit supported by the beneficiary account.Check fund transfer limit for the beneficiary bank and retry.
beneficiary_bank_failureTechnical error at beneficiary bank. This usually occurs when there is some server issue at beneficiary bank end.Retry after some time or reach out to RazorpayX Support from the Dashboard.
beneficiary_bank_rejectedPayout rejected by beneficiary bank. Please contact the beneficiary bank.Check with beneficiary bank or reach out to RazorpayX Support from the Dashboard.
bank_account_frozenPayout failed as the beneficiary account is frozen.Check with the beneficiary bank.
gateway_pendingPayout pending at Razorpay partner bank/NPCI/Wallet providers.Status will be updated after 48 working hours.
gateway_timeoutTechnical error at Razorpay partner bank/NPCI/Wallet providers. This usually occurs when there is some server issue at the partner bank end.Retry after some time or reach out to RazorpayX Support from the Dashboard.
imps_not_allowedIMPS is not enabled on beneficiary account.Retry with different mode for fund transfer.
invalid_ifsc_codePayout failed as the IFSC is invalid.Correct the IFSC and retry.
nre_bank_accountPayout failed as beneficiary account is an NRE account.Contact the beneficiary bank.
beneficiary_vpa_invalidPayout failed due to invalid beneficiary VPA/UPI ID.Correct the VPA/UPI ID and retry.
server_errorTechnical error. This usually occurs when there is some issue with the server.Retry after some time or reach out to RazorpayX Support from the Dashboard.
input_validation_failedFor error description The account number field is requiredEnsure you pass the request body in correct format. Refer to .
input_validation_failedFor error description Minimum transaction amount should be 100 paiseEnsure the amount field has value >=100 as this field expects amount in paise format.
input_validation_failedFor error description The id provided does not existEnsure the fund account is already added and you pass the correct Fund Account ID.
input_validation_failedFor error description Payout mode is invalidThis is a case sensitive field and you must pass this mode as it is. For example, IMPS, RTGS, UPI, NEFT.
Not ApplicableFor error description The RazorpayX Account number is invalid.Pass the correct debit account number. You can check the account number from your My Account & Settings → Banking → Account No. Also confirm if you are using test API keys for test account number and live API Keys for RazorpayX Lite or Current account number.

Example: A Payout has failed. The event for payout failure is triggered and you get instant alerts about it when webhooks are enabled.

  • You get alerted about it instantly for that with webhooks.
  • You can for many such events.
  • When any of the configured events is triggered, such as in this case, we send an HTTP POST in JSON to the webhook's configured URL.