> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Webhooks for Callback Notifications

> Receive real-time payout status updates by configuring a callback URL. bluSwap POSTs a JSON payload to your URL when a payout transaction completes.

Webhooks let you receive real-time payout status updates without polling the Check Transaction Status endpoint. When a payout transaction reaches a terminal state, bluSwap sends a POST request carrying a JSON payload to the callback URL you configure in the dashboard.

> [!WARNING]
>
> Configure your callback URL in the bluSwap dashboard before processing live payout transactions. Without a registered URL, you will not receive webhook notifications for completed or failed payouts.

## How It Works

**1. Register your callback URL**

Log in to the bluSwap dashboard and navigate to the webhook settings section. Enter the publicly accessible HTTPS URL where you want bluSwap to deliver payout notifications.

**2. Receive the POST request**

When a payout reaches a terminal state (`SUCCESS` or `FAILED`), bluSwap sends a `POST` request with `Content-Type: application/json` to your registered callback URL.

**3. Parse the payload and respond**

Read the `data.trx_status` field to determine the outcome, update your internal records, and return an HTTP `200` response to acknowledge receipt.

## Webhook Request

bluSwap delivers webhook events as HTTP `POST` requests with the header `Content-Type: application/json`.

## Payload

```json theme={"dark"}
{
    "status": true,
    "status_code": 200,
    "message": "Transaction completed successfully",
    "data": {
        "trx_status": "SUCCESS",
        "transaction_id": "TXN8746234890",
        "trx_message": "Transaction completed successfully",
        "order_id": "azn-324234-234hj-23432",
        "amount": 1500.75,
        "payment_mode": "IMPS",
        "beneficiary_name": "John Doe",
        "name_at_bank": "John Doe",
        "account_number": "501456789012",
        "ifsc": "HDFC0001234",
        "utr": "637298743612",
        "updated_at": "2025-06-26 12:45:30",
        "charge": 15,
        "gst": 2.7
    }
}
```

## Payload Fields

**data.trx\_status** `string`

Terminal status of the payout. Possible values: `SUCCESS` or `FAILED`.

**data.transaction\_id** `string`

bluSwap's unique identifier for the transaction (e.g., `"TXN8746234890"`).

**data.trx\_message** `string`

Human-readable status message describing the outcome of the transaction (e.g., `"Transaction completed successfully"`).

**data.order\_id** `string`

Your internal order ID that was submitted when the payout was initiated.

**data.amount** `number`

Amount disbursed in INR (e.g., `1500.75`).

**data.payment\_mode** `string`

Transfer mode used to execute the payout (e.g., `IMPS`, `NEFT`, `RTGS`).

**data.beneficiary\_name** `string`

Name of the beneficiary contact as registered in bluSwap.

**data.name\_at\_bank** `string`

Name as registered at the beneficiary's bank, returned from bank verification.

**data.account\_number** `string`

Beneficiary bank account number to which the funds were sent.

**data.ifsc** `string`

IFSC code of the beneficiary's bank branch (e.g., `"HDFC0001234"`).

**data.utr** `string`

Unique Transaction Reference number confirming the bank transfer. This field is `null` when the transaction has failed.

**data.updated\_at** `string`

Timestamp of the final status update in `YYYY-MM-DD HH:MM:SS` format.

**data.charge** `number`

Transaction fee levied by bluSwap for processing the payout (in INR).

**data.gst** `number`

GST applied on the transaction charge (in INR).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.