Open Refund Request
The Refund Request is another functionality present in the MED, defined by BACEN. The main objective is to facilitate the refund of a PIX transaction made. The Refund Request can be generated either by an operational error or by an infraction. In the latter case, there is an Infraction Report for a PIX transaction that is already closed and accepted.
To understand the Refund Request flow, it is necessary to know which ENDPOINTS the Indirect Participant who created the refund can use. When the Indirect Participant creates a Refund Request, they can (if necessary) cancel the request if it was generated improperly. When the Indirect Participant receives a Refund Request, they must respond by informing the result of the request analysis. Both cited flows will be described in the following sections. It is noted that if the Indirect Participant opens the request, they are contesting another Participant. In the opposite flow, the Indirect Participant is the contested.
The Central Bank of Brazil requires that, within a period of 1 day from the receipt of the Refund Request by the Indirect Participant, the Refund must be closed. If there is a delay on the part of the Indirect Participant, QI Tech will close the Refund Request with the status of totally_accepted to ensure the institution is not penalized by the Central Bank of Brazil.
Request
Request Body
{
"pix_transfer_key": "a39mn71j-1dc7-4df0-8472-233624706e08",
"request_control_key":"df3ae07e-1dc7-4df0-8472-233624706e08",
"amount": 200.00,
"refund_request_details": "transação fraudada",
"refund_request_type": "fraud"
}
Body Params
Field | Type | Description | Characters |
---|---|---|---|
pix_transfer_key * | string | Unique identifier of the PIX transaction. | 36 |
request_control_key * | uuidv4 | UUID4 for querying about the made request. | 36 |
amount | float | Refund amount. If not provided, the original transaction amount will be used. | 19 |
refund_request_details | string | Details about the refund request to be created | Less or equal 2000 |
refund_request_type * | enum | Can be (fraud/operational_flaw) | Enumerators refund_request_type |
Enumerators refund_request_type
Field | Type | Description |
---|---|---|
fraud | enum | Refund request due to fraud |
operational_flaw | enum | Refund request due to operational error |
Response
Response Body
{
"refund_request_key": "47633091-7d44-4d10-9d00-1f937104e537",
"pix_transfer_key": "2bcbfd65-8660-4cb0-8ae4-4c4b327b32be",
"end_to_end_id": "E73856642202407011350E8cnA3Ae7r3",
"requested_amount": 200.00,
"refund_request_status": "open",
"refund_request_type": "operational_flaw",
"infraction_report_key": null,
"refund_request_details": "Foi identificada uma fraude na transação.",
"requesting_participant": "73856642",
"contested_participant": "99999999",
"analysis_result": null,
"analysis_details": null,
"reject_reason": null,
"refund_transfer_key": null,
"refunded_amount": 0.00,
"refund_request_direction": "outgoing",
"created_at": "2024-07-01T13:50:30Z"
}
If the "refund_request_type" field is "fraud", QI Tech will provide, in the response, the infraction_report_key that has already been closed and accepted.
Body Params
Field | Type | Description | Characters |
---|---|---|---|
pix_transfer_key * | string | Unique identifier of the PIX transaction. | 36 |
refund_request_key * | string | Unique identifier of the refund request. | 36 |
infraction_report_key * | string | Unique identifier of the infraction related to the refund. Only when the type is FRAUD | 36 |
refund_request_type | enum | Type of refund request. | Enumerators refund_request_type |
requested_amount * | float | Refund amount | - |
refund_request_status * | enum | Status. | Enumerators refund_request_status |
contested_participant * | string | ISPB of the Credited Participant (Contested). | 8 |
requesting_participant * | string | ISPB of the Debited Participant (Requesting, who is requesting the refund). | 8 |
refund_request_details * | string | Details about the refund request. | - |
analysis_result * | enum | Result of the refund closure analysis. | Enumerators analysis_result |
analysis_details * | string | Details of the refund closure analysis. | - |
reject_reason * | string | Reason for rejecting the refund, if it is closed with REJECTED. | Enumerators reject_reason |
refund_transfer_key * | string | pix_transfer_key of the refund transaction, if it is closed with acceptance. | - |
refunded_amount * | float | Amount refunded in the refund transaction. | - |
refund_request_direction * | string | Direction of the refund request. | Enumerators refund_request_direction |
created_at * | string | Refund Request creation date | 24 |
Enumerators refund_request_status
Field | Description |
---|---|
open | Refund Request was created and is open at BACEN. |
cancelled | Refund Request is cancelled at BACEN |
closed | Refund Request is closed at BACEN |
Enumerators refund_request_type
Field | Description |
---|---|
fraud | Refund Request originating from fraud. |
operational_flaw | Refund Request originating from an internal error. |
Enumerators analysis_result
Field | Description |
---|---|
totally_accepted | Refund Request was fully accepted. |
partially_accepted | Refund Request was partially accepted. |
rejected | Refund Request was rejected. |
Enumerators reject_reason
Field | Description |
---|---|
no_balance | Account does not have sufficient balance for the refund. |
account_closure | Account is closed, so the refund cannot be processed |
other | Other reason. |
Enumerators refund_request_direction
Field | Description |
---|---|
outgoing | Participant is the originator of the refund request. |
incoming | Participant is the target of the refund request. |