Create DICT refund
Persists a DICT refund request locally and submits the corresponding BACEN refund synchronously-after-persist, tracked by report_status (PENDING/SENT/FAILED) + request_id.
Autorizaciones
JWT bearer token issued by the identity provider.
Encabezados
Required key used to prevent replaying the mutation.
Cuerpo
DICT refund request reported to BACEN first; only a CONFIRMED report is persisted locally — a rejection or ambiguous outcome creates no local row. Tracked by report_status=SENT + a durable operation intent (operationId) while pending.
Refund amount as an exact decimal number; must be greater than zero
1500
Identifier of the transaction to refund: the EndToEndID of the payment (pacs.008, E-prefixed), or the RtrId of the return operation being contested (pacs.004, D-prefixed — DICT 8.4 §20.1.9). BACEN's field overloads both message types; the prefix discriminates, and the shape is BACEN's InstrId2Type. The message-type letter must be upper case; the 11-character tail is case-insensitive. The date and minute components are additionally parsed as a real instant by the service.
^[ED][0-9]{20}[a-zA-Z0-9]{11}$"E12345678202607101200D3E4F5A6B7C"
BACEN refund reason. FRAUD, OPERATIONAL_FLAW or PIX_AUTOMATICO; the spec's fourth value is retired and is not accepted.
FRAUD, OPERATIONAL_FLAW, PIX_AUTOMATICO "FRAUD"
ISPB (8 numeric digits) of the participant requesting the refund; gated to the calling direct's scope (JRN-151)
^[0-9]{8}$"12345678"
Short description of why the refund is requested; mandatory when reason is OPERATIONAL_FLAW, optional otherwise (max 2000 characters).
2000Respuesta
Created
Persisted local DICT refund request record, or {operationId, operationStatus} while BACEN's outcome is pending (202).
Refund amount as an exact decimal number
1500
Record creation timestamp (RFC 3339, UTC)
"2026-06-14T12:00:00Z"
BACEN end-to-end identifier (E2E ID) of the refunded PIX transaction
"E12345678202607101200D3E4F5A6B7C"
BACEN-assigned refund resource UUID — the public, canonical identity of this record
"550e8400-e29b-41d4-a716-446655440001"
BACEN refund reason: FRAUD, OPERATIONAL_FLAW or PIX_AUTOMATICO
"FRAUD"
BACEN report delivery state. Always SENT at rest (a resource row is persisted only once BACEN has confirmed it; a rejected or ambiguous attempt creates no row).
"SENT"
ISPB (8 numeric digits) of the participant that requested the refund
"12345678"
DICT spec refund lifecycle state: OPEN, CLOSED, or CANCELLED. CLOSED alone does not say accept vs reject; see analysisResult.
OPEN, CLOSED, CANCELLED "OPEN"
Last update timestamp (RFC 3339, UTC)
"2026-06-14T12:00:00Z"
Free-text analysis details accompanying analysisResult; omitted until close (ours or the counterparty's, via refresh)
closeRefund analysis outcome: TOTALLY_ACCEPTED, PARTIALLY_ACCEPTED, or REJECTED; omitted until close
TOTALLY_ACCEPTED, PARTIALLY_ACCEPTED, REJECTED "TOTALLY_ACCEPTED"
BACEN's own operational envelope for its most recent interaction on this refund, including its LastModified version; omitted when no BACEN interaction has ever landed on it.
When BACEN created this refund request (RFC 3339, UTC); distinct from createdAt
"2026-06-14T12:00:00Z"
BACEN-assigned contested participant ISPB (ExtendedRefund.ContestedParticipant)
"87654321"
MED 2.0: effective refunded amount recorded on an accepting close (exact decimal, verbatim); omitted until close
750
BACEN-assigned funds-recovery id this refund is bound to (refund-under-recovery); omitted for a standalone refund
"550e8400-e29b-41d4-a716-446655440003"
BACEN-assigned infraction this refund was opened for (ExtendedRefund.InfractionReportId); omitted otherwise
"550e8400-e29b-41d4-a716-446655440004"
MED 2.0: whether the destination account is monitored (ExtendedRefund.MonitorAccount); omitted when BACEN has never echoed a value, explicit true/false once it has
true
Durable MED operation-intent id: the operation that produced this resource's current state. Present on both a synchronous 200/201 and a pending 202.
"01930000-0000-7000-8000-000000000000"
Durable operation-intent status. Always COMPLETED on a synchronous 200/201; on a pending 202 it is never REJECTED or LOCAL_FAILURE — both are BACEN-final/local-final outcomes mapped to their own HTTP status instead of a 202.
RESERVED, SUBMITTED, CONFIRMED, SYNC_PENDING, UNKNOWN_OUTCOME, MANUAL_REVIEW, COMPLETED "UNKNOWN_OUTCOME"
Durable operation-intent id that produced this snapshot's current state, when known
"01930000-0000-7000-8000-000000000000"
MED 2.0: destination account of a refund-under-recovery; omitted for a standalone refund
Short description of why the refund was requested; present when the reason carries one
BACEN-executed refund transaction id (ExtendedRefund.RefundTransactionId), distinct from endToEndId; empty until a refund transaction exists
"E99999010202606141430ZYXWVUTSRQP"
BACEN rejection reason accompanying a REJECTED analysisResult; omitted otherwise
"NO_BALANCE"
BACEN-assigned requesting participant ISPB (ExtendedRefund.RequestingParticipant)
"12345678"

