Callback - Refund Request Query
After a BeneficiaryVASP submits a refund request, GTR attempts to deliver this callback to the OriginatorVASP with callbackType: 21.
Required implementation role: OriginatorVASP
- Your role: OriginatorVASP
- Sender of the refund request: BeneficiaryVASP
- Your responsibility: Record and review the request, then submit an
ACCEPTorREJECTdecision. - Callback support: Optional. If your callback server does not support this type, GTR still creates the refund request.
{
"requestId": "beneficiary-exchange-550e8400-e29b-41d4-a716-446655440000",
"invokeVaspCode": "originator-vasp-code",
"originatorVasp": "originator-vasp-code",
"beneficiaryVasp": "beneficiary-vasp-code",
"callbackType": 21,
"callbackData": {
"refundBasicInfo": {"requestId": "beneficiary-exchange-550e8400-e29b-41d4-a716-446655440000"},
"blockchainTransaction": {
"network": "ETH", "ticker": "USDT", "txId": "0x4ab1...91ef"
},
"refundDeclaredValue": {"amount": "125.50"},
"refundReason": {
"reasonType": "ORIGINATOR_TRAVEL_RULE_INCOMPLETE",
"reason": "Originator information could not be verified"
},
"beneficiaryAddress": {"address": "0x8ba1f109551bD432803012645Ac136ddd64DBA72", "tag": ""}
}
}
The invokeVaspCode field identifies the callback recipient. callbackData contains the original transaction, requested amount, reason, and receiving address. Field meanings are the same as in Submit a Refund Request.
After your system accepts the request, return a standard HTTP success response, for example:
{"verifyStatus": 100000, "verifyMessage": "Refund request received", "data": null}
The callback response acknowledges delivery; it is not the refund decision. After reviewing the request, the OriginatorVASP must call Accept or Reject a Refund to submit its decision.