---
page_source: https://juspay.io/in/docs/upi-merchant-stack/docs/transactions/refund-callback
page_title: Refund Callback
---


# Refund Callback



This callback is given when the merchant initiates a refund and when the same gets success/failure.

> **Note**
> Merchant can get multiple callbacks for the same event type till the refund status reaches a terminal state. Terminal states for a refund are SUCCESS and FAILURE.




| Parameter | Description | Type |
|---|---|---|
| customResponse	 | Stringified JSON parameter for future use. | Optional |
| refundGatewayReferenceId	 | RRN for the Refund | Optional |
| gatewayResponseCode	 | Response code returned by gateway for the refund | Mandatory |
| gatewayResponseMessage	 | Response message for code returned by gateway for the refund | Mandatory |
| gatewayResponseStatus | Response Status Returned by Gateway for the refund | Mandatory |
| gatewayTransactionId	 | UPI request id returned by gateway for the original transaction | Mandatory |
| gatewayRefundTransactionId | upiRequestId returned by gateway for the refund | Optional |
| merchantChannelId	 | Unique id for the merchant channel as passed in request headers | Mandatory |
| merchantId | Unique id for the merchant as passed in request headers | Mandatory |
| merchantRefundReason | Reason for the refund | Mandatory |
| merchantRefundVpa | Merchant refund vpa that is to be used for online refund | Optional |
| originalMerchantRequestId | Merchant request id of the original transaction | Mandatory |
| refundRequestId | Merchant generated unique id for the refund. | Optional |
| refundType | ONLINE/OFFLINE/UDIR | Mandatory |
| refundTimestamp | Timestamp of the refund | Mandatory |
| refundAmount	 | The amount to be refunded as passed in the request body. | Mandatory |
| riskScore | RiskScore shared by NPCI or Bank | Optional |
| subMerchantId | Unique id for subMerchant. Only if present as a subMerchant. | Optional |
| subMerchantChannelId | Unique id for the channel via which request is made. Only if present as a subMerchant. | Optional |
| transactionAmount	 | The total amount for which original transaction was performed | Mandatory |
| type	 | Event type of the callback - CUSTOMER_ONLINE_REFUND / CUSTOMER_OFFLINE_REFUND/MERCHANT_DEBITED_VIA_REFUND | Mandatory |
| udfParameters 	 | Udf parameters as passed in the request | Optional |
| remarks | remarks | Mandatory |
| adjCode | Reason Code for complaint sent by NPCI. | Optional(For UDIR) |
| adjFlag | Reason flag for complaint sent by NPCI. | Optional(For UDIR) |
| reqAdjCode | Complaint raised for Reason Code under AdjFlag | Optional(For UDIR) |
| reqAdjFlag | Flag raised for complaint | Optional(For UDIR) |
| crn | Complaint reference number returned by NPCI. | Optional(For UDIR) |


## Sample Code Snippets:
### Top Header:

#### Request Code Snippet:

```request
{"success":false,"message":"No Data found for the given path"}
```

