Create SME electronic-money movement
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 an SME movement of an IEME’s conta correspondente a moeda eletrônica (CCME) through the operation-centric API: kind deposit funds the CCME from Reservas Bancárias / Conta de Liquidação (the platform DERIVES wire code SME0001), withdrawal recalls funds out of the CCME (SME0002), and return gives back an entry received in error quoting its original STR control number (SME0004) — the platform never composes the wire code, and the issuer ISPB is resolved server-side. On a deposit, the counterparty ISPB reaches the wire as the ISPBIEME only for an IEME that does NOT participate in the STR (RSME0001): participation is read from the participant directory the STR itself broadcasts, and a deposit naming an institution the STR announced as a participant is refused as a validation error before it becomes a durable movement — while a deposit into the deployment’s own CCME carries no ISPBIEME at all. Ignorance does not block: when the directory holds no answer for that ISPB the movement proceeds, and BACEN remains the authoritative validator of the condition. Persists a PENDING movement projection BEFORE the frame is sent and returns the operation id, the PENDING status, and the derived wire code. This means dispatch was accepted, not BACEN settlement confirmation; the settlement arrives asynchronously on the inbound STR R-leg. Every accepted movement durably records the authenticated operator that commanded it. Lerian SPB EMITS the movement fact and projects the settlement verbatim; it never computes or holds a CCME position. 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
Idempotency key. Required on every mutation.
Idempotency key TTL in seconds.
Body
Movement amount as a decimal-reais string, forwarded verbatim into the SME submit — 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}$"1500.25"
Operator-facing movement kind. deposit funds an IEME's conta correspondente a moeda eletrônica (CCME) from Reservas Bancárias / Conta de Liquidação (wire SME0001); withdrawal recalls funds out of the CCME (SME0002); return gives back an entry received in error (SME0004).
deposit, withdrawal, return "deposit"
The other party's ISPB. On a deposit it is the OPTIONAL ISPBIEME whose CCME is credited (empty is the own-CCME deposit); on a return it is the REQUIRED credited IEME being paid back. A withdrawal names its credited FI inside creditedAccount instead, so supplying one there is refused.
^[0-9A-Z]{8}$"00038166"
Withdrawal-only credited Reservas Bancárias account (all four children required when the group is present). Absent is the own-account withdrawal. Supplying it on a deposit or return is refused.
Return-only free-text history (Hist). SME0001 and SME0002 declare no such element, so supplying it there is refused.
"devolucao lancamento indevido"
Return-only: the BACEN STR control number (NumCtrlSTROr) of the entry this return reverses. Required on a return; refused on a deposit or withdrawal.
"20260619000001"
Response
Accepted
Request-scoped correlation identifier echoing X-Request-ID, for pivoting from response to trace.
"req-7a3f9c2e"
Server-assigned operation UUID identifying the accepted SME movement.
"7c8b3a2e-9f1d-4a55-9b8e-1e1234567890"
Projection lifecycle status; PENDING on accept (awaiting the STR R-leg settlement confirmation).
PENDING, SETTLED, REJECTED "PENDING"
SME wire code derived server-side from the kind: deposit=SME0001, withdrawal=SME0002, return=SME0004.
SME0001, SME0002, SME0004 "SME0001"

