Skip to main content
POST
Create DICT refund

Authorizations

Authorization
string
header
required

JWT bearer token issued by the identity provider.

Headers

X-Idempotency
string
required

Required key used to prevent replaying the mutation.

Body

application/json

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.

amount
number
required

Refund amount as an exact decimal number; must be greater than zero

Example:

1500

endToEndId
string
required

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.

Pattern: ^[ED][0-9]{20}[a-zA-Z0-9]{11}$
Example:

"E12345678202607101200D3E4F5A6B7C"

reason
enum<string>
required

BACEN refund reason. FRAUD, OPERATIONAL_FLAW or PIX_AUTOMATICO; the spec's fourth value is retired and is not accepted.

Available options:
FRAUD,
OPERATIONAL_FLAW,
PIX_AUTOMATICO
Example:

"FRAUD"

requestedByISPB
string
required

ISPB (8 numeric digits) of the participant requesting the refund; gated to the calling direct's scope (JRN-151)

Pattern: ^[0-9]{8}$
Example:

"12345678"

refundDetails
string

Short description of why the refund is requested; mandatory when reason is OPERATIONAL_FLAW, optional otherwise (max 2000 characters).

Maximum string length: 2000

Response

Created

Persisted local DICT refund request record, or {operationId, operationStatus} while BACEN's outcome is pending (202).

amount
number
required

Refund amount as an exact decimal number

Example:

1500

createdAt
string
required

Record creation timestamp (RFC 3339, UTC)

Example:

"2026-06-14T12:00:00Z"

endToEndId
string
required

BACEN end-to-end identifier (E2E ID) of the refunded PIX transaction

Example:

"E12345678202607101200D3E4F5A6B7C"

id
string
required

BACEN-assigned refund resource UUID — the public, canonical identity of this record

Example:

"550e8400-e29b-41d4-a716-446655440001"

reason
string
required

BACEN refund reason: FRAUD, OPERATIONAL_FLAW or PIX_AUTOMATICO

Example:

"FRAUD"

reportStatus
string
required

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).

Example:

"SENT"

requestedByISPB
string
required

ISPB (8 numeric digits) of the participant that requested the refund

Example:

"12345678"

status
enum<string>
required

DICT spec refund lifecycle state: OPEN, CLOSED, or CANCELLED. CLOSED alone does not say accept vs reject; see analysisResult.

Available options:
OPEN,
CLOSED,
CANCELLED
Example:

"OPEN"

updatedAt
string
required

Last update timestamp (RFC 3339, UTC)

Example:

"2026-06-14T12:00:00Z"

analysisDetails
string

Free-text analysis details accompanying analysisResult; omitted until close (ours or the counterparty's, via refresh)

analysisResult
enum<string>

closeRefund analysis outcome: TOTALLY_ACCEPTED, PARTIALLY_ACCEPTED, or REJECTED; omitted until close

Available options:
TOTALLY_ACCEPTED,
PARTIALLY_ACCEPTED,
REJECTED
Example:

"TOTALLY_ACCEPTED"

bacen
object

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.

bacenCreationTime
string

When BACEN created this refund request (RFC 3339, UTC); distinct from createdAt

Example:

"2026-06-14T12:00:00Z"

contestedISPB
string

BACEN-assigned contested participant ISPB (ExtendedRefund.ContestedParticipant)

Example:

"87654321"

effectiveRefundedAmount
number

MED 2.0: effective refunded amount recorded on an accepting close (exact decimal, verbatim); omitted until close

Example:

750

fundsRecoveryId
string

BACEN-assigned funds-recovery id this refund is bound to (refund-under-recovery); omitted for a standalone refund

Example:

"550e8400-e29b-41d4-a716-446655440003"

infractionReportId
string

BACEN-assigned infraction this refund was opened for (ExtendedRefund.InfractionReportId); omitted otherwise

Example:

"550e8400-e29b-41d4-a716-446655440004"

monitorAccount
boolean

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

Example:

true

operationId
string

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.

Example:

"01930000-0000-7000-8000-000000000000"

operationStatus
enum<string>

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.

Available options:
RESERVED,
SUBMITTED,
CONFIRMED,
SYNC_PENDING,
UNKNOWN_OUTCOME,
MANUAL_REVIEW,
COMPLETED
Example:

"UNKNOWN_OUTCOME"

originOperationId
string

Durable operation-intent id that produced this snapshot's current state, when known

Example:

"01930000-0000-7000-8000-000000000000"

refundAccount
object

MED 2.0: destination account of a refund-under-recovery; omitted for a standalone refund

refundDetails
string

Short description of why the refund was requested; present when the reason carries one

refundTransactionId
string

BACEN-executed refund transaction id (ExtendedRefund.RefundTransactionId), distinct from endToEndId; empty until a refund transaction exists

Example:

"E99999010202606141430ZYXWVUTSRQP"

rejectionReason
string

BACEN rejection reason accompanying a REJECTED analysisResult; omitted otherwise

Example:

"NO_BALANCE"

requestingISPB
string

BACEN-assigned requesting participant ISPB (ExtendedRefund.RequestingParticipant)

Example:

"12345678"