Create bank transfer operation
Prerequisite: the rail must be ready before a submit — an active certificate (see rotateCertificate, activateCertificate), a READY readiness report (see getReadiness), and a passing connectivity test (see createConnectivityTest). Accepts a bank transfer operation through the operation-centric API. The client declares the typed debtor and creditor roles (sender.party / recipient.party); the platform DERIVES the BACEN STR transfer code (STR0004 institution→institution, STR0005 non-account-holders, STR0006 client→IF, STR0007 IF→client, STR0008 client→client), persists the operation aggregate and SUBMITTED outbound relay work, and returns the canonical OperationAccepted envelope. This means dispatch was accepted, not BACEN settlement confirmation. Idempotent — replaying the same X-Idempotency key with the same body returns the cached response.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Bearer JWT token.
Idempotency key (canonical; legacy alias X-Idempotency-Key is rejected on this control-plane route).
Idempotency key (legacy alias; rejected on this control-plane route).
Idempotency key TTL in seconds (overrides the configured default).
Body
Transfer amount as a decimal string in BRL, minor-unit precision (two decimal places).
^[0-9]+(\.[0-9]+)?$"150.00"
BACEN STR purpose code (finalidade), exactly 5 digits.
^[0-9]{5}$"00001"
Crediting (creditor) participant account receiving the transfer; its party role drives STR-code derivation.
Debiting (debtor) participant account originating the transfer; its party role drives STR-code derivation.
Optional caller-supplied correlation reference echoed back for client-side reconciliation.
"client-ref-1"
Optional free-text description carried with the operation.
"Wire transfer for invoice 2026-Q2-A47"
Opaque client-side metadata forwarded verbatim to the legacy submit DTO. NOT persisted on the operation intent or sanitized payload; do not include sensitive fields (the legacy pipeline sees the raw value).
Optional future settlement instant for a scheduled (agendada) STR transfer (RFC3339). BACEN window: at most 3 business days ahead, settlement hour must be one of 8/9/10/11/12 (Brasília), and at least 15 minutes ahead for same-day. Absent means immediate.
"2026-06-23T10:00:00Z"
Response
Created
UTC RFC 3339 timestamp at which the command was accepted.
"2026-05-06T18:30:00Z"
STR capability identifier resolved for the accepted operation (e.g. STR0004).
"STR0004"
Request correlation identifier for tracing the accept across logs and traces.
"req-7c8b3a2e-9f1d-4a55-9b8e-1e1234567890"
True when this response replays a prior idempotent accept rather than creating a new operation.
false
Operation family the accepted command belongs to (e.g. bankTransfer).
"bankTransfer"
Server-assigned operation aggregate UUID used for subsequent status, return, and cancellation calls.
"7c8b3a2e-9f1d-4a55-9b8e-1e1234567890"
Current control-plane lifecycle status of the operation; ACCEPTED on initial accept.
"ACCEPTED"
Optional SAFE protocol correlation fields; present once the operation is mapped to STR wire identifiers.

