Skip to main content
PUT
Correct an open funds recovery

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.

Path Parameters

id
string<uuid>
required

BACEN-assigned funds-recovery resource UUID to correct

Body

application/json

updateFundsRecovery body: corrected situation type and report details. The regulator contact is re-read from the participant registry.

situationType
enum<string>
required

Corrected MED 2.0 situation classification: SCAM, ACCOUNT_TAKEOVER, COERCION, FRAUDULENT_ACCESS, OTHER, or UNKNOWN

Available options:
SCAM,
ACCOUNT_TAKEOVER,
COERCION,
FRAUDULENT_ACCESS,
OTHER,
UNKNOWN
Example:

"SCAM"

reportDetails
string

Corrected details for the counterparty PSP; mandatory when situationType is OTHER (max 2000 characters).

Maximum string length: 2000

Response

OK

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

createdAt
string
required

Record creation timestamp (RFC 3339, UTC)

Example:

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

id
string
required

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

Example:

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

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"

reporterParticipant
string
required

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.

Example:

"12345678"

rootTransactionId
string
required

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

Example:

"E12345678202607101200B3C4D5E6F7A"

situationType
string
required

MED 2.0 situation classification

Example:

"SCAM"

status
string
required

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.

Example:

"CREATED"

updatedAt
string
required

Last update timestamp (RFC 3339, UTC)

Example:

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

analysisAcceptedAt
string

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.

Example:

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

bacen
object

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.

bacenCreationTime
string

When BACEN created this funds recovery (RFC 3339, UTC); distinct from createdAt

Example:

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

bacenReporterParticipant
string

BACEN-assigned reporter participant ISPB (ExtendedFundsRecovery.ReporterParticipant); empty until BACEN answers

Example:

"12345678"

completion
enum<string>

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.

Available options:
REFUNDED,
REFUND_DEADLINE_LAPSED,
UNKNOWN
Example:

"REFUNDED"

contactInformation
object

BACEN-echoed regulator-facing contact

flowType
string

ExtendedFundsRecovery.FlowType, verbatim (BACEN's spec defines only AUTOMATED); not actionable

Example:

"AUTOMATED"

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"

refundDeadlineAt
string

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.

Example:

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

reportDetails
string

Details for the counterparty PSP's analysis; present when the situation type carries one