Payout Idempotency

Make RazorpayX APIs idempotent. This allows you to retry a request multiple times while performing the action only once.


Idempotency in RESTful APIs allow you to retry a request multiple times without creating duplicates. If you make the same request multiple times, an idempotent API recognises the call and returns a single value. It eliminates the errors occuring due to repetition.

Explore the Payout Idempotency API collection in the Razorpay Postman Public Workspace. Fork the workspace and test the APIs with your

.

Sometimes when you make payouts to Contacts, the payouts are not processed due to network downtimes, bank issues or other factors. In such cases, you may or may not get a response from our servers understand the payout entity id or the

.

Payout Idempotency helps in such cases.

  • Safely retry the transaction using the same idempotency key without risk of making a double-payout or duplication.
  • If we find a duplicate request with the same idempotency key, we return the latest state of the payout entity that was created as part of the first transaction.

Before you make an idempotent request to create a payout, you must:

Or, if you already know which Contact you want to make the payout to, keep their Fund Account id (for example, fund_account_id: fa_00000000000001) available. The idempotent request ensures that any duplicate request made is not duplicated in the payout to your Contact.

You can refer to the Request Parameters of each API for more information.

Before you fire APIs, keep your Key id and Key Secret available. You can

in Live Mode or in on the .

API EndpointDescription
Requests for an idempotent payout.

The idempotency key is valid for 7 days from the first submission of the request.

This means you can use the idempotency key to safely retry a request for 7 days without fear of performing the same action twice.

Razorpay Webhooks to configure and receive notifications when a specific occurs.

When one of these events is triggered, we send an HTTP POST

in JSON to the webhook's configured URL.


Was this page helpful?