> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# 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/STR0046/STR0047/STR0048/STR0052/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 — the X-Idempotency key lives with the message: the same key and parsed request (member order and whitespace do not count; any other difference, such as number spelling, null for an absent field, or an unknown member, is another request) answer the stored message with X-Idempotency-Replayed: true, also after X-TTL has dropped the cached response, and the same key with another request answers 422. The declared amount is forwarded verbatim; no position is summed.



## OpenAPI

````yaml /pt/openapi/v3-current/spb.yaml post /v1/str/messages/compose
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    OpenAPI 3.1 surface for Lerian SPB, the direct integration between the
    institution and the Brazilian Payment System (SPB) over the National
    Financial System Network (RSFN). It covers the Reserve Transfer System
    (STR): message registry and capability catalog, operation lifecycle (bank
    transfers, IBS repasses, liquidity transfers, returns and cancellations),
    reserve-account and schedule queries, alçada governance, SME and LDL
    operations, inbound quarantine triage, reconciliation, and event delivery.
  license:
    name: Lerian Studio General License
  title: Lerian SPB API
  version: 1.0.0
servers:
  - url: https://api.example.com
    description: >-
      Replace the example host with the URL provided during environment
      onboarding.
security: []
tags:
  - description: Immutable audit-record trails for STR operations and lifecycle events.
    name: Audit
  - description: >-
      STR capability catalog describing supported message types and their
      constraints.
    name: Capabilities
  - description: >-
      ICP-Brasil certificate inventory with hot-reloadable rotation and
      activation.
    name: Certificates
  - description: >-
      STR compulsory-movement (RCO) family: the movements BACEN orders on a
      participant's reserve account, their answers and the periods they belong
      to.
    name: Compulsory
  - description: >-
      Maker-checker approval queue for emissions parked above their alçada band:
      list pending, sign (approve), and deny.
    name: EmissionApprovals
  - description: Operation event catalog enumerating the emitted domain event types.
    name: Events
  - description: >-
      Inbound GEN-family notice log (GEN0001 connectivity echo, GEN0004
      transmission error, GEN0005 administrative notice).
    name: GenNotices
  - description: >-
      SPB alçada governance config: value-band table + per-message-type
      signature requirements, hot-reloaded at runtime.
    name: Governance
  - description: >-
      Read raw STR message status: list messages and read a single message by
      NUOp.
    name: Messages
  - description: Aggregated operational summaries and metrics across STR operations.
    name: OperationalIntelligence
  - description: >-
      STR operation lifecycle for bank transfers and IBS repasses, including
      returns and cancellations.
    name: Operations
  - description: >-
      Service readiness state covering startup self-probes and dependency
      health.
    name: Readiness
  - description: Reconciliation cases and the actions that resolve operation discrepancies.
    name: Reconciliation
  - description: >-
      Redesconto do Banco Central: collateralised intraday and one-business-day
      BCB lending against Selic-registered federal securities. One create door
      derives the nine RDC commands from four operator-facing kinds (contract,
      payment, conversion, cancellation), plus the two consultas over
      eligible-security prices and open positions. An accepted rediscount is not
      necessarily a settled one — Selic may hold the request for want of
      securities, and that middle state is reported as its own.
    name: Rediscounts
  - description: >-
      STR Relatórios suite: synchronous, date-ranged aggregate reports
      (movimento financeiro, transações rejeitadas, volumetria) over Lerian
      SPB's own transmission record.
    name: Reports
  - description: >-
      STR0013 reserve-account balance and STR0014 statement (extrato,
      message-mode) queries and their async results.
    name: ReserveQueries
  - description: >-
      GEN0019 participant responsável roster: full-replacement updates announced
      to BACEN.
    name: Responsibles
  - description: STR operating-window schedule governing when operations may be sent.
    name: Schedule
  - description: >-
      STR0001 single-party schedule queries (consulta de horários do STR) and
      their async STR0001R1 grid results.
    name: ScheduleQueries
  - description: >-
      STR lançamentos (SLB) family: the charges BACEN raises against this
      participant, the payments that settle them, payments to BACEN it never
      demanded, and the entry consultas over them.
    name: SLB
  - description: >-
      Reads over an IEME's conta correspondente a moeda eletrônica (CCME):
      SME0003 statement (extrato) queries and their async SME0003R1 results,
      plus the log of SME0001R2/SME0002R2/SME0004R2 movement advices the STR
      delivered about movements this rail did not command.
    name: SMEQueries
  - description: Runtime SPB configuration settings for the STR integration.
    name: Settings
  - description: >-
      Flow (mandatory order): certificate → readiness → connectivity-test →
      submit. Activate a certificate, confirm the rail reports ready, pass a
      connectivity test, then submit an operation. Each step is its own
      resource; a submit must not be attempted before readiness passes.
    name: onboarding
  - description: >-
      Flow (mandatory order): parent operation SETTLED → return/cancel. A return
      or cancellation is a sub-resource of a settled parent operation; the
      {operationId}/{endToEndID} path segment enforces the parent structurally.
    name: lifecycle
paths:
  /v1/str/messages/compose:
    post:
      tags:
        - Messages
      summary: Compose and send a curated STR message
      description: >-
        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/STR0046/STR0047/STR0048/STR0052/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 — the X-Idempotency key
        lives with the message: the same key and parsed request (member order
        and whitespace do not count; any other difference, such as number
        spelling, null for an absent field, or an unknown member, is another
        request) answer the stored message with X-Idempotency-Replayed: true,
        also after X-TTL has dropped the cached response, and the same key with
        another request answers 422. The declared amount is forwarded verbatim;
        no position is summed.
      operationId: composeStrMessage
      parameters:
        - description: Idempotency key. Required on every mutation.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: Idempotency key. Required on every mutation.
            type: string
        - description: >-
            Seconds the cached response is kept; it may only shorten
            IDEMPOTENCY_DEFAULT_TTL_SEC. The key itself lives with the message.
          in: header
          name: X-TTL
          schema:
            description: >-
              Seconds the cached response is kept; it may only shorten
              IDEMPOTENCY_DEFAULT_TTL_SEC. The key itself lives with the
              message.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComposeMessageRequest'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComposeMessageResponse'
          description: Accepted
          headers:
            X-Idempotency-Replayed:
              schema:
                description: >-
                  true when the X-Idempotency key already holds a message: the
                  body is that message and nothing new was sent to the STR.
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Bad Request
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Forbidden
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Conflict
        '413':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Request Entity Too Large
        '415':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unsupported Media Type
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Service Unavailable
        '504':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Gateway Timeout
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    ComposeMessageRequest:
      additionalProperties: false
      properties:
        amount:
          description: >-
            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.
          examples:
            - '150000.00'
          pattern: ^(0|[1-9][0-9]*)\.[0-9]{2}$
          type: string
        capabilityId:
          description: >-
            STR capability code to compose. Required and non-blank. Must resolve
            in the catalog, be PUBLICLY_SUBMITTABLE, and be in the compose
            allowlist
            (STR0004/STR0005/STR0006/STR0007/STR0008/STR0046/STR0047/STR0048/STR0052/STR0053).
          examples:
            - STR0008
          minLength: 1
          type: string
        description:
          description: >-
            Optional free-text description; mandatory when purposeCode or
            finlddCli is 99999 (RSTR0034). Serialized into the STR Hist element.
          examples:
            - Wire transfer for invoice 2026-Q2-A47
          type: string
        finlddCli:
          description: >-
            Optional client-level purpose code (5 digits) carried on
            STR0004/STR0008. When 99999 the description is required (RSTR0034).
          examples:
            - '00001'
          pattern: ^[0-9]{5}$
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Opaque client-side metadata forwarded verbatim to the submit DTO
            (NOT sent to BACEN). Do not include sensitive fields.
          type: object
        openFinancePortability:
          $ref: '#/components/schemas/OpenFinancePortabilityGroup'
          description: >-
            STR0052 (portabilidade de crédito no âmbito do Open Finance)
            elements: the IPOC code of the ported credit operation, its modality
            and the portability UUID. Required when composing STR0052; refused
            on any other capabilityId. sender/recipient account, document (CNPJ)
            and name fill the optional financial-agent groups (RSTR0024).
        portability:
          $ref: '#/components/schemas/PortabilityGroup'
          description: >-
            STR0047 (portabilidade de operação de crédito de pessoas naturais)
            elements: the unique portability number and the service provider
            ISPB. Required when composing STR0047; refused on any other
            capabilityId. sender/recipient account, document (CNPJ) and name
            fill the optional financial-agent groups, used only when that IF has
            no Reservas Bancárias or settlement account (RSTR0024).
        portabilityReturn:
          $ref: '#/components/schemas/PortabilityReturnGroup'
          description: >-
            STR0048 (devolução de portabilidade indevida) elements: the return
            reason, the STR control number of the portability credit being
            returned and the service provider ISPB. The return is unique and for
            the full amount received (RSTR0033). Required when composing
            STR0048; refused on any other capabilityId.
        purposeCode:
          description: >-
            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).
          examples:
            - '00001'
          pattern: ^[0-9]{5}$
          type: string
        recipient:
          $ref: '#/components/schemas/ComposeParticipantAccount'
          description: Crediting (creditor) participant account receiving the transfer.
        repasse:
          $ref: '#/components/schemas/IBSRepasseGroup'
          description: >-
            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.
        sender:
          $ref: '#/components/schemas/ComposeParticipantAccount'
          description: Debiting (debtor) participant account originating the transfer.
        split:
          $ref: '#/components/schemas/TaxSplitRequest'
          description: >-
            Optional IBS/CBS tax-split group (all three children required when
            the group is present). Carried on STR0005/STR0007/STR0008.
        taxRepasseReturn:
          $ref: '#/components/schemas/TaxRepasseReturnGroup'
          description: >-
            STR0046 (devolução de repasse de receitas de tributos) elements:
            collection type and date, the collected and remuneration amounts,
            the return reason and the STR control number of the repasse being
            returned. Required when composing STR0046; refused on any other
            capabilityId.
      required:
        - capabilityId
        - sender
        - recipient
        - amount
      type: object
    ComposeMessageResponse:
      additionalProperties: false
      properties:
        controlNumber:
          description: >-
            Participant control number identifying the message on the SPB
            network (official ControleIF, 1-20 characters).
          examples:
            - '20260621000000000001'
          maxLength: 20
          minLength: 1
          type: string
        correlationId:
          description: >-
            Request-scoped correlation identifier echoing X-Request-ID, for
            pivoting from response to trace.
          examples:
            - req-7a3f9c2e
          type: string
        emissionApprovalId:
          description: >-
            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.
          examples:
            - 6f2c8a1e-...
          type: string
        messageId:
          description: >-
            Internal outbound-message id assigned at persistence time; the key
            for the approval queue when parked.
          examples:
            - 6f2c8a1e-...
          type: string
        nuOp:
          description: >-
            23-character STR operation number stamped on the composed message
            (protocol correlation).
          examples:
            - '12345678202606210000001'
          pattern: ^[0-9A-Z]{8}[0-9]{15}$
          type: string
        requiredSignatures:
          description: >-
            N-of-M distinct-actor quorum the parked emission must collect (the
            alçada band requirement). Omitted/0 when SUBMITTED immediately.
          examples:
            - 2
          format: int64
          type: integer
        status:
          description: >-
            Emission status: SUBMITTED (dispatched / liquidatable) or
            PENDING_APPROVAL (parked awaiting maker-checker quorum).
          enum:
            - SUBMITTED
            - PENDING_APPROVAL
          examples:
            - PENDING_APPROVAL
          type: string
      required:
        - messageId
        - status
        - nuOp
        - controlNumber
        - correlationId
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        correlationId:
          description: Request-scoped correlation identifier echoing X-Request-ID.
          examples:
            - req-7a3f9c2e
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      required:
        - correlationId
      type: object
    OpenFinancePortabilityGroup:
      additionalProperties: false
      properties:
        codIPOC:
          description: >-
            IPOC code of the ported credit operation (CodIPOC, Catálogo v5.13
            Vol I), 22 to 67 characters.
          examples:
            - '12345678000199202606010001'
          maxLength: 67
          minLength: 22
          type: string
        identdUniPortdd:
          description: >-
            Unique portability identifier in Open Finance (IdentdUniPortdd),
            UUID.
          examples:
            - 3f2504e0-4f89-41d3-9a0c-0305e82c3301
          pattern: >-
            ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
        modOpCredPortd:
          description: >-
            Modality of the ported credit operation (ModOpCredPortd), 2
            characters from the BACEN domain.
          examples:
            - '01'
          maxLength: 2
          minLength: 2
          type: string
      required:
        - codIPOC
        - modOpCredPortd
        - identdUniPortdd
      type: object
    PortabilityGroup:
      additionalProperties: false
      properties:
        ispbPrestd:
          description: ISPB of the portability service provider (ISPBPrestd).
          examples:
            - '11112222'
          pattern: ^[0-9A-Z]{8}$
          type: string
        nuPortdd:
          description: >-
            Unique portability number (NUPortdd, Catálogo v5.13 Vol I), 21
            characters.
          examples:
            - '202606010000000000047'
          maxLength: 21
          minLength: 21
          type: string
      required:
        - nuPortdd
        - ispbPrestd
      type: object
    PortabilityReturnGroup:
      additionalProperties: false
      properties:
        codDevPortdd:
          description: >-
            Portability return reason code (CodDevPortdd, Catálogo v5.13 Vol I),
            numeric, up to 2 digits.
          examples:
            - '2'
          pattern: ^[0-9]{1,2}$
          type: string
        ispbPrestd:
          description: ISPB of the portability service provider (ISPBPrestd).
          examples:
            - '11112222'
          pattern: ^[0-9A-Z]{8}$
          type: string
        numCtrlSTROr:
          description: >-
            STR control number of the portability credit being returned
            (NumCtrlSTROr; official type Controle, 20 characters).
          examples:
            - STR20260601000000048
          maxLength: 20
          minLength: 20
          type: string
      required:
        - codDevPortdd
        - numCtrlSTROr
        - ispbPrestd
      type: object
    ComposeParticipantAccount:
      additionalProperties: false
      properties:
        account:
          description: Optional traditional bank account number.
          examples:
            - '123456'
          type: string
        accountType:
          description: >-
            Optional account type, BACEN TpCt: CC (conta corrente), CD (conta de
            depósito), CG (conta garantida), PG (payment account/conta de
            pagamento) or PP (savings/poupança). PG is the only code carried in
            paymentAccount; every other code uses branch + account. CI (conta de
            investimento) is not accepted: BACEN deactivated it in production on
            31/10/2011.
          enum:
            - CC
            - CD
            - CG
            - PG
            - PP
          examples:
            - CC
          type: string
        branch:
          description: Optional bank branch (agência) number.
          examples:
            - '0001'
          type: string
        document:
          description: >-
            Holder document (CPF or CNPJ), carried verbatim onto the wire by
            every composed code that carries a holder document.
          examples:
            - '12345678901'
          type: string
        ispb:
          description: Participant ISPB, the 8-character BACEN institution identifier.
          examples:
            - '12345678'
          maxLength: 8
          minLength: 8
          pattern: ^[0-9A-Z]{8}$
          type: string
        name:
          description: >-
            Holder name, at most 80 characters (official type Nome), carried by
            every composed code that carries a holder name.
          examples:
            - João da Silva
          maxLength: 80
          type: string
        paymentAccount:
          description: >-
            Optional payment account identifier (conta de pagamento). Required
            when accountType is PG.
          examples:
            - '00000000123456'
          type: string
      required:
        - ispb
      type: object
    IBSRepasseGroup:
      additionalProperties: false
      properties:
        cnpjOrigdrRepFinanc:
          description: >-
            Optional repasse-originator CNPJ (official CNPJ type: exactly 14
            characters, [0-9A-Z]{12}[0-9]{2}). Omitted from the wire when
            absent.
          examples:
            - '12345678000199'
          pattern: ^[0-9A-Z]{12}[0-9]{2}$
          type: string
        dtRepFinanc:
          description: >-
            Financial repasse date in BACEN STR0053 ISO date form (e.g.
            2026-06-09). Required and non-blank.
          examples:
            - '2026-06-09'
          minLength: 1
          type: string
        identdRepFinanc:
          description: >-
            Financial-repasse identifier the comitê gestor keys the repasse on
            (required, 1-50 characters). This service mints no value for it: an
            absent or blank identifier is refused with 422.
          examples:
            - REP-2026-0001
          maxLength: 50
          minLength: 1
          type: string
        infSeggc:
          description: >-
            Repeating segregation-informe group ([0..n]); each entry requires
            both an identifier and a timestamp. Absent means the repasse
            references no informe. No item ceiling is imposed: the official XSD
            declares maxOccurs='unbounded' and no BACEN rule caps it.
          items:
            $ref: '#/components/schemas/IBSRepasseInfSeggc'
          type:
            - array
            - 'null'
        qtdTransc:
          description: Optional transaction count (digits only).
          examples:
            - '10'
          type: string
      required:
        - identdRepFinanc
        - dtRepFinanc
      type: object
    TaxSplitRequest:
      additionalProperties: false
      properties:
        codDocFis:
          description: >-
            Fiscal document code identifying the invoice the split settles (1-50
            characters).
          examples:
            - DOCFIS001
          maxLength: 50
          minLength: 1
          type: string
        vlrCBS:
          description: >-
            CBS amount as a non-negative decimal string in BRL. Carried
            verbatim.
          examples:
            - '5.00'
          pattern: ^[0-9]+(\.[0-9]+)?$
          type: string
        vlrIBS:
          description: >-
            IBS amount as a non-negative decimal string in BRL. Carried
            verbatim.
          examples:
            - '10.00'
          pattern: ^[0-9]+(\.[0-9]+)?$
          type: string
      required:
        - vlrCBS
        - vlrIBS
        - codDocFis
      type: object
    TaxRepasseReturnGroup:
      additionalProperties: false
      properties:
        codDevTransf:
          description: Return reason code (CodDevTransf), numeric, up to 2 digits.
          examples:
            - '1'
          pattern: ^[0-9]{1,2}$
          type: string
        dtArrec:
          description: Date the tax was collected (DtArrec), ISO date.
          examples:
            - '2026-06-01'
          minLength: 1
          type: string
        numCtrlSTROr:
          description: >-
            STR control number of the repasse being returned (NumCtrlSTROr;
            official type Controle, 20 characters).
          examples:
            - STR20260601000000042
          maxLength: 20
          minLength: 20
          type: string
        tpRecolht:
          description: >-
            Collection type (TpRecolht, Catálogo v5.13 Vol I), one character
            from the BACEN domain.
          examples:
            - 'N'
          maxLength: 1
          minLength: 1
          type: string
        vlrRecolht:
          description: >-
            Collected amount (VlrRecolht). At least one of vlrRecolht and
            vlrRemunEncargo is required (RSTR0032).
          examples:
            - '198.50'
          pattern: ^(0|[1-9][0-9]*)\.[0-9]{2}$
          type: string
        vlrRemunEncargo:
          description: >-
            Remuneration or charge amount (VlrRemun_Encargo). At least one of
            vlrRecolht and vlrRemunEncargo is required (RSTR0032).
          examples:
            - '1.50'
          pattern: ^(0|[1-9][0-9]*)\.[0-9]{2}$
          type: string
      required:
        - tpRecolht
        - dtArrec
        - codDevTransf
        - numCtrlSTROr
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
    IBSRepasseInfSeggc:
      additionalProperties: false
      properties:
        dtHrInfSeggc:
          description: >-
            Segregation-informe timestamp in BACEN STR0053 ISO dateTime form
            (e.g. 2026-06-09T12:00:00) WITHOUT a timezone offset; the wire
            validator enforces the BACEN format.
          examples:
            - '2026-06-09T12:00:00'
          minLength: 1
          type: string
        identdInfSeggc:
          description: >-
            Segregation-informe identifier the repasse references (1-50
            characters).
          examples:
            - SEGGC-INFO-0001
          maxLength: 50
          minLength: 1
          type: string
      required:
        - identdInfSeggc
        - dtHrInfSeggc
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.