Skip to main content
POST
Resolve Transfer Reconciliation

Authorizations

Authorization
string
header
required

JWT Bearer token authentication. The tenantId is derived from the bearer token or authenticated request context and is not supplied through X-Organization-Id.

Headers

X-Organization-Id
string<uuid>
required

Midaz organization scope for the request, used for downstream CRM, Fees, and Midaz calls. Required on org-scoped transfer routes in every deployment mode; a missing or non-UUID value returns 400. This is not the tenant identifier — tenantId is derived from the bearer JWT or authenticated context, never from this header. Background workers (TED IN poller, reconciliation) have no request header and, in single-tenant mode, fall back to the deployment's ORGANIZATION_ID env.

X-Idempotency
string
required

Required idempotency key for safe retries. Use a UUID v4 or a unique business identifier, made of letters, digits, ., _, and -. If the same key is sent again and the original request was already processed, the cached response is returned.

See Retries and idempotency for details.

Maximum string length: 255
Pattern: ^[a-zA-Z0-9._-]+$

Path Parameters

transferId
string<uuid>
required

The unique identifier of the transfer.

Body

application/json

Operator decision, justification, and evidence reference (required for SETTLED_BY_HAND).

action
enum<string>
required
Available options:
SETTLE,
REVERT,
RE_POST,
SETTLED_BY_HAND
Example:

"SETTLE"

reason
string
required
Required string length: 10 - 500
Example:

"JD cabine ticket 4471 confirms settlement at 10:42"

evidenceReference
string

Required for SETTLED_BY_HAND.

Maximum string length: 200
Example:

"STR0008 ctrl 202609061042"

clearingControlNumber
string

The STR control number read from the clearing house. Required only on the SETTLE of a voluntary return of a TED IN parked under return_settlement_unknown or return_settlement_unknown_exhausted.

Maximum string length: 20
Pattern: ^[A-Za-z0-9]{1,20}$
Example:

"STR20261019000000001"

Response

Indicates that the transfer was resolved. On a voluntary return of a TED IN, reconciliationStatus can also be AWAITING, when the row went back to the reconciliation worker, or MANUAL_REVIEW, when the row stays parked with the failure recorded on it. A ledger reference that names nothing is omitted instead of sent as the all-zeroes UUID: compensationTransactionId and previousCompensationTransactionId belong to the inbound actions, and midazTransactionId is absent on an inbound close of a row whose credit transaction was never proven.

transferId
string<uuid>
Example:

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

status
string
Example:

"COMPLETED"

reconciliationStatus
string

The reconciliation status after the resolution. On a voluntary return of a TED IN, it can also be AWAITING or MANUAL_REVIEW.

Example:

"RESOLVED"

resolvedAt
string<date-time>
Example:

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

midazTransactionId
string<uuid>
Example:

"11111111-2222-3333-4444-555555555555"

compensationTransactionId
string<uuid>
Example:

"66666666-7777-4888-9999-aaaaaaaaaaaa"

previousCompensationTransactionId
string<uuid>
Example:

"33333333-4444-4555-8666-777777777777"