Create outbound transfer
Creates a new outbound transfer in StateProtocolGenerated. The worker will pick it up asynchronously and stream the referenced bucket object to BACEN STA. Emits the audit event sta.transfer.status. on success.
Authorizations
Bearer token authentication (format: "Bearer {token}")
Headers
Idempotency key. A repeated request carrying the same key within the dedup window replays the original 201 outcome; an identical request still in-flight returns 409.
Body
create transfer payload
Response
Created. On a replayed request the X-Idempotency-Replayed response header is set to true.
DownloadAttempts is the legacy aggregate counter; for inbound transfers, see hashMismatchAttempts + transmissionAttempts.
ExpiresAt / SecondsRemaining / Expired project the 44h BACEN protocol TTL directly onto the read view (the dedicated GET /:id/expiry endpoint was folded in here). ExpiresAt is nil — and SecondsRemaining 0, Expired false — until the transfer is assigned a protocol number (ProtocolGeneratedAt nil). Once assigned, ExpiresAt is ProtocolGeneratedAt + TTL; SecondsRemaining counts down to it at the handler clock and clamps to 0, at which point Expired flips true.
HashMismatchAttempts is the inbound-only counter that drives the StateInconsistent terminal budget (HASH_MISMATCH). Always 0 for outbound transfers.
TransmissionAttempts is the inbound-only counter that drives the StateCanceled / DOWNLOAD_FAILED terminal budget. Always 0 for outbound transfers.
UrgentRequestedAt is the UTC timestamp at which an operator flagged this inbound transfer for urgent processing (mark-urgent). Nil (and omitted) for transfers that were never marked urgent.

