Compose and send a curated STR message
Catalog-gated, maker-checker-routed, per-type CURATED message-compose surface. The chosen capabilityId must be in the compose allowlist (STR0004/STR0005/STR0006/STR0007/STR0008/STR0053), resolve in the catalog, and be PUBLICLY_SUBMITTABLE; otherwise the request is rejected SPB-0003 (HTTP 422). The message builds through the shared compose pipeline and inherits the alçada emission gate: an amount above its band PARKS in PENDING_APPROVAL (visible in GET /v1/str/emission-approvals, emissionApprovalId set) and dispatches on quorum; below band it is SUBMITTED. Idempotent — replaying the same X-Idempotency key returns the same emission. The declared amount is forwarded verbatim; no position is summed.
Autorizaciones
JWT bearer token issued by the identity provider.
Encabezados
Idempotency key. Required on every mutation.
Idempotency key TTL in seconds.
Cuerpo
Transfer amount as a decimal string in BRL, minor-unit precision (two decimal places). Forwarded VERBATIM into the submit DTO and the alçada gate — Lerian SPB performs NO arithmetic on it. Canonical form only: exactly two decimal places and no leading integer zeros — the single spelling the durable column stores; anything else is refused at the door with 422.
^(0|[1-9][0-9]*)\.[0-9]{2}$"150000.00"
STR capability code to compose. Must resolve in the catalog, be PUBLICLY_SUBMITTABLE, and be in the compose allowlist (STR0004/STR0005/STR0006/STR0007/STR0008/STR0053).
"STR0008"
Crediting (creditor) participant account receiving the transfer.
Debiting (debtor) participant account originating the transfer.
Optional free-text description; mandatory when purposeCode or finlddCli is 99999 (RSTR0034). Serialized into the STR Hist element.
"Wire transfer for invoice 2026-Q2-A47"
Optional client-level purpose code (5 digits) carried on STR0004/STR0008. When 99999 the description is required (RSTR0034).
^[0-9]{5}$"00001"
Opaque client-side metadata forwarded verbatim to the submit DTO (NOT sent to BACEN). Do not include sensitive fields.
BACEN STR purpose code (finalidade), exactly 5 digits, and one the BACEN purpose dictionary names: 176 codes for the institution-level FinlddIF and 113 for the client-level FinlddCli. An unassigned five-digit number is refused. Required for every code that declares a Finalidade element (refused with 422 when absent); omitted for STR0053, which declares none. When 99999 (Outros) a description is mandatory (RSTR0034).
^[0-9]{5}$"00001"
STR0053 repasse identification: the [1..1] identifier and date, the optional originator CNPJ and transaction count, and the [0..n] segregation-informe group. Required when composing STR0053; refused on any other capabilityId, which has no repasse element on the wire.
Optional IBS/CBS tax-split group (all three children required when the group is present). Carried on STR0005/STR0007/STR0008.
Respuesta
Accepted
Participant control number identifying the message on the SPB network (official ControleIF, 1-20 characters).
1 - 20"20260621000000000001"
Request-scoped correlation identifier echoing X-Request-ID, for pivoting from response to trace.
"req-7a3f9c2e"
Internal outbound-message id assigned at persistence time; the key for the approval queue when parked.
"6f2c8a1e-..."
23-character STR operation number stamped on the composed message (protocol correlation).
^[0-9A-Z]{8}[0-9]{15}$"12345678202606210000001"
Emission status: SUBMITTED (dispatched / liquidatable) or PENDING_APPROVAL (parked awaiting maker-checker quorum).
SUBMITTED, PENDING_APPROVAL "PENDING_APPROVAL"
Set ONLY when the emission parked: the maker-checker queue id (equal to messageId). Poll GET /v1/str/emission-approvals to track it. Empty when SUBMITTED immediately.
"6f2c8a1e-..."
N-of-M distinct-actor quorum the parked emission must collect (the alçada band requirement). Omitted/0 when SUBMITTED immediately.
2

