Skip to main content

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.

Attention

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.

IMPORTANT

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

ENDPOINT
/pix/refund_request
METHOD
POST
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

FieldTypeDescriptionCharacters
pix_transfer_key *stringUnique identifier of the PIX transaction.36
request_control_key *uuidv4UUID4 for querying about the made request.36
amountfloatRefund amount. If not provided, the original transaction amount will be used.19
refund_request_detailsstringDetails about the refund request to be createdLess or equal 2000
refund_request_type *enumCan be (fraud/operational_flaw)Enumerators refund_request_type

Enumerators refund_request_type

FieldTypeDescription
fraudenumRefund request due to fraud
operational_flawenumRefund request due to operational error

Response

STATUS 
200

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"
}
Information

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

FieldTypeDescriptionCharacters
pix_transfer_key*stringUnique identifier of the PIX transaction.36
refund_request_key*stringUnique identifier of the refund request.36
infraction_report_key*stringUnique identifier of the infraction related to the refund. Only when the type is FRAUD36
refund_request_typeenumType of refund request.Enumerators refund_request_type
requested_amount*floatRefund amount-
refund_request_status*enumStatus.Enumerators refund_request_status
contested_participant*stringISPB of the Credited Participant (Contested).8
requesting_participant*stringISPB of the Debited Participant (Requesting, who is requesting the refund).8
refund_request_details*stringDetails about the refund request.-
analysis_result*enumResult of the refund closure analysis.Enumerators analysis_result
analysis_details*stringDetails of the refund closure analysis.-
reject_reason*stringReason for rejecting the refund, if it is closed with REJECTED.Enumerators reject_reason
refund_transfer_key*stringpix_transfer_key of the refund transaction, if it is closed with acceptance.-
refunded_amount*floatAmount refunded in the refund transaction.-
refund_request_direction*stringDirection of the refund request.Enumerators refund_request_direction
created_at *stringRefund Request creation date24

Enumerators refund_request_status

FieldDescription
openRefund Request was created and is open at BACEN.
cancelledRefund Request is cancelled at BACEN
closedRefund Request is closed at BACEN

Enumerators refund_request_type

FieldDescription
fraudRefund Request originating from fraud.
operational_flawRefund Request originating from an internal error.

Enumerators analysis_result

FieldDescription
totally_acceptedRefund Request was fully accepted.
partially_acceptedRefund Request was partially accepted.
rejectedRefund Request was rejected.

Enumerators reject_reason

FieldDescription
no_balanceAccount does not have sufficient balance for the refund.
account_closureAccount is closed, so the refund cannot be processed
otherOther reason.

Enumerators refund_request_direction

FieldDescription
outgoingParticipant is the originator of the refund request.
incomingParticipant is the target of the refund request.