Skip to main content

Receiving Refund Requests

Unlike infraction reports, refund requests, as long as they comply with certain guidelines, should, whenever possible, be closed with acceptance, unless the account is closed or has no balance. That said, the client will only receive webhooks for refund request status updates, as this is not something contestable, since the reasons for opening a refund request through MED are either due to an already accepted infraction report, or another participant opening one due to an operational failure.

Webhook for an incoming refund request

An incoming refund request is a refund opened by another bank, where the account holder is the target of the contested transaction.

Webhook request body

Webhook: incoming refund request
{
"event_datetime": "2024-07-16T16:48:43Z",
"key": "0dedf537-a75e-4945-be1d-5d278c623022",
"data": {
"refund_request_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
"infraction_report_key": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
"target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
"refund_request_type": "fraud",
"blocked_balance_status": "completelly_blocked",
"pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
"end_to_end_id": "E12345678202404302308s188f18bJty",
"requesting_participant": "18236120",
"contested_participant": "32402502",
"refund_request_details": null,
"refund_payment_event": null,
"requested_amount": 40,
"refunded_amount": 0,
"refund_request_status": "open",
"analysis_result": null,
"analysis_details": null,
"reject_reason": null,
"updated_at": "2024-07-16T19:48:43Z",
"created_at": "2024-07-16T19:48:43Z"
},
"status": "open",
"webhook_type": "incoming.internal_refund_request"
}

FieldTypeDescriptionCharacters
event_datetime *stringDate and time of transaction creation.20
key *stringUnique identification key for the event sending.32
data *stringIncoming refund request data object.Object incoming_refund_request
status *stringRefund status.Enumerators refund_request_status

Enumerators refund_request_status

EnumeratorDescription
openRequest received and pending analysis.
closedAnalysis completed and request closed.
cancelledRequest cancelled by the originator.

Object incoming_refund_request

FieldTypeDescriptionCharacters
refund_request_key *stringUUID4 identifier of the refund at Bacen.32
infraction_report_keystringUUID4 identifier of the related infraction at Bacen.32
target_account_key *stringAccount key of the original transaction's target account.32
refund_request_type *stringType of refund request.Enumerators refund_request_type
pix_transfer_key *stringPix transfer key of the original transaction.32
end_to_end_id *stringend_to_end_id of the original transaction.32
requesting_participant *stringParticipant that originated the transaction.8
contested_participant *stringParticipant that received the transaction.8
refund_request_detailsstringRefund details sent by the other participant.2000
refund_payment_eventstringRefund execution event.Object refund_payment_event
requested_amount *floatAmount requested in the refund.2000
refunded_amount *floatTotal refunded amount.2000
refund_request_status *stringRefund status.Enumerators refund_request_status
analysis_resultstringAnalysis result. Decided by QI Tech.Enumerators refund_request_analysis_result
analysis_detailsstringAnalysis result justification.200
reject_reasonstringRequest rejection reason.Enumerators refund_request_reject_reason
blocked_balance_status *stringTarget account balance blocking status.Enumerators blocked_balance_status
created_at *stringDate and time of transaction modification.20
updated_at *stringDate and time of transaction creation.20

Object refund_payment_event

FieldTypeDescriptionCharacters
refund_end_to_end_idstringend_to_end_id of the refund transaction.32
refund_transfer_keystringPix transfer key of the refund transaction.32
refund_amountstringAmount of the refund transaction.
created_atstringDate and time of transaction creation.20

Enumerators refund_request_analysis_result

EnumeratorDescription
totally_acceptedRefund executed for all requested amounts.
partially_acceptedPartial refund due to insufficient balance. Monitoring account for subsequent refunds.
rejectedRefund rejected and no resources were returned. If reason is insufficient balance, account will be monitored.

Enumerators refund_request_type

EnumeratorDescription
fraudOpened after accepting an infraction report.
operational_flawOpened without an infraction report, used to correct operational failures of participants.
refund_cancelledCorrection of a refund executed erroneously.

Enumerators blocked_balance_status

EnumeratorDescription
no_balanceCustomer account with no balance. Monitoring pending balance.
completelly_blockedResources equivalent to the transaction completely blocked.
partially_blockedResources equivalent to the transaction partially blocked. Monitoring balance.
settledInfraction accepted, and refund request payment executed.
partially_settledInfraction accepted, and refund request payment partially executed.
releasedResources released, either by infraction cancellation or disagreement closure.

Enumerators refund_request_reject_reason

EnumeratorDescription
no_balanceCustomer account with no balance. Monitoring pending balance.
account_closureCustomer relationship terminated. Impossible to execute refund.
otherOther reason, not applicable to those listed above.
info

Balance monitoring for an account with partial refund has a limit of 90 days after the original transaction occurs.

Webhook for an outgoing refund request

An outgoing refund request is a refund request opened by QI Tech, targeting another participant.

Webhook request body

Webhook: outgoing refund request
{
"event_datetime": "2024-07-22T10:31:09Z",
"key": "15d91f4b-a55c-41a6-9c46-2704253a1cf7",
"data": {
"refund_request_key": "5f98671e-9ec0-4ed7-95a9-061861243efc",
"pix_transfer_key": "d04e0858-ea91-4dab-8089-a27d6cc68235",
"source_account_key": "134ad635-ce80-4c8c-bca0-9dd3e8251317",
"end_to_end_id": "E32402502202404302308s188f18bJty",
"requested_amount": 78.5,
"refund_request_status": "open",
"infraction_report_key": "3b727ade-a736-473e-91a6-07b841253f55",
"refund_request_type": "fraud",
"refund_request_details": "Infraction aceita, favor realizar devolução de recursos.",
"requesting_participant": "32402502",
"contested_participant": "12345678",
"analysis_result": null,
"analysis_details": null,
"reject_reason": null,
"refund_payment_event": null,
"updated_at": "2024-07-16T19:48:43Z",
"created_at": "2024-07-16T19:48:43Z",
},
"status": "open",
"webhook_type": "outgoing.internal_refund_request"
}
FieldTypeDescriptionCharacters
event_datetime *stringDate and time of transaction creation.20
key *enumUnique identification key for the event sending.32
data *stringOutgoing infraction report data object.Object outgoing_refund_request
status *stringRefund status.Enumerators refund_request_status

Object outgoing_refund_request

FieldTypeDescriptionCharacters
refund_request_key *stringUUID4 identifier of the refund at Bacen.32
infraction_report_keystringUUID4 identifier of the related infraction at Bacen.32
source_account_key *stringAccount key of the transaction's source account.32
refund_request_type *stringType of refund request.Enumerators refund_request_type
pix_transfer_key *stringPix transfer key of the original transaction.32
end_to_end_id *stringend_to_end_id of the original transaction.32
requesting_participant *stringParticipant that originated the transaction.8
contested_participant *stringParticipant that received the transaction.8
refund_request_detailsstringRefund details sent by the other participant.2000
refund_payment_eventstringRefund execution event.Object refund_payment_event
requested_amount *floatAmount requested in the refund.2000
refund_request_status *stringRefund status.Enumerators refund_request_status
analysis_resultstringAnalysis result. Decided by QI Tech.Enumerators refund_request_analysis_result
analysis_detailsstringAnalysis result justification.200
reject_reasonstringRequest rejection reason.Enumerators refund_request_reject_reason
created_at *stringDate and time of transaction modification.20
updated_at *stringDate and time of transaction creation.20