RazorpayX - Sample Payload

Sample payload for RazorpayX


Following is the list of currently available webhook events for RazorpayX.

Payout PayloadsπŸ”—

The payload remains the same irrespective of the fund_account_type to which payout was made. That is, the payload is same whether the payout was made to a bank account, vpa or card.

The table below lists the webhook events available for RazorpayX Payouts.

Webhook Event

Applicable For

Description

payout.pending

all payouts

Triggered whenever a payout moves to the pending state. The payout remains in this state till you approve or reject it.

payout.rejected

all payouts

Triggered whenever a payout moves to the rejected state. The payout was rejected by someone from your team.

payout.queued

all payouts

  • Triggered whenever a payout moves to the queued state. Payout goes to queued state when you do not have sufficient funds to process it or when the beneficiary bank/NPCI/partner bank is down. This event is applicable only for Virtual account.

  • You will receive the reason for the payout to be in the queued state as part of the status_details object.

payout.initiated

all payouts

Triggered when the payout moves to the processing state when the payout is created or from the queued state when sufficient funds are available to process the payout.

payout.processed

all payouts

Triggered when a payout moves to the processed state. This happens when the payout is processed by the contact's bank.

payout.updated

all payouts

Triggered whenever there is a change in the payout entity. For example, when we receive the UTR for the payout from the bank. For NEFT transactions, this webhook is fired within 90 seconds. For IMPS and UPI transactions, this webhook is generally fired immediately.

payout.reversed

all payouts

Triggered whenever a payout fails and the amount is returned to your business account.

payout.failed

all payouts

Triggered when a payout is failed because the beneficiary bank OR NPCI OR processing partner bank is down. If the beneficiary bank/partner banks/NPCI does not recover within the stipulated SLA, a FAILED event will be sent with the respective reason. Handy Tips
It is mandatory to subscribe to the payout.failed event if you are using RazorpayX APIs.

Order of EventsπŸ”—

For example for payouts, you should receive webhooks in the following order:

  1. payout.pending (if you have Approval Workflow enabled on your account)
  2. payout.queued (in case your business account does not have sufficient balance to process the payout)
  3. payout.initiated
  4. payout.processed or payout.reversed

The above order may not be followed at all times. You should configure your webhook URL to not expect delivery of these events in this order and handle such scenarios.

The processed and reversed states are the last states for a payout. Their corresponding webhooks payout.processed or payout.reversed indicate this state change. Any webhook received after these should be ignored.

Handy Tips
The error object has been deprecated.

Payout PendingπŸ”—

Payout RejectedπŸ”—

Payout QueuedπŸ”—

Payout InitiatedπŸ”—

Payout ProcessedπŸ”—

Payout UpdatedπŸ”—

Payout ReversedπŸ”—

Payout FailedπŸ”—

Transaction PayloadsπŸ”—

The table below lists the webhook events available for RazorpayX transactions.

Webhook Events

Description

transaction.created

Triggered whenever you:

  • Make a Payout (virtual account or current account).
  • Add funds to your RazorpayX account (virtual account or current account).
  • Perform any kind of transaction (ATM transaction, cash withdrawal, netbanking transfer, encashed cheque) on your current account.
  • Transaction CreatedπŸ”—

    Handy Tips
    If you have changed your webhook secret, remember to use the old secret for webhook signature validation while retrying older requests. Using the new secret will lead to signature mismatch.

    Do Not Parse or Cast the Webhook Request Body
    While generating a signature at your end, ensure that the webhook body is passed as an argument in the raw webhook request body. Do not parse or cast the webhook request body.

    Payout Link PayloadsπŸ”—

    The payload remains the same irrespective of the fund_account_type to which payout was made. That is, the payload is same whether the payout was made to a bank account, vpa or card.

    Available EventsπŸ”—

    The table below lists the webhook events available for RazorpayX Payout Links.

    payout_link.pending
    Triggered whenever a payout link moves to the pending state. This indicates that the payout link has been created. Applicable only for cases where approval workflow is set.
    payout_link.issued
    Triggered whenever a payout link moves to the issued state. This indicates that the payout link has been created.
    payout_link.processing
    Triggered whenever a payout link moves to the processing state. This indicates that your contact has entered their fund account details and the payout is being processed.
    payout_link.processed
    Triggered whenever a payout link moves to the processed state. This indicates that the payout has been successfully made.
    payout_link.attempted
    Triggered whenever the underlying payout has reversed and another attempt is required on the payout link.
    payout_link.cancelled
    Triggered whenever a payout link moves to the cancelled state. This indicates that you have cancelled the payout link.
    payout_link.rejected
    Triggered whenever a payout link moves to the rejected state. This indicates that the Approver has rejected the payout link. Applicable only for cases where approval workflow is set.
    payout_link.expired
    Triggered whenever a payout link moves to the expired state. This indicates that the payout link has expired.

    Handy Tips
    Expiry feature for Payout Links must be enabled before using this webhook event. Know more about how to enable the expiry feature.

    payout_link.attemptedπŸ”—

    Triggered whenever the underlying payout has reversed and another attempt is required on the payout link.

    payout_link.issuedπŸ”—

    Triggered whenever a payout link moves to the issued state. This indicates that the payout link has been created.

    payout_link.pendingπŸ”—

    Triggered whenever a payout link moves to the pending state. This indicates that the payout link has been created. Applicable only for cases where approval workflow is set.

    payout_link.processingπŸ”—

    Triggered whenever a payout link moves to the processing state. This indicates that your contact has entered their fund account details and the payout is being processed.

    The fund_account_id is populated at this stage.

    payout_link.processedπŸ”—

    Triggered whenever a payout link moves to the processed state. This indicates that the payout has been successfully made.

    payout_link.rejectedπŸ”—

    Triggered whenever a payout link moves to the rejected state. This indicates that the payout link has been rejected by the Approver.

    payout_link.cancelledπŸ”—

    Triggered whenever a payout link moves to the cancelled state. This indicates that you have cancelled the payout link.

    payout_link.expiredπŸ”—

    Triggered whenever a payout link moves to the expired state. This indicates that the payout link has expired.

    Account ValidationπŸ”—

    We support webhook notifications for the following events:

    fund_account.validation.completed Bank Account and VPA
    Triggered whenever an account validation transaction is completed.
    fund_account.validation.failed Bank Account and VPA
    Triggered whenever an account validation transaction fails.

    fund_account.validation.completedπŸ”—

    This webhook is triggered whenever an account validation transaction is completed.

    This webhook is available for both bank account and VPA validation.

    fund_account.validation.failedπŸ”—

    This webhook is triggered whenever an account validation transaction fails.

    Handy Tips
    This webhook is available only for bank account validation. It is not available for VPA validation.

    Γ—