Cancel a Refund Request
The BeneficiaryVASP calls this endpoint when it no longer intends to proceed with a refund. GTR marks the refund as cancelled and sends REFUND_DECISION (callbackType: 22) with decision: CANCEL to the OriginatorVASP.
Required implementation role: BeneficiaryVASP
- Your role: BeneficiaryVASP
- Counterparty: OriginatorVASP
- Endpoint:
POST /api/verify/v3/refund/cancel
curl --location --request POST '/api/verify/v3/refund/cancel' \
--cert-type P12 --cert ./certificate.p12:'[CERTIFICATE_PASSWORD]' \
--header 'Authorization: Bearer [LOGIN_TOKEN]' \
--header 'Content-Type: application/json' \
--data-raw '{
"refundBasicInfo": {"requestId": "beneficiary-exchange-550e8400-e29b-41d4-a716-446655440000"},
"refundCancelReason": {
"cancelReasonType": "SYSTEM_ERROR",
"cancelReason": "The refund transfer could not be created"
}
}'
| Field | Required | Description |
|---|---|---|
refundBasicInfo.requestId | Yes | Existing refund request ID, maximum 128 characters. |
refundCancelReason.cancelReasonType | Yes | NOT_SUPPORT or SYSTEM_ERROR for a VASP-initiated cancellation, maximum 64 characters. Timeout values such as DECISION_TIMEOUT and TX_ID_NOTIFY_TIMEOUT are system-generated. |
refundCancelReason.cancelReason | Yes | Human-readable cancellation reason, maximum 1,024 characters. |
Only the recorded BeneficiaryVASP may cancel the request. A completed, rejected, or already cancelled refund is not editable.
{
"verifyStatus": 100000,
"verifyMessage": "this refund record has been cancelled",
"data": null
}
What happens next
After the BeneficiaryVASP cancels the refund, the OriginatorVASP receives the cancellation through the Refund Decision or Cancellation callback.