MED 2.0 — Receiving a Funds Recovery
MED 2.0 introduces the funds recovery, which unifies the infraction report and the refund request of a contested PIX transaction into a single flow. When a funds recovery is received against an account, QI Tech automatically applies a precautionary block on the funds equivalent to the contested transaction and sends you a webhook notification, giving you the opportunity to justify the legitimacy of the transaction before the closing.
The lifecycle of a received funds recovery is:
awaiting_analysis— funds recovery received and balance blocked; awaiting your response, which must be sent within a maximum of 5 days.pending_approval— response sent (justification + evidence file); under analysis by QI Tech.completed— closed by QI Tech, either accepting (agreed) or rejecting (disagreed) the funds recovery.cancelled— cancelled by the originating participant.
All follow-up communication is performed via webhooks.
Webhook of an incoming funds recovery
An incoming funds recovery is a funds recovery opened by another participant, where your account is the target of the contested transaction.
Funds recovery webhooks are sent with webhook_type incoming.internal_infraction_report. To distinguish them from infraction reports, check for the presence of the funds_recovery_key field in the data object.
Webhook: incoming funds recovery
{
"event_datetime": "2026-07-16T16:48:43Z",
"key": "0dedf537-a75e-4945-be1d-5d278c623022",
"data": {
"funds_recovery_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
"funds_recovery_id": "b8d19bd4-51dc-4784-a2ad-52807c6dfc80",
"infraction_report_id": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
"pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
"target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
"target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
"end_to_end_id": "E12345678202607161648s188f18bJty",
"funds_recovery_status": "awaiting_analysis",
"situation_type": "scam",
"report_details": "Transaction reported as fraudulent by the originator.",
"infraction_amount": 150.50,
"contact_email": "contact@participant.com.br",
"contact_phone_number": "+5511999999999",
"credited_participant": "32402502",
"debited_participant": "12345678",
"client_details": null,
"analysis_result": null,
"analysis_details": null,
"blocked_balance_status": "completelly_blocked",
"tracking_graph": null,
"updated_at": "2026-07-16T16:48:43Z",
"created_at": "2026-07-16T16:48:43Z"
},
"status": "awaiting_analysis",
"webhook_type": "incoming.internal_infraction_report"
}
funds_recovery object
| Field | Type | Description | Characters |
|---|---|---|---|
funds_recovery_key * | string | UUID4 identifier of the funds recovery at QI Tech. | 32 |
funds_recovery_id * | string | Identifier of the funds recovery at Bacen. Used in queries and in the response. | 32 |
infraction_report_id * | string | Identifier of the infraction that originated the funds recovery at Bacen. | 32 |
pix_transfer_key * | string | Pix transfer key of the original transaction. | 32 |
target_account_key * | string | Account key of the destination account of the original transaction. | 32 |
target_person_key * | string | Person key of the funds recovery target. | 32 |
end_to_end_id * | string | end_to_end_id of the original transaction. | 32 |
funds_recovery_status * | string | Status of the funds recovery. | funds_recovery_status enumerators |
situation_type * | string | Situation reported by the originator. | situation_type enumerators |
report_details | string | Details sent by the originating participant. | 2000 |
infraction_amount | number | Contested amount. When absent, the full transaction amount is considered. | - |
contact_email | string | Contact e-mail of the originating participant. | 255 |
contact_phone_number | string | Contact phone of the originating participant. | 20 |
credited_participant * | string | Participant that received the transaction. | 8 |
debited_participant * | string | Participant that originated the transaction. | 8 |
client_awnser | string | Justification sent in the response. Present after responding. | 2000 |
analysis_result | string | Analysis result. Decided by QI Tech. | analysis_result enumerators |
analysis_details | string | Justification of the analysis result. | 2000 |
blocked_balance_status * | string | Balance block status of the destination account. | blocked_balance_status enumerators |
tracking_graph | object | Tracking graph of the contested funds movements, when available. | - |
created_at * | string | Creation date and time. | 20 |
updated_at * | string | Update date and time. | 20 |
funds_recovery_status enumerators
| Enumerator | Description |
|---|---|
awaiting_analysis | Funds recovery received and balance blocked, awaiting your response. |
pending_approval | Justification sent, awaiting QI Tech's internal analysis. |
completed | Closed by QI Tech after the analysis. |
cancelled | Cancelled by the originating participant. |
situation_type enumerators
| Enumerator | Description |
|---|---|
scam | Cause of scam or fraud. |
account_takeover | Cause of a transaction not authorized by the source account. |
coercion | Cause of coercion crime. |
fraudulent_access | Cause of fraudulent access to the source account. |
other | Any causes not applicable to the ones listed above. |
analysis_result enumerators
| Enumerator | Description |
|---|---|
agreed | The funds recovery is accepted and the blocked funds are returned. |
disagreed | The funds recovery is rejected and the blocked funds are released. |
blocked_balance_status enumerators
| Enumerator | Description |
|---|---|
completelly_blocked | Funds equivalent to the contested amount completely blocked. |
partially_blocked | Funds equivalent to the contested amount partially blocked. Monitoring balance. |
no_balance | Account without balance. Monitoring pending balance. |
account_closed | Account closed. No funds blocked. |