Create DICT refund
Persists a DICT refund request locally and submits the corresponding BACEN refund synchronously-after-persist, tracked by request_id; report_status is SENT at rest.
Autorizações
JWT bearer token issued by the identity provider.
Cabeçalhos
Required key used to prevent replaying the mutation.
Corpo
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-9A-Z]{8}[0-9]{12}[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 digits or uppercase letters) of the participant requesting the refund; gated to the calling direct's scope (JRN-151)
^[0-9A-Z]{8}$"12345678"
Short description of why the refund is requested; mandatory when reason is OPERATIONAL_FLAW, optional otherwise (max 2000 characters).
2000Resposta
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 digits or uppercase letters) 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 with fractional seconds, UTC): two changes in the same second carry distinct, ordered values
"2026-06-14T12:00:00.250Z"
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"

