Create DICT funds recovery
Creates a local DICT MED 2.0 funds-recovery record and reports it to BACEN (createFundsRecovery). The root transaction is either the contested payment’s EndToEndID (pacs.008) or the contested return operation’s RtrId (pacs.004), which BACEN reads as a contestação de transação de devolução. BACEN dedups a recovery per RootTransactionId.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Required key used to prevent replaying the mutation.
Body
DICT MED 2.0 funds-recovery (createFundsRecovery) reported to BACEN first; only a CONFIRMED report is persisted locally — a rejection or ambiguous outcome creates no local row. Tracked by a durable operation intent (operationId) while pending.
ISPB (8 numeric digits) of the participant reporting the funds recovery; gated to the calling direct's scope
^[0-9]{8}$"12345678"
Identifier of the transaction being contested: the EndToEndID of the originating fraudulent payment (pacs.008, E-prefixed), or the RtrId of the return operation being contested (pacs.004, D-prefixed — DICT 8.4 §20.1.9, contestação de transação de devolução, where the contested return becomes the root transaction). Shaped as BACEN's InstrId2Type, message-type letter upper case. BACEN dedups a recovery per RootTransactionId
^[ED][0-9]{20}[a-zA-Z0-9]{11}$"E12345678202607101200B3C4D5E6F7A"
MED 2.0 situation classification: SCAM, ACCOUNT_TAKEOVER, COERCION, FRAUDULENT_ACCESS, OTHER, or UNKNOWN
SCAM, ACCOUNT_TAKEOVER, COERCION, FRAUDULENT_ACCESS, OTHER, UNKNOWN "SCAM"
Details helping the counterparty PSP analyse the case; mandatory when situationType is OTHER, optional otherwise (max 2000 characters). The regulator contact travels with it, read from the participant registry.
2000Response
Created
Persisted local DICT funds-recovery record, or {operationId, operationStatus} while BACEN's outcome is pending (202).
Record creation timestamp (RFC 3339, UTC)
"2026-06-14T12:00:00Z"
BACEN-assigned funds-recovery resource UUID — the public, canonical identity of this record
"550e8400-e29b-41d4-a716-446655440003"
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 of the participant that reported this funds recovery — our own configured value, the same one createFundsRecovery sends as Participant. This is a LOCAL value, distinct from bacenReporterParticipant below.
"12345678"
Identifier of the contested transaction: the originating fraudulent payment's EndToEndID (pacs.008, E-prefixed) or the contested return operation's RtrId (pacs.004, D-prefixed — a contestação de transação de devolução), projected verbatim
"E12345678202607101200B3C4D5E6F7A"
MED 2.0 situation classification
"SCAM"
Local funds-recovery lifecycle state: CREATED, TRACKED, AWAITING_ANALYSIS, ANALYSED, REFUNDING, COMPLETED, or CANCELLED. This is a LOCAL view: TRACKED is representable but this rail has no producer for it, so it never appears in practice.
"CREATED"
Last update timestamp (RFC 3339, UTC)
"2026-06-14T12:00:00Z"
When the analysis step was observed to complete — the instant the 72-hour refund window opens (RFC 3339, UTC). Absent until observed. When no BACEN snapshot stated the transition, this is the DICT's notification-creation instant instead: an upper bound on it, so the window shown here never closes earlier than the one the DICT counts.
"2026-06-14T12:00:00Z"
BACEN's own operational envelope for its most recent interaction on this funds recovery, including its LastModified version; omitted when no BACEN interaction has ever landed on it.
When BACEN created this funds recovery (RFC 3339, UTC); distinct from createdAt
"2026-06-14T12:00:00Z"
BACEN-assigned reporter participant ISPB (ExtendedFundsRecovery.ReporterParticipant); empty until BACEN answers
"12345678"
Why a COMPLETED recovery completed: REFUNDED (the refund step was observed to start), REFUND_DEADLINE_LAPSED (no refund step was observed and the DICT concluded it at or after the 72 hours), or UNKNOWN (nothing observed here explains it — the analysis step was never seen, or the DICT concluded it before the deadline, which a refund impossibility, an all-rejected notification set, an unobserved refund and a lapse concluded just inside a window anchored on the DICT's notification-creation instant all explain equally). Absent while the recovery is not COMPLETED.
REFUNDED, REFUND_DEADLINE_LAPSED, UNKNOWN "REFUNDED"
BACEN-echoed regulator-facing contact
ExtendedFundsRecovery.FlowType, verbatim (BACEN's spec defines only AUTOMATED); not actionable
"AUTOMATED"
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"
When the 72-hour window to start the refund step closes (RFC 3339, UTC); the DICT concludes the recovery itself after it. Absent until the analysis step has been observed.
"2026-06-17T12:00:00Z"
Details for the counterparty PSP's analysis; present when the situation type carries one

