components:
  schemas:
    AckPaginationMeta:
      additionalProperties: false
      properties:
        hasNext:
          description: True when the returned page filled the requested limit (page-full heuristic; no total count).
          examples:
            - false
          type: boolean
        page:
          description: 1-based page number derived from the offset.
          examples:
            - 1
          format: int64
          type: integer
        perPage:
          description: Requested page size.
          examples:
            - 50
          format: int64
          type: integer
      required:
        - page
        - perPage
        - hasNext
      type: object
    AdvanceRequest:
      additionalProperties: false
      properties:
        evidence:
          description: Audit evidence (mandatory; enforced by the domain). At most 4096 characters.
          examples:
            - ticket-4567
          maxLength: 4096
          type: string
        reason:
          description: Audit justification (mandatory; enforced by the domain). At most 1024 characters.
          examples:
            - Manual override after Núclea reconciliation
          maxLength: 1024
          type: string
        toState:
          description: The existing state-machine edge the override drives to.
          examples:
            - QUEUED
          type: string
      type: object
    AdvanceResponse:
      additionalProperties: false
      properties:
        advancedBy:
          description: Authenticated subject who authorized the override.
          examples:
            - ops@acquirer.com
          type: string
        fromState:
          description: State before the override.
          examples:
            - REJECTED
          type: string
        operationId:
          description: Operation id (UUID) that was advanced.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        toState:
          description: State after the override.
          examples:
            - QUEUED
          type: string
        trigger:
          description: Transition trigger (always MANUAL_OVERRIDE).
          examples:
            - MANUAL_OVERRIDE
          type: string
      required:
        - operationId
        - fromState
        - toState
        - trigger
      type: object
    AnnouncedNonSettlorOperationResponse:
      additionalProperties: false
      properties:
        agCredtd:
          description: The credited branch.
          type: string
        agDebtd:
          description: The debited branch.
          type: string
        announcedAt:
          description: When this rail absorbed the announcement (RFC3339).
          type: string
        closedAt:
          description: When the announcement reached a terminal state (RFC3339).
          type: string
        cnpjNLiqdantCredtd:
          description: The credited non-liquidante's CNPJ.
          type: string
        cnpjNLiqdantDebtd:
          description: The debited non-liquidante's CNPJ.
          type: string
        ctCredtd:
          description: The credited account.
          type: string
        ctDebtd:
          description: The debited account.
          type: string
        decidedAt:
          description: When the operator decided (RFC3339).
          type: string
        decision:
          description: What the operator chose, carried forward past ANSWERED/REFUSED. Absent before a decision.
          type: string
        descAtv:
          description: The asset description.
          type: string
        dtMovto:
          description: The settlement business day.
          type: string
        hist:
          description: The câmara's free-text history.
          type: string
        id:
          description: The announced operation's id.
          type: string
        identdPartCamrCredtd:
          description: The credited side's câmara participant identifier.
          type: string
        identdPartCamrDebtd:
          description: The debited side's câmara participant identifier.
          type: string
        indrConfc:
          description: Whether the câmara requires a confirmation at all, carried verbatim from the wire. Deciding an operation it did not ask about is refused with 422.
          type: string
        ispbIF:
          description: The ONE settlement bank both non-liquidantes sit under, i.e. this institution.
          type: string
        ispbLTR:
          description: The câmara's ISPB.
          type: string
        numCtrlLTR:
          description: The câmara-minted control number that identifies this operation.
          type: string
        numOpLTR:
          description: The LTR operation number; mutually exclusive with the two per-side numbers above.
          type: string
        numOpLTRCredtd:
          description: The credited side's LTR operation number.
          type: string
        numOpLTRDebtd:
          description: The debited side's LTR operation number.
          type: string
        sourceMessageId:
          description: The identifier of the inbound message that carried this announcement.
          type: string
        status:
          description: ANNOUNCED (awaiting a decision), CONFIRMED or REJECTED (decided, command in flight), ANSWERED or REFUSED (the câmara answered).
          type: string
        subTpAtv:
          description: The asset sub-type.
          type: string
        tpOpLTR:
          description: The LTR operation type.
          type: string
        version:
          description: The version a decision is authorised against.
          format: int64
          type: integer
        vlrLanc:
          description: The value the bank is asked to confirm or reject, verbatim, as a decimal string. This is the value a decision must state to be accepted.
          type: string
      required:
        - id
        - numCtrlLTR
        - ispbLTR
        - ispbIF
        - cnpjNLiqdantDebtd
        - cnpjNLiqdantCredtd
        - vlrLanc
        - subTpAtv
        - indrConfc
        - dtMovto
        - status
        - version
        - sourceMessageId
        - announcedAt
      type: object
    AnnouncedResultResponse:
      additionalProperties: false
      properties:
        agDebtd:
          description: The debited branch.
          type: string
        announcedAt:
          description: When this rail absorbed the announcement (RFC3339).
          type: string
        cancelledByNumCtrlLTR:
          description: The control number of the cancellation NOTICE that closed this result — the notice's own number, which is how the two are told apart.
          type: string
        closedAt:
          description: When the announcement reached a terminal state (RFC3339).
          type: string
        cnpjNLiqdant:
          description: The non-liquidante's CNPJ. It carries the settlement bank's own CNPJ whenever the result is that bank's own liability.
          type: string
        ctDebtd:
          description: The debited account.
          type: string
        decidedAt:
          description: When the operator decided (RFC3339).
          type: string
        decision:
          description: What the operator chose, carried forward past ANSWERED/REFUSED where the status no longer names it. Absent before a decision and after a cancellation.
          type: string
        descAtv:
          description: The asset description.
          type: string
        dtMovto:
          description: The settlement business day.
          type: string
        hist:
          description: The câmara's free-text history.
          type: string
        id:
          description: The announced result's id.
          type: string
        identdPartCamr:
          description: The câmara participant identifier.
          type: string
        ispbIFCredtd:
          description: The credited institution's ISPB. ABSENT means the câmara itself is the credited party — it is not missing data.
          type: string
        ispbIFDebtd:
          description: The debited institution's ISPB.
          type: string
        ispbLTR:
          description: The câmara's ISPB.
          type: string
        numCtrlLTR:
          description: The câmara-minted control number that identifies this result.
          type: string
        numOpLTR:
          description: The LTR operation number. Absent for a bilateral settlement — the câmara fills it only for a gross one, so its absence is a fact about the settlement mode.
          type: string
        sourceMessageId:
          description: The identifier of the inbound message that carried this announcement.
          type: string
        status:
          description: ANNOUNCED (awaiting a decision), CONFIRMED or DIVERGED (decided, command in flight), ANSWERED or REFUSED (the câmara answered), CANCELLED (the câmara withdrew it).
          type: string
        subTpAtv:
          description: The asset sub-type.
          type: string
        tpOpLTR:
          description: The LTR operation type.
          type: string
        version:
          description: "The version a decision is authorised against. Two operators who both read the same announcement cannot both answer it: the first write wins."
          format: int64
          type: integer
        vlrLanc:
          description: The announced amount, verbatim, as a decimal string. This is the value a decision must state to be accepted.
          type: string
      required:
        - id
        - numCtrlLTR
        - ispbLTR
        - ispbIFDebtd
        - cnpjNLiqdant
        - vlrLanc
        - subTpAtv
        - dtMovto
        - status
        - version
        - sourceMessageId
        - announcedAt
      type: object
    ArrangementResponse:
      additionalProperties: false
      properties:
        active:
          description: Whether the arrangement is active.
          examples:
            - true
          type: boolean
        code:
          description: Card-scheme arrangement code.
          examples:
            - VCC
          type: string
        createdAt:
          description: Creation timestamp (RFC3339 UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        id:
          description: Arrangement id (UUID).
          examples:
            - 0190b5a0-0000-7000-8000-0000000000bb
          type: string
        participantId:
          description: Owning participant id (UUID).
          examples:
            - 0190b5a0-0000-7000-8000-0000000000aa
          type: string
        role:
          description: Participant role for this arrangement.
          examples:
            - ACQUIRER
          type: string
        updatedAt:
          description: Last-update timestamp (RFC3339 UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
      required:
        - id
        - participantId
        - code
        - role
        - active
        - createdAt
        - updatedAt
      type: object
    BatchError:
      additionalProperties: false
      properties:
        code:
          description: Coded error identifier for the rejection.
          examples:
            - SLC-0104
          type: string
        details:
          additionalProperties: {}
          description: Structured context for the rejection (e.g. the existing operationId of a duplicate).
          type: object
        externalId:
          description: Best-effort external id of the rejected line (empty when the line could not be parsed that far).
          examples:
            - acq-ext-2026-06-0002
          type: string
        line:
          description: 1-based source line number of the rejected NDJSON line.
          examples:
            - 42
          format: int64
          type: integer
        message:
          description: Static, controlled human-readable rejection message.
          examples:
            - external id already used by another operation
          type: string
      required:
        - line
        - externalId
        - code
        - message
      type: object
    BatchMeta:
      additionalProperties: false
      properties:
        requestId:
          description: Client request id echoed back from the X-Request-Id header.
          examples:
            - req-2026-06-15-abc123
          type: string
        timestamp:
          description: Response generation timestamp (RFC3339).
          examples:
            - "2026-06-15T10:50:00Z"
          type: string
      required:
        - requestId
        - timestamp
      type: object
    ChannelStatus:
      additionalProperties: false
      properties:
        latencyMs:
          description: Round-trip latency in milliseconds; omitted for channels that are not configured.
          examples:
            - 42
          format: int64
          type: integer
        status:
          description: 'Transport channel status: OK, DEGRADED, or NOT_CONFIGURED (a channel that is not available).'
          examples:
            - OK
          type: string
      required:
        - status
      type: object
    ClearingPaginationMeta:
      additionalProperties: false
      properties:
        hasNext:
          description: Whether another page likely exists (page-full heuristic; no total count).
          examples:
            - true
          type: boolean
        page:
          description: 1-based page number.
          examples:
            - 1
          format: int64
          type: integer
        perPage:
          description: Page size.
          examples:
            - 50
          format: int64
          type: integer
      required:
        - page
        - perPage
        - hasNext
      type: object
    ClearingPositionResponse:
      additionalProperties: false
      properties:
        counterparties:
          description: Pre-netting bilateral counterparties of this position.
          items:
            $ref: "#/components/schemas/CounterpartyResponse"
          type: array
        currency:
          description: ISO-4217 currency code.
          examples:
            - BRL
          type: string
        cycle:
          description: Settlement cycle.
          examples:
            - "07:50"
          type: string
        participantIspb:
          description: Participant ISPB (8-character identifier).
          examples:
            - "29011780"
          type: string
        positionCents:
          description: Net clearing position in centavos; negative means net debtor.
          examples:
            - 150000
          format: int64
          type: integer
        receivedAt:
          description: Timestamp the notice was stored (RFC3339 UTC); null until stored.
          examples:
            - "2026-06-15T07:50:00Z"
          type:
            - string
            - "null"
        referenceDate:
          description: Settlement reference date (YYYY-MM-DD).
          examples:
            - "2026-06-15"
          type: string
        sourceMessageId:
          description: Id of the source SLC0001 message that produced this position.
          examples:
            - SLC0001-20260615-0001
          type: string
        stage:
          description: Clearing stage (PREVIEW or FINAL).
          examples:
            - FINAL
          type: string
      required:
        - referenceDate
        - cycle
        - stage
        - participantIspb
        - positionCents
        - currency
        - receivedAt
        - counterparties
      type: object
    CommandAcceptedResponse:
      additionalProperties: false
      properties:
        commandId:
          description: The command's id (a UUIDv7 minted by this service). It is the key every later fact joins on and the id to read the command back by.
          examples:
            - 0199a2e8-7a1c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        messageType:
          description: "The outbound message this command originates: LTR0002 (result answer), LTR0008 (non-liquidante answer) or LTR0009 (position query)."
          examples:
            - LTR0002
          type: string
        requestedAt:
          description: When the institution decided (RFC3339, UTC).
          examples:
            - "2026-09-22T13:04:11Z"
          type: string
        sourceAggregateId:
          description: The announcement this command answers. For a position query it is the command's own id, because a query answers no announcement.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        sourceAggregateVersion:
          description: The version of the announcement this command was authorised against, kept so a later reader can see which view of it was answered.
          examples:
            - 1
          format: int64
          type: integer
        status:
          description: "Always REQUESTED here: the command row and its outbound event are committed and nothing has been sent yet. Poll the command to see it reach ACCEPTED, ANSWERED, REFUSED or FAILED."
          examples:
            - REQUESTED
          type: string
      required:
        - commandId
        - messageType
        - status
        - sourceAggregateId
        - sourceAggregateVersion
        - requestedAt
      type: object
    CommandResponse:
      additionalProperties: false
      properties:
        acceptedAt:
          description: When Lerian SILOC durably accepted this command and queued it for dispatch (RFC3339). It is not the moment the message reached the câmara — that is answeredAt.
          type: string
        actorSubject:
          description: The authenticated subject that authorised this command — the durable record of who answered the câmara.
          type: string
        actorType:
          description: Whether a person or a machine authorised this command.
          type: string
        answer:
          description: "The câmara's answer body, projected exactly as it arrived: dtMovto, an optional dtHrLTR, and for a position query an optional positions array whose entries carry the câmara's own numbers as strings. This rail never computes, nets or rounds one. An absent positions array on a position query means the câmara matched nothing; on the two acknowledgement legs it means that leg carries no positions at all."
        businessTuple:
          description: The fields sent to the câmara for this message type, as they were sent. Monetary values are decimal strings.
        closedAt:
          description: When the command reached a terminal state (RFC3339).
          type: string
        id:
          description: The command's id (a UUIDv7). It is also the id of the outbound event and the key every fact about this command joins on.
          type: string
        messageType:
          description: LTR0002, LTR0008 or LTR0009.
          type: string
        numCtrlIF:
          description: "The identifier Lerian SILOC minted for this message. Opaque here: displayed and logged, never parsed."
          type: string
        numCtrlLTR:
          description: The câmara-minted control number, when the answering leg carried one.
          type: string
        reason:
          description: Why a REFUSED or FAILED command ended that way, plus the offending tag when the wire supplied one. Diagnostic, never a control value.
          type: string
        requestedAt:
          description: When the institution decided (RFC3339).
          type: string
        sourceAggregateId:
          description: The announcement this command was authorised against.
          type: string
        sourceAggregateKind:
          description: Which announcement this command answers. For a position query it names the command row itself, because a query answers no announcement.
          type: string
        sourceAggregateVersion:
          description: The version of that announcement at the moment it was answered.
          format: int64
          type: integer
        status:
          description: "REQUESTED (committed here, nothing has left this service), ACCEPTED (Lerian SILOC durably accepted the command and queued it for dispatch — it is NOT yet on the wire to the câmara and is NOT a settlement claim), ANSWERED (the câmara answered), REFUSED (the câmara said no) or FAILED (it never reached the câmara, and the announcement is open again). FAILED can follow ACCEPTED: Lerian SILOC may give up terminally on a queued message."
          type: string
      required:
        - id
        - messageType
        - actorType
        - actorSubject
        - sourceAggregateKind
        - sourceAggregateId
        - sourceAggregateVersion
        - businessTuple
        - status
        - requestedAt
      type: object
    ConfigEntryResponse:
      additionalProperties: false
      properties:
        key:
          description: Fenced connectivity config key.
          examples:
            - connectivity.file_transport
          type: string
        value:
          description: "Effective value for the key: the tenant override when present, else the catalog default."
          examples:
            - cd
          type: string
      required:
        - key
        - value
      type: object
    ConfigListResponse:
      additionalProperties: false
      properties:
        items:
          description: Effective fenced config entries for the request tenant, ordered by key.
          items:
            $ref: "#/components/schemas/ConfigEntryResponse"
          type: array
      required:
        - items
      type: object
    CounterpartyResponse:
      additionalProperties: false
      properties:
        amountCents:
          description: Signed bilateral net amount in centavos toward this counterparty; positive means net creditor.
          examples:
            - 150000
          format: int64
          type: integer
        counterpartyIspb:
          description: Counterparty participant ISPB (8-character identifier).
          examples:
            - "60746948"
          type: string
        direction:
          description: Direction relative to the participant (mirrors the amount sign).
          examples:
            - CREDIT
          type: string
      required:
        - counterpartyIspb
        - amountCents
        - direction
      type: object
    CreateArrangementRequest:
      additionalProperties: false
      properties:
        active:
          description: Whether the arrangement is active; defaults to true when omitted.
          examples:
            - true
          type:
            - boolean
            - "null"
        code:
          description: Card-scheme arrangement code.
          examples:
            - VCC
          maxLength: 10
          minLength: 1
          type: string
        role:
          description: Participant role for this arrangement.
          examples:
            - ACQUIRER
          minLength: 1
          type: string
      required:
        - code
        - role
      type: object
    CreateOperationMeta:
      additionalProperties: false
      properties:
        requestId:
          description: Client request id echoed back from the X-Request-Id header.
          examples:
            - req-2026-06-15-abc123
          type: string
        timestamp:
          description: Response generation timestamp (RFC3339).
          examples:
            - "2026-06-15T10:50:00Z"
          type: string
      required:
        - requestId
        - timestamp
      type: object
    CreateOperationRequest:
      additionalProperties: false
      properties:
        arrangementCode:
          description: Payment arrangement (arranjo) code.
          examples:
            - "0245"
          type: string
        authorizationCode:
          description: Card authorization code.
          examples:
            - A1B2C3
          type: string
        brandCode:
          description: "Card brand code (catalog: Visa/Master/Elo)."
          examples:
            - VISA
          type: string
        creditorIspb:
          description: Creditor (acquirer) ISPB, 8 characters.
          examples:
            - "29011780"
          minLength: 1
          type: string
        currency:
          description: ISO 4217 currency code.
          examples:
            - BRL
          type: string
        domicileIfIspb:
          description: Domicile FI ISPB (bank where the merchant receives funds), 8 characters.
          examples:
            - "60701190"
          minLength: 1
          type: string
        dueDate:
          description: Settlement due date, date-only (YYYY-MM-DD).
          examples:
            - "2026-06-15"
          minLength: 1
          type: string
        establishmentCode:
          description: Merchant establishment (EC) code.
          examples:
            - EC-000123
          type: string
        externalId:
          description: Client-side unique identifier for the operation (idempotent external reference).
          examples:
            - acq-ext-2026-06-0001
          minLength: 1
          type: string
        installmentNumber:
          description: This installment's sequence number.
          examples:
            - 1
          format: int32
          type: integer
        installments:
          description: Total number of installments; at least 1. The ceiling of 99 applies only to an enabled operation type and is enforced by the use case.
          examples:
            - 3
          format: int32
          minimum: 1
          type: integer
        intakeMode:
          description: Intake mode; defaults to api_jsonl when omitted.
          examples:
            - api_jsonl
          type: string
        metadata:
          additionalProperties: {}
          description: Free-form client metadata attached to the operation.
          type: object
        operationType:
          description: Operation type driving the settlement flow.
          examples:
            - CREDIT
          minLength: 1
          type: string
        originalOperationId:
          description: Id (UUID) of the operation a CANCELLATION targets.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        participantId:
          description: Participant id (UUID) that owns this operation.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          minLength: 1
          type: string
        participantRole:
          description: Participant role in the settlement.
          examples:
            - ACQUIRER
          minLength: 1
          type: string
        pvCode:
          description: Merchant (PontoVenda) code.
          examples:
            - PV-000123
          type: string
        pvDocument:
          description: Merchant CPF/CNPJ document (regulated PII; never logged in the clear).
          examples:
            - "12345678000195"
          type: string
        pvName:
          description: Merchant (PontoVenda) legal/trade name.
          examples:
            - Loja Exemplo LTDA
          type: string
        pvPersonType:
          description: Merchant person type (natural or legal).
          examples:
            - J
          type: string
        reasonCategory:
          description: Numeric MotvCanc cancellation reason ('1'..'4'); required for operationType=CANCELLATION.
          examples:
            - "4"
          type: string
        settlementIfIspb:
          description: Settlement FI ISPB (moves reserves at the STR), 8 characters; optional.
          examples:
            - "60746948"
          type: string
        transactionDate:
          description: Business transaction date, date-only (YYYY-MM-DD).
          examples:
            - "2026-06-15"
          minLength: 1
          type: string
        value:
          description: Operation amount in minor units (centavos); strictly positive.
          examples:
            - 150000
          format: int64
          minimum: 1
          type: integer
      required:
        - externalId
        - operationType
        - creditorIspb
        - domicileIfIspb
        - value
        - installments
        - dueDate
        - transactionDate
        - participantId
        - participantRole
      type: object
    CreateOperationResponse:
      additionalProperties: false
      properties:
        externalId:
          description: Echoed client-side external identifier.
          examples:
            - acq-ext-2026-06-0001
          type: string
        id:
          description: Created operation id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        meta:
          $ref: "#/components/schemas/CreateOperationMeta"
          description: Response envelope metadata (requestId + timestamp).
        state:
          description: Initial lifecycle state of the created operation.
          examples:
            - CREATED
          type: string
      required:
        - id
        - state
        - externalId
        - meta
      type: object
    CreateParticipantRequest:
      additionalProperties: false
      properties:
        active:
          description: Whether the participant is active; defaults to true when omitted.
          examples:
            - true
          type:
            - boolean
            - "null"
        bcbCode:
          description: Participant code at the Banco Central.
          examples:
            - "0001"
          maxLength: 10
          type: string
        document:
          description: "Participant CNPJ: absent, empty, or exactly 14 unformatted positions (digits or letters)."
          examples:
            - "12345678000199"
          pattern: ^$|^.{14}$
          type: string
        ispb:
          description: Participant ISPB (8-character identifier in the Brazilian payment system).
          examples:
            - "29011780"
          type: string
        metadata:
          additionalProperties: {}
          description: Free-form tenant metadata key/value pairs.
          type: object
        name:
          description: Participant legal name.
          examples:
            - Acquirer Example S.A.
          maxLength: 255
          minLength: 1
          type: string
        nucleaCode:
          description: Participant code assigned by Núclea.
          examples:
            - NU12345
          maxLength: 20
          type: string
        type:
          description: Participant role/type in the card-settlement flow.
          examples:
            - ACQUIRER
          minLength: 1
          type: string
        varreduraOptIn:
          description: Whether the participant adhered to the ASLC050/051 varredura (OP108 §13; adesão is optional). Defaults to false when omitted — no sweep file is addressed to a participant that has not adhered.
          examples:
            - false
          type:
            - boolean
            - "null"
      required:
        - type
        - name
      type: object
    CreateWebhookRequest:
      additionalProperties: false
      properties:
        active:
          description: Whether the subscription is active and eligible for delivery. Omit the field to create an active subscription; send false to register one that is not delivered to until it is activated.
          examples:
            - true
          type:
            - boolean
            - "null"
        description:
          description: Optional human-readable label for the subscription.
          examples:
            - Primary settlement consumer
          type: string
        events:
          description: Business event types this subscription is delivered.
          examples:
            -   - operation.settled
                - operation.rejected
          items:
            type: string
          type:
            - array
            - "null"
        headers:
          additionalProperties:
            type: string
          description: Optional static HTTP headers added to every delivery request to this endpoint.
          type: object
        secret:
          description: Raw signing secret used only to derive the SHA-256 HMAC signing key; never persisted or echoed in cleartext. In BYOC the real signing secret comes from the client's Kubernetes Secret.
          type: string
        timeoutSeconds:
          description: Optional per-delivery HTTP timeout in seconds; omitted or zero applies the service default (10s).
          examples:
            - 10
          format: int32
          minimum: 0
          type: integer
        url:
          description: HTTPS endpoint that receives webhook deliveries for the request tenant.
          examples:
            - https://client.example.com/webhooks/slc
          format: uri
          type: string
      required:
        - url
        - events
      type: object
    DecideNonSettlorRequest:
      additionalProperties: false
      properties:
        announcedAmount:
          description: The announced amount you are answering for, as a decimal string. It must EQUAL the amount the câmara announced or the command is refused with 422. Compared as a decimal, so "100.1" and "100.10" are the same money.
          examples:
            - "1234.56"
          type: string
        decision:
          description: CONFIRM or REJECT (case-insensitive). The câmara titles this event "confirmação ou rejeição", which is why REJECT is the word here and DIVERGE is the word on a result.
          examples:
            - CONFIRM
          type: string
      required:
        - decision
        - announcedAmount
      type: object
    DecideResultRequest:
      additionalProperties: false
      properties:
        announcedAmount:
          description: "The announced amount you are answering for, as a decimal string (e.g. \"1234.56\"). It must EQUAL the amount the câmara announced or the command is refused with 422: a confirmation that does not say what it confirms is not auditable. Compared as a decimal, so \"100.1\" and \"100.10\" are the same money."
          examples:
            - "1234.56"
          type: string
        decision:
          description: CONFIRM or DIVERGE (case-insensitive). CONFIRM accepts the announced result; DIVERGE disputes it. Both ride the same wire tag; the product words differ because the câmara's own event titles them differently.
          examples:
            - CONFIRM
          type: string
      required:
        - decision
        - announcedAmount
      type: object
    DeliveryResponse:
      additionalProperties: false
      properties:
        attemptNumber:
          description: 1-based attempt number, incremented on each retry.
          examples:
            - 2
          format: int32
          type: integer
        createdAt:
          description: Delivery creation timestamp and partition key (RFC3339, UTC); a replay addresses the row by this value.
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        deliveredAt:
          description: Timestamp the delivery succeeded (RFC3339, UTC); null until delivered.
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        eventId:
          description: Source business-event id (UUID).
          examples:
            - 018f8a3e-7d1b-7a2c-8b6e-9f0a1c2d3e4f
          type: string
        eventType:
          description: Business event type that triggered this delivery.
          examples:
            - operation.settled
          type: string
        httpStatus:
          description: HTTP status code returned by the consumer endpoint; null when no response was received.
          examples:
            - 200
          format: int32
          type:
            - integer
            - "null"
        id:
          description: Delivery id (UUID).
          examples:
            - 0190b5a0-0000-7000-8000-0000000000dd
          type: string
        nextRetryAt:
          description: Scheduled time of the next retry (RFC3339, UTC); null when no retry is pending.
          examples:
            - "2026-06-15T08:00:00Z"
          format: date-time
          type:
            - string
            - "null"
        responseTimeMs:
          description: Consumer response time in milliseconds; null when no response was received.
          examples:
            - 142
          format: int32
          type:
            - integer
            - "null"
        state:
          description: Delivery lifecycle state (e.g. DELIVERED, FAILED, RETRYING, PENDING).
          examples:
            - DELIVERED
          type: string
        subscriptionId:
          description: Owning subscription id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
      required:
        - id
        - subscriptionId
        - eventId
        - eventType
        - state
        - attemptNumber
        - httpStatus
        - responseTimeMs
        - nextRetryAt
        - deliveredAt
        - createdAt
      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
    DlqEntryResponse:
      additionalProperties: false
      properties:
        id:
          description: Dead-letter entry id.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        messageType:
          description: Business message type of the parked message.
          examples:
            - operation.created
          type: string
        queue:
          description: Dead-letter queue the entry is parked on.
          examples:
            - operations.intake.dlq
          type: string
        reason:
          description: Reason the message was dead-lettered.
          examples:
            - handler returned error after max retries
          type: string
        sourceQueue:
          description: Original queue the message was consumed from before parking.
          examples:
            - operations.intake
          type: string
      required:
        - id
        - queue
      type: object
    DlqListResponse:
      additionalProperties: false
      properties:
        items:
          description: Parked dead-letter entries for the request tenant on the given queue.
          items:
            $ref: "#/components/schemas/DlqEntryResponse"
          type: array
      required:
        - items
      type: object
    DlqReplayResponse:
      additionalProperties: false
      properties:
        id:
          description: Id of the replayed dead-letter entry.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        queue:
          description: Dead-letter queue the replayed entry was parked on.
          examples:
            - operations.intake.dlq
          type: string
        status:
          description: Replay acknowledgement status.
          examples:
            - REPLAYED
          type: string
      required:
        - queue
        - id
        - status
      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
    FileIntakeRequest:
      additionalProperties: false
      properties:
        content:
          description: Received file bytes, base64-encoded (standard encoding).
          examples:
            - PEFTTENET0M+PC9BU0xDRE9DPg==
          minLength: 1
          type: string
        intakeMode:
          description: "Intake mode: aslc_passthrough (opaque already-signed artifact) or aslc_xml (not implemented, 501)."
          enum:
            - aslc_xml
            - aslc_passthrough
          examples:
            - aslc_passthrough
          type: string
        numCtrlEmis:
          description: Optional client correlation/reference value; written verbatim to files.control_number (max 100 chars). Not an idempotency key.
          examples:
            - CTRL-20260615-0001
          maxLength: 100
          type: string
        participantId:
          description: Uploading participant id (UUID); validated to exist, tenant-scoped. Never tenant identity.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          format: uuid
          type: string
        reasonForPassthrough:
          description: Optional free-text reason the artifact took the opaque passthrough path.
          examples:
            - client pre-signed artifact
          type: string
        receivedFilename:
          description: Optional original filename the participant sent; recorded for audit (max 255 chars).
          examples:
            - ASLC027.xml
          maxLength: 255
          type: string
      required:
        - intakeMode
        - content
        - participantId
      type: object
    FileResponse:
      additionalProperties: false
      properties:
        createdAt:
          description: Timestamp the file row was created (RFC3339).
          examples:
            - "2026-06-15T07:50:00Z"
          type: string
        id:
          description: File id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        intakeMode:
          description: Intake mode the file was received under.
          examples:
            - aslc_passthrough
          type: string
        operationIds:
          description: Operation ids (UUIDs) linked to this file; always a non-nil array (empty when none).
          items:
            type: string
          type: array
        status:
          description: File lifecycle status.
          examples:
            - RECEIVED
          type: string
      required:
        - id
        - intakeMode
        - status
        - operationIds
        - createdAt
      type: object
    FundingAckResponse:
      additionalProperties: false
      properties:
        ackedAt:
          description: When the client said it acked (RFC3339). Omitted when the client sent none.
          type: string
        amountCents:
          description: The amount the client reported, in cents, echoed back unchanged.
          format: int64
          type: integer
        errorDetail:
          description: The failure reason the client gave for a FAILED result, verbatim. Omitted when the client gave none.
          type: string
        id:
          description: The recorded ack's id.
          type: string
        instructionId:
          description: The settlement instruction the ack was recorded against.
          type: string
        ldl0022Ref:
          description: The client's own reference to its LDL0022 (IF->STR), outside the SLC. Omitted when the client sent none.
          type: string
        recordedAt:
          description: When the SLC recorded the ack (RFC3339). This is the ordering key.
          type: string
        result:
          description: "The result the client reported: SENT (deposited) or FAILED (could not)."
          type: string
      required:
        - id
        - instructionId
        - result
        - amountCents
        - recordedAt
      type: object
    LBTRPaginationMeta:
      additionalProperties: false
      properties:
        hasNext:
          description: True when the returned page filled the requested limit.
          examples:
            - false
          type: boolean
        page:
          description: 1-based page number derived from the offset.
          examples:
            - 1
          format: int64
          type: integer
        perPage:
          description: Requested page size.
          examples:
            - 50
          format: int64
          type: integer
      required:
        - page
        - perPage
        - hasNext
      type: object
    ListArrangementsResponse:
      additionalProperties: false
      properties:
        items:
          description: Arrangements in this page, newest first.
          items:
            $ref: "#/components/schemas/ArrangementResponse"
          type: array
      required:
        - items
      type: object
    ListCancellationRelayIntentsResponse:
      additionalProperties: false
      properties:
        items:
          description: Unresolved repasse intentions in this page, oldest first.
          items:
            $ref: "#/components/schemas/RelayIntentResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/RelayIntentPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListClearingPositionsResponse:
      additionalProperties: false
      properties:
        items:
          description: Clearing positions in this page.
          items:
            $ref: "#/components/schemas/ClearingPositionResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/ClearingPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListCommandsResponse:
      additionalProperties: false
      properties:
        items:
          description: This page of commands, newest first.
          items:
            $ref: "#/components/schemas/CommandResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/LBTRPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListDeliveriesResponse:
      additionalProperties: false
      properties:
        items:
          description: The subscription's delivery attempts (including retries).
          items:
            $ref: "#/components/schemas/DeliveryResponse"
          type: array
      required:
        - items
      type: object
    ListFailedAcksResponse:
      additionalProperties: false
      properties:
        items:
          description: Recorded acks in this page, newest first.
          items:
            $ref: "#/components/schemas/FundingAckResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/AckPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListInstructionAcksResponse:
      additionalProperties: false
      properties:
        instructionId:
          description: The settlement instruction these acks belong to.
          type: string
        items:
          description: This page of the instruction's recorded acks, NEWEST FIRST, both SENT and FAILED — so a FAILED-then-SENT recovery reads as the sequence it is.
          items:
            $ref: "#/components/schemas/FundingAckResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/AckPaginationMeta"
          description: Pagination metadata for this page. An instruction normally holds a handful of acks, but the count is client-controlled, so the page is explicit and hasNext says whether older acks remain.
      required:
        - instructionId
        - items
        - pagination
      type: object
    ListNonSettlorOperationsResponse:
      additionalProperties: false
      properties:
        items:
          description: This page of announced operations, newest movement date first.
          items:
            $ref: "#/components/schemas/AnnouncedNonSettlorOperationResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/LBTRPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListOperationsResponse:
      additionalProperties: false
      properties:
        items:
          description: Page of operation summaries for the request tenant.
          items:
            $ref: "#/components/schemas/OperationSummary"
          type: array
        pagination:
          $ref: "#/components/schemas/PaginationMeta"
          description: Pagination envelope for the returned page.
      required:
        - items
        - pagination
      type: object
    ListParticipantsResponse:
      additionalProperties: false
      properties:
        items:
          description: Participants in this page, newest first.
          items:
            $ref: "#/components/schemas/ParticipantResponse"
          type: array
      required:
        - items
      type: object
    ListReportsResponse:
      additionalProperties: false
      properties:
        items:
          description: Generated/available reports for the request tenant, newest first (empty array when none).
          items:
            $ref: "#/components/schemas/ReportResponse"
          type: array
      required:
        - items
      type: object
    ListResultsResponse:
      additionalProperties: false
      properties:
        items:
          description: This page of announced results, newest movement date first.
          items:
            $ref: "#/components/schemas/AnnouncedResultResponse"
          type: array
        pagination:
          $ref: "#/components/schemas/LBTRPaginationMeta"
          description: Pagination metadata for this page.
      required:
        - items
        - pagination
      type: object
    ListWebhooksResponse:
      additionalProperties: false
      properties:
        items:
          description: The request tenant's webhook subscriptions.
          items:
            $ref: "#/components/schemas/WebhookResponse"
          type: array
      required:
        - items
      type: object
    OperationDetailResponse:
      additionalProperties: false
      properties:
        arrangementCode:
          description: Payment arrangement (arranjo) code.
          examples:
            - "0245"
          type: string
        aslcType:
          description: ASLC message type materialized for this operation.
          examples:
            - ASLC027
          type: string
        batchId:
          description: Batch id when created via the NDJSON batch endpoint.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        cancellationTargetOperationId:
          description: Id (UUID) of the operation a CANCELLATION targets; null for every other type.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type:
            - string
            - "null"
        confirmationWindowClosedAt:
          description: Instant the IF Domicílio confirmation window closed without an answer for this operation (RFC3339); null unless overdueConfirmation is true.
          examples:
            - "2026-09-11T21:30:00Z"
          type:
            - string
            - "null"
        createdAt:
          description: Creation timestamp (RFC3339).
          examples:
            - "2026-06-15T10:50:00Z"
          type: string
        creditorIspb:
          description: Creditor (acquirer) ISPB, 8 characters.
          examples:
            - "29011780"
          type: string
        currency:
          description: ISO 4217 currency code.
          examples:
            - BRL
          type: string
        domicileIfIspb:
          description: Domicile FI ISPB (bank where the merchant receives funds), 8 characters.
          examples:
            - "60701190"
          type: string
        dueDate:
          description: Settlement due date (RFC3339); null when not set.
          examples:
            - "2026-06-15T00:00:00Z"
          type:
            - string
            - "null"
        eslcErrors:
          description: Recorded Núclea business error codes (empty array when none).
          items:
            type: string
          type: array
        externalId:
          description: Client-side external identifier.
          examples:
            - acq-ext-2026-06-0001
          type: string
        id:
          description: Operation id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        installmentNumber:
          description: This installment's sequence number.
          examples:
            - 1
          format: int32
          type: integer
        installments:
          description: Total number of installments.
          examples:
            - 3
          format: int32
          type: integer
        intakeMode:
          description: Intake mode the operation was received through.
          examples:
            - api_jsonl
          type: string
        lastError:
          description: All recorded Núclea business error codes for the operation, joined into one comma-separated string; null when none. Read eslcErrors on this body for the codes as an array.
          examples:
            - ESLC0029, ESLC0097
          type:
            - string
            - "null"
        nuliquid:
          description: Núclea-assigned NUliquid (21 positions); null until assigned.
          examples:
            - "202606150000000000001"
          type:
            - string
            - "null"
        operationType:
          description: Operation type.
          examples:
            - CREDIT
          type: string
        overdueConfirmation:
          description: "True when the IF Domicílio confirmation window for this operation type has closed and the operation is still FORWARDED with no ASLC023/ASLC033 back. A read fact, not a state: the operation stays FORWARDED and a late confirmation still settles."
          examples:
            - false
          type: boolean
        participantId:
          description: Owning participant id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        participantRole:
          description: Participant role in the settlement.
          examples:
            - ACQUIRER
          type: string
        reasonCategory:
          description: Numeric MotvCanc cancellation reason ('1'..'4'); null unless a CANCELLATION.
          examples:
            - "4"
          type:
            - string
            - "null"
        settlementIfIspb:
          description: Settlement FI ISPB, 8 characters; null when not set.
          examples:
            - "60746948"
          type:
            - string
            - "null"
        state:
          description: Lifecycle state.
          examples:
            - SETTLED
          type: string
        stuckSince:
          description: Timestamp since the operation has been internally stuck (RFC3339); null when not stuck.
          examples:
            - "2026-06-15T11:00:00Z"
          type:
            - string
            - "null"
        transactionDate:
          description: Business transaction date (RFC3339).
          examples:
            - "2026-06-15T00:00:00Z"
          type: string
        updatedAt:
          description: Last-update timestamp (RFC3339).
          examples:
            - "2026-06-15T13:10:00Z"
          type: string
        value:
          description: Operation amount in minor units (centavos).
          examples:
            - 150000
          format: int64
          type: integer
        waitingFor:
          description: "What the operation is waiting on, and therefore which recovery verb applies. transport/nuclea_ack/if_confirmation are external waits (reconcile or wait). parked means an outbound transmit claim is held because the attempt budget was exhausted and nothing reached Núclea: recover with POST /v1/connectivity/unpark. in_flight means the file IS at Núclea and the local transition failed: reconcile with Núclea, then POST /v1/operations/{operationId}/advance, and NEVER un-park it. null names NO verb: it means no external dependency is named for this state — the operation is terminal, or the wait is internal (CREATED/ACCEPTED, where advance/requeue applies), or it awaits a counterpart this vocabulary does not name yet (CONFIRMED awaits the funding ack plus the Núclea cycle close; SETTLED awaits the D+1 return file). Pair a null with state before choosing an action."
          enum:
            - transport
            - nuclea_ack
            - if_confirmation
            - parked
            - in_flight
            - null
          examples:
            - nuclea_ack
          type:
            - string
            - "null"
      required:
        - id
        - externalId
        - operationType
        - state
        - participantId
        - participantRole
        - settlementIfIspb
        - value
        - currency
        - installments
        - installmentNumber
        - dueDate
        - transactionDate
        - nuliquid
        - intakeMode
        - eslcErrors
        - reasonCategory
        - cancellationTargetOperationId
        - createdAt
        - updatedAt
        - waitingFor
        - stuckSince
        - lastError
        - overdueConfirmation
        - confirmationWindowClosedAt
      type: object
    OperationHistoryResponse:
      additionalProperties: false
      properties:
        items:
          description: State-transition entries ordered oldest first.
          items:
            $ref: "#/components/schemas/StateHistoryEntry"
          type: array
      required:
        - items
      type: object
    OperationSummary:
      additionalProperties: false
      properties:
        arrangementCode:
          description: Payment arrangement (arranjo) code.
          examples:
            - "0245"
          type: string
        batchId:
          description: Batch id when created via the NDJSON batch endpoint.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        createdAt:
          description: Creation timestamp (RFC3339).
          examples:
            - "2026-06-15T10:50:00Z"
          type: string
        currency:
          description: ISO 4217 currency code.
          examples:
            - BRL
          type: string
        externalId:
          description: Client-side external identifier.
          examples:
            - acq-ext-2026-06-0001
          type: string
        id:
          description: Operation id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        intakeMode:
          description: Intake mode the operation was received through.
          examples:
            - api_jsonl
          type: string
        nuliquid:
          description: Núclea-assigned NUliquid (21 positions); null until assigned.
          examples:
            - "202606150000000000001"
          type:
            - string
            - "null"
        operationType:
          description: Operation type.
          examples:
            - CREDIT
          type: string
        participantRole:
          description: Participant role in the settlement.
          examples:
            - ACQUIRER
          type: string
        state:
          description: Lifecycle state.
          examples:
            - SETTLED
          type: string
        transactionDate:
          description: Business transaction date (RFC3339).
          examples:
            - "2026-06-15T00:00:00Z"
          type: string
        value:
          description: Operation amount in minor units (centavos).
          examples:
            - 150000
          format: int64
          type: integer
      required:
        - id
        - externalId
        - operationType
        - state
        - nuliquid
        - value
        - currency
        - intakeMode
        - participantRole
        - transactionDate
        - createdAt
      type: object
    OutboxRedispatchResponse:
      additionalProperties: false
      properties:
        id:
          description: Outbox entry id (preserved across redispatch; the event is never recreated).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        redispatched:
          description: True when a terminally-INVALID row was reset to PENDING; false when the row was left untouched.
          examples:
            - true
          type: boolean
        status:
          description: Outbox row status after the operation.
          examples:
            - PENDING
          type: string
      required:
        - id
        - redispatched
        - status
      type: object
    PaginationMeta:
      additionalProperties: false
      properties:
        hasNext:
          description: True when the returned page filled the requested limit (page-full heuristic).
          examples:
            - true
          type: boolean
        page:
          description: 1-based page number derived from the offset.
          examples:
            - 1
          format: int64
          type: integer
        perPage:
          description: Requested page size.
          examples:
            - 50
          format: int64
          type: integer
      required:
        - page
        - perPage
        - hasNext
      type: object
    ParticipantOperationalStatusResponse:
      additionalProperties: false
      properties:
        ispb:
          description: The participant's ISPB (8 characters) — the key the PAG0101 notice arrived under and the key the submission gate evaluates. Null when the participant has no ISPB registered, in which case it can never receive a notice.
          examples:
            - "12345678"
          type:
            - string
            - "null"
        nonOperating:
          description: Whether the submission gate blocks this participant. Read with the SAME key (the participant's ISPB) and the SAME predicate the gate uses, so it cannot disagree with it. NO_NOTICE is false — no notice does not block.
          examples:
            - true
          type: boolean
        previousStatus:
          description: "What the PREVIOUS row for this ISPB carried — a REWRITE marker, not a transition. PAG0101 is a recurring full-roster snapshot (at least 2 per business day) and there is no insert-only-on-change guard, so for a stable institution this equals status on essentially every read; a differing value is the exception. Diagnostic only: the submission gate reads status. Null on a first-ever notice or a NO_NOTICE answer."
          enum:
            - ACTIVE
            - SUSPENDED
            - SPECIAL_REGIME
            - null
          examples:
            - ACTIVE
          type:
            - string
            - "null"
        receivedAt:
          description: When the notice was recorded (RFC3339 UTC); null on a NO_NOTICE answer.
          examples:
            - "2026-08-11T05:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        source:
          description: Message type the status came from; null on a NO_NOTICE answer.
          examples:
            - PAG0101
          type:
            - string
            - "null"
        sourceMessageId:
          description: Originating RSFN message id — the value to grep for in the logs to find the notice that caused this status. Null on a NO_NOTICE answer.
          examples:
            - "29011780260628000000050"
          type:
            - string
            - "null"
        status:
          description: "Latest operational status: ACTIVE, SUSPENDED, SPECIAL_REGIME, or NO_NOTICE when the participant exists but no PAG0101 has ever been recorded for it."
          enum:
            - ACTIVE
            - SUSPENDED
            - SPECIAL_REGIME
            - NO_NOTICE
          examples:
            - SUSPENDED
          type: string
      required:
        - ispb
        - status
        - previousStatus
        - nonOperating
        - source
        - sourceMessageId
        - receivedAt
      type: object
    ParticipantResponse:
      additionalProperties: false
      properties:
        active:
          description: Whether the participant is active.
          examples:
            - true
          type: boolean
        bcbCode:
          description: Participant code at the Banco Central.
          examples:
            - "0001"
          type: string
        connectivityOk:
          description: Last connectivity-probe result; null until a probe runs.
          examples:
            - true
          type:
            - boolean
            - "null"
        createdAt:
          description: Creation timestamp (RFC3339 UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        document:
          description: Participant CNPJ (exactly 14 unformatted positions; accepts digits or letters).
          examples:
            - "12345678000199"
          type: string
        id:
          description: Participant id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        ispb:
          description: Participant ISPB (8-character identifier).
          examples:
            - "29011780"
          type: string
        lastConnectivityAt:
          description: Timestamp of the last connectivity probe (RFC3339 UTC); null until a probe runs.
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        metadata:
          additionalProperties: {}
          description: Free-form tenant metadata key/value pairs.
          type: object
        name:
          description: Participant legal name.
          examples:
            - Acquirer Example S.A.
          type: string
        nucleaCode:
          description: Participant code assigned by Núclea.
          examples:
            - NU12345
          type: string
        type:
          description: Participant role/type in the card-settlement flow.
          examples:
            - ACQUIRER
          type: string
        updatedAt:
          description: Last-update timestamp (RFC3339 UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        varreduraOptIn:
          description: Whether the participant adhered to the ASLC050/051 varredura (OP108 §13). False means no sweep file is addressed to it.
          examples:
            - false
          type: boolean
      required:
        - id
        - type
        - name
        - active
        - varreduraOptIn
        - connectivityOk
        - lastConnectivityAt
        - createdAt
        - updatedAt
      type: object
    ReconcileRequest:
      additionalProperties: false
      properties:
        participantIspb:
          description: ISPB (8 characters) the SLC0908 consulta is run on behalf of. A resource selector for the counterpart node, not an identity claim.
          examples:
            - "12345678"
          type: string
        reason:
          description: Audit justification (mandatory; enforced by the domain). At most 1024 characters. This verb takes no evidence — the counterpart's answer is the evidence.
          examples:
            - operation stuck at FORWARDED after the ASLC023 window closed
          maxLength: 1024
          type: string
      type: object
    ReconcileResponse:
      additionalProperties: false
      properties:
        action:
          description: "Outcome class: IN_SYNC (the two ledgers already agreed, nothing written) or SYNCHRONIZED (the local record was advanced)."
          enum:
            - IN_SYNC
            - SYNCHRONIZED
          examples:
            - SYNCHRONIZED
          type: string
        controlNumber:
          description: Counterpart control number correlating the operation, when the answer carried one.
          examples:
            - CTRL-0042
          type: string
        counterpartStatus:
          description: The counterpart's RAW SLC0908 settlement status, echoed verbatim rather than re-rendered through this service's vocabulary.
          examples:
            - CONFIRMED
          type: string
        localState:
          description: Local state after the reconcile.
          examples:
            - CONFIRMED
          type: string
        operationId:
          description: Operation id (UUID) that was reconciled.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        previousState:
          description: Local state before the reconcile. Equal to localState on an IN_SYNC run.
          examples:
            - FORWARDED
          type: string
        reconciledBy:
          description: Authenticated subject who requested the reconcile, taken from the validated request identity and never from the payload.
          examples:
            - ops@acquirer.com
          type: string
        trigger:
          description: Transition trigger (always NUCLEA_RECONCILED). Absent on an IN_SYNC run, where no transition was persisted.
          examples:
            - NUCLEA_RECONCILED
          type: string
      required:
        - operationId
        - action
        - previousState
        - localState
        - counterpartStatus
        - reconciledBy
      type: object
    RecordAckRequest:
      additionalProperties: false
      properties:
        ackedAt:
          description: When the client reported the ack (RFC3339). Omitted stores NULL.
          examples:
            - "2026-06-28T11:00:00Z"
          type: string
        amountCents:
          description: Deposited amount in cents.
          examples:
            - 5011
          format: int64
          type: integer
        errorDetail:
          description: Failure reason when result is FAILED.
          examples:
            - insufficient reserves
          type: string
        ldl0022Ref:
          description: Client reference to its LDL0022 (IF->STR); recorded for audit, outside the SLC.
          examples:
            - LDL0022-2026-06-28-000123
          type: string
        result:
          description: "Client deposit result: SENT (deposited) or FAILED (could not). Case-insensitive — the value is upper-cased before validation, so \"sent\"/\"failed\" are accepted (intentionally lenient)."
          examples:
            - SENT
          type: string
      required:
        - result
      type: object
    RecordAckResponse:
      additionalProperties: false
      properties:
        instructionId:
          description: The settlement instruction id the ack was recorded against.
          type: string
        result:
          description: The accepted ack result (SENT/FAILED), upper-cased.
          type: string
        state:
          description: The resulting instruction state — present ONLY when this ack drove the transition (always ACKED). Omitted when transitioned is false; do not infer a state from the result.
          type: string
        transitioned:
          description: Whether this ack drove the instruction to ACKED. True only for a SENT ack that matched an instruction in PENDING or NOTIFIED; false for FAILED and for a SENT ack against an instruction not in PENDING/NOTIFIED (already acked/settled). The ack is recorded either way.
          type: boolean
      required:
        - instructionId
        - result
        - transitioned
      type: object
    RecoveryActionResponse:
      additionalProperties: false
      properties:
        action:
          description: Recovery action that was triggered.
          examples:
            - dispatch
          type: string
        participantIspb:
          description: Participant ISPB (8-character identifier); present only for the reprocess action.
          examples:
            - "12345678"
          type: string
      required:
        - action
      type: object
    RecoveryUnparkRequest:
      additionalProperties: false
      properties:
        confirmedNotAtNuclea:
          description: Set ONLY after reconciling with Nuclea and confirming the file was NOT accepted. Without it, an operation whose transmit hold is in_flight is refused with 409, because releasing it would re-submit an accepted settlement file. With it, those ids are released too and the decision is logged at ERROR with your reason. Nuclea's synchronous 202 means "accepted for processing", not settled, so this case is real - but it is the caller's finding, never a default.
          examples:
            - false
          type: boolean
        operationIds:
          description: Parked operation ids to un-park. Enumerate them with GET /v1/operations?transmitHold=parked, which is the authoritative, paginated, tenant-scoped list; the operation.forward_rejected alert (payload operationIds) and the park's ERROR log field parked_operation_ids are first-response excerpts of the same set. 1..500 UUIDs.
          examples:
            -   - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          items:
            format: uuid
            type: string
          maxItems: 500
          minItems: 1
          type:
            - array
            - "null"
        reason:
          description: How it was confirmed that Nuclea did not accept the file. REQUIRED when confirmedNotAtNuclea is true (a cross-field rule no JSON Schema keyword can state, so it is enforced by the use case as a coded 422); it is the audit record of who decided to release a possibly-in-flight settlement.
          examples:
            - "Nuclea support ticket 48210: file ASLC022_62313268_20260724_00006 not received; no NUliquid issued."
          maxLength: 500
          type: string
      required:
        - operationIds
      type: object
    RecoveryUnparkResponse:
      additionalProperties: false
      properties:
        action:
          description: Recovery action that was executed.
          examples:
            - unpark
          type: string
        released:
          description: Transmit claims actually cleared; these operations are back in the eligible backlog.
          examples:
            - 2
          format: int64
          type: integer
        requested:
          description: Distinct operation ids named in the request.
          examples:
            - 3
          format: int64
          type: integer
        skipped:
          description: Ids that carried no transmit claim (never parked, or already un-parked) or whose claim is younger than the safety floor.
          examples:
            - 1
          format: int64
          type: integer
      required:
        - action
        - requested
        - released
        - skipped
      type: object
    RelayIntentPaginationMeta:
      additionalProperties: false
      properties:
        hasNext:
          description: Whether another page likely exists (page-full heuristic; no total count).
          examples:
            - false
          type: boolean
        page:
          description: 1-based page number.
          examples:
            - 1
          format: int64
          type: integer
        perPage:
          description: Page size.
          examples:
            - 50
          format: int64
          type: integer
      required:
        - page
        - perPage
        - hasNext
      type: object
    RelayIntentResolutionResponse:
      additionalProperties: false
      properties:
        aslcType:
          description: Echoes the target's relay family.
          enum:
            - ASLC063
            - ASLC067
          examples:
            - ASLC063
          type: string
        controlNumber:
          description: The burnt NumCtrlEmis carried by the row, echoed so your audit record names the value you reconciled. Absent when there is no row.
          examples:
            - "2026052800019"
          type: string
        operationId:
          description: Echoes the target, so outcomes can be correlated without relying on array order.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        result:
          description: resolved = the intention was unresolved and now carries your finding. not_in_flight = it was already reconciled (state says which way), or another caller won the race (state is then absent). not_found = there is no intention for that pair at all, which usually means a wrong id or the wrong tenant.
          enum:
            - resolved
            - not_in_flight
            - not_found
          examples:
            - resolved
          type: string
        state:
          description: "The row's state as OBSERVED: your finding on a resolved one, the pre-existing resolution on an already-reconciled one. Absent for not_found, and absent when a concurrent resolution won — nothing read what replaced IN_FLIGHT, so nothing is claimed."
          examples:
            - ABANDONED
          type: string
      required:
        - operationId
        - aslcType
        - result
      type: object
    RelayIntentResponse:
      additionalProperties: false
      properties:
        aslcType:
          description: "Relay family: ASLC063 (credit) or ASLC067 (debit). The other half of the key — one operation can carry a separate repasse per family."
          enum:
            - ASLC063
            - ASLC067
          examples:
            - ASLC063
          type: string
        attempts:
          description: How many control numbers this repasse has burnt. It is also the attempt budget's counter (SCHEDULE_DISPATCH_MAX_TRANSMIT_ATTEMPTS).
          examples:
            - 3
          format: int64
          type: integer
        controlNumber:
          description: "NumCtrlEmis burnt by the latest attempt. This is the value to reconcile with Núclea: \"did you receive control number X?\"."
          examples:
            - "2026052800019"
          type: string
        createdAt:
          description: When the FIRST attempt registered its intention (RFC3339 UTC).
          examples:
            - "2026-05-28T06:30:00Z"
          type: string
        operationId:
          description: Id of the ORIGINAL movement the confirmed cancellation correlates to. Half of the key the resolution verb takes.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        state:
          description: Lifecycle state of the intention. This listing reports only IN_FLIGHT — an outcome that was never established — because that is the state that blocks the pair from relaying again.
          enum:
            - IN_FLIGHT
          examples:
            - IN_FLIGHT
          type: string
        updatedAt:
          description: When the row last changed state or recorded a new attempt (RFC3339 UTC). The listing is ordered by it, oldest first.
          examples:
            - "2026-05-28T07:50:00Z"
          type: string
      required:
        - operationId
        - aslcType
        - controlNumber
        - attempts
        - state
        - createdAt
        - updatedAt
      type: object
    RelayIntentTargetRequest:
      additionalProperties: false
      properties:
        aslcType:
          description: "Relay family, exactly as the listing reports it: ASLC063 (credit, OP107 v21.0 §8.1.1.2) or ASLC067 (debit, §8.1.2.2)."
          enum:
            - ASLC063
            - ASLC067
          examples:
            - ASLC063
          type: string
        operationId:
          description: Id of the ORIGINAL movement, exactly as the listing reports it.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          format: uuid
          type: string
      required:
        - operationId
        - aslcType
      type: object
    ReportResponse:
      additionalProperties: false
      properties:
        ackControlNumber:
          description: Núclea acknowledgement control number, omitted when absent.
          examples:
            - "20260615000012345"
          type: string
        ackReceivedAt:
          description: Timestamp the Núclea acknowledgement was received, null when not yet acknowledged (RFC3339).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        availableAt:
          description: Timestamp the report became available for pickup, null when not yet available (RFC3339).
          examples:
            - "2026-06-15T08:00:00Z"
          format: date-time
          type:
            - string
            - "null"
        category:
          description: Report category.
          examples:
            - SETTLEMENT
          type: string
        createdAt:
          description: Timestamp the report row was created (RFC3339).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        expiresAt:
          description: Timestamp the report is no longer available for pickup, null when open-ended (RFC3339).
          examples:
            - "2026-06-18T08:00:00Z"
          format: date-time
          type:
            - string
            - "null"
        filePath:
          description: Storage path of the materialized report file, omitted when absent.
          examples:
            - reports/2026/06/15/settlement-summary.pdf
          type: string
        id:
          description: Report id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        recordsCount:
          description: Number of records the report contains, null when unknown.
          examples:
            - 1200
          format: int64
          type:
            - integer
            - "null"
        referenceDate:
          description: Settlement reference date the report covers (RFC3339).
          examples:
            - "2026-06-15T00:00:00Z"
          format: date-time
          type: string
        requestId:
          description: Originating request id (UUID) that produced this report, omitted when absent.
          examples:
            - 0190b5a0-0000-7000-8000-0000000000aa
          type: string
        source:
          description: Origin of the report (e.g. the ASLC9xx intake pipeline), omitted when absent.
          examples:
            - ASLC900
          type: string
        state:
          description: Report lifecycle state.
          examples:
            - READY
          type: string
        type:
          description: Report type name.
          examples:
            - SETTLEMENT_SUMMARY
          type: string
      required:
        - id
        - type
        - category
        - referenceDate
        - state
        - ackReceivedAt
        - recordsCount
        - availableAt
        - expiresAt
        - createdAt
      type: object
    RequeueResponse:
      additionalProperties: false
      properties:
        operationId:
          description: Operation id (UUID) that was re-queued.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        state:
          description: State after the re-queue (QUEUED).
          examples:
            - QUEUED
          type: string
      required:
        - operationId
        - state
      type: object
    ResolveCancellationRelayIntentsRequest:
      additionalProperties: false
      properties:
        intents:
          description: The intentions to resolve, enumerated with GET /v1/connectivity/cancellation-relay-intents. 1..500 entries; repeats of the same (operationId, aslcType) pair are collapsed.
          items:
            $ref: "#/components/schemas/RelayIntentTargetRequest"
          maxItems: 500
          minItems: 1
          type:
            - array
            - "null"
        outcome:
          description: "The finding, one of CONFIRMED or ABANDONED. CONFIRMED = you established the file DID reach Núclea: the repasse's duty is discharged and the pair stays blocked, because relaying again would duplicate a regulatory notification. ABANDONED = you established it NEVER reached Núclea: the pair is returned to a relayable state, and the burnt control number plus the attempt count survive on the row."
          enum:
            - CONFIRMED
            - ABANDONED
          examples:
            - ABANDONED
          type: string
        reason:
          description: "How the finding was established. ALWAYS required: this is the audit record of a human overriding an automated refusal on a regulatory rail, and both findings are consequential — a wrong CONFIRMED drops the acquirer's notification for good, a wrong ABANDONED lets a second one be submitted. It is logged at ERROR with the targets."
          examples:
            - "Núclea support ticket 48210: control number 2026052800019 was never received."
          maxLength: 500
          minLength: 1
          type: string
      required:
        - outcome
        - reason
        - intents
      type: object
    ResolveCancellationRelayIntentsResponse:
      additionalProperties: false
      properties:
        action:
          description: Admin action that was executed.
          examples:
            - resolve-cancellation-relay-intent
          type: string
        items:
          description: Per-target detail, in the request's (deduplicated) order.
          items:
            $ref: "#/components/schemas/RelayIntentResolutionResponse"
          type: array
        outcome:
          description: The finding that was recorded.
          enum:
            - CONFIRMED
            - ABANDONED
          examples:
            - ABANDONED
          type: string
        requested:
          description: Distinct (operationId, aslcType) pairs named in the request.
          examples:
            - 3
          format: int64
          type: integer
        resolved:
          description: Intentions this request resolved; these now carry the finding.
          examples:
            - 2
          format: int64
          type: integer
        skipped:
          description: Pairs with no intention, or whose intention was no longer unresolved.
          examples:
            - 1
          format: int64
          type: integer
      required:
        - action
        - outcome
        - requested
        - resolved
        - skipped
        - items
      type: object
    RetransmitResponse:
      additionalProperties: false
      properties:
        action:
          description: Action that ran.
          examples:
            - retransmit
          type: string
        operationId:
          description: Operation id (UUID).
          examples:
            - 0190b5a0-0000-7000-8000-0000000000aa
          type: string
        state:
          description: Resulting operation lifecycle state.
          examples:
            - SENT
          type: string
      required:
        - operationId
        - action
        - state
      type: object
    RetryResponse:
      additionalProperties: false
      properties:
        operationId:
          description: New chained operation id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        originalOperationId:
          description: Chain root operation id (UUID) the retry descends from.
          examples:
            - 018f8a2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f
          type: string
        retryCount:
          description: Chain depth of the new operation.
          examples:
            - 1
          format: int32
          type: integer
        state:
          description: Initial lifecycle state of the new operation.
          examples:
            - CREATED
          type: string
      required:
        - operationId
        - originalOperationId
        - retryCount
        - state
      type: object
    ScheduleCreditDispatchResponse:
      additionalProperties: false
      properties:
        closesAt:
          description: Close boundary of that same instance (RFC3339 UTC). It lands on D+1 under Grade Especial 1, whose credit leg runs 03h00 D0 to 05h30 D+1 (INFO-NÚCLEA-SLC 009-2026 §4.1.b); it is reported verbatim, never wrapped back into the day.
          examples:
            - "2026-07-15T20:30:00Z"
          format: date-time
          type: string
        gate:
          description: "Which gate this instance applies. V0_CREDIT_WINDOW is the default: the single daily SCHEDULE_CREDIT_WINDOW_OPEN/_CLOSE window, evaluated against the settlement calendar — weekends, plus the dates configured in SCHEDULE_HOLIDAYS. GRID is the opt-in posture over the grid's FIXED CREDIT_DISPATCH_CYCLE_1 hours, which never read SCHEDULE_CREDIT_WINDOW_*. Both consult the same calendar; they differ in WHICH window applies. DEV_ALWAYS_OPEN is the dev-only relaxation, consulting neither clock nor calendar, unreachable under production/SaaS."
          enum:
            - V0_CREDIT_WINDOW
            - GRID
            - DEV_ALWAYS_OPEN
          examples:
            - V0_CREDIT_WINDOW
          type: string
        nextOpenAt:
          description: "Next instant the reported window opens (RFC3339 UTC). It is what makes a CLOSED posture legible: opensAt/closesAt keep naming the day's hours even after they elapsed. Under GRID and under V0_CREDIT_WINDOW alike it is rolled by the settlement calendar to the next business day, so it never names a weekend nor a date configured in SCHEDULE_HOLIDAYS. That list is the WHOLE holiday source — it has no default, so a deployment that leaves it empty gets weekend closure only and this instant can name a national holiday; under DEV_ALWAYS_OPEN it names the CONFIGURED window's next opening with no calendar at all, because that gate consults none."
          examples:
            - "2026-07-16T03:30:00Z"
          format: date-time
          type: string
        opensAt:
          description: Open boundary of the window INSTANCE the reported gate is applying (RFC3339 UTC). Normally this request's local day; for a cross-midnight window still running from the previous day it is that day's boundary, because that is the instance state describes. So while state is OPEN the invariant opensAt <= now < closesAt holds — except under DEV_ALWAYS_OPEN, whose OPEN belongs to the gate and not to the window.
          examples:
            - "2026-07-15T03:30:00Z"
          format: date-time
          type: string
        specialGrade:
          description: "Active Núclea grade (SCHEDULE_SPECIAL_GRADE). Reported under every gate: a special grade and the grid gate are mutually exclusive at boot, so 'none' next to GRID is the honest answer rather than a missing one."
          enum:
            - none
            - especial1
            - especial2
          examples:
            - none
          type: string
        state:
          description: Phase at this instant, taken from the same predicate the dispatch gate reads. Under DEV_ALWAYS_OPEN it is always OPEN, because that is what the gate answers at every instant.
          enum:
            - OPEN
            - PRE_CUTOFF
            - CLOSED
          examples:
            - OPEN
          type: string
      required:
        - gate
        - specialGrade
        - opensAt
        - closesAt
        - state
        - nextOpenAt
      type: object
    ScheduleResponse:
      additionalProperties: false
      properties:
        businessDay:
          description: True when the bank calendar considers this date a settlement business day. False on a weekend or holiday, where the window boundaries below still name the published grade hours but nothing is dispatched in them — read nextOpenAt to disambiguate.
          examples:
            - true
          type: boolean
        creditDispatch:
          $ref: "#/components/schemas/ScheduleCreditDispatchResponse"
          description: "The EFFECTIVE credit dispatch posture: which gate this instance applies and over which window. The enforced credit window is not necessarily in the grid below, so this is the authoritative answer for outbound credit."
        date:
          description: "Local São Paulo calendar date (YYYY-MM-DD) the grid was evaluated on. It is the LOCAL date, not the UTC one: the two disagree for three hours every night, which is exactly when a settlement day rolls over."
          examples:
            - "2026-07-15"
          type: string
        timezone:
          description: IANA name of the RESOLVED zone the boundaries were computed in. Normally America/Sao_Paulo; a UTC value denounces that the zone database was unavailable and every hour below is three hours off.
          examples:
            - America/Sao_Paulo
          type: string
        windows:
          description: Every window of the grid, ordered by opensAt ascending with a name ascending tie-break. Always an array — an empty grid serializes as [], never null.
          items:
            $ref: "#/components/schemas/ScheduleWindowResponse"
          type: array
      required:
        - date
        - businessDay
        - timezone
        - creditDispatch
        - windows
      type: object
    ScheduleWindowResponse:
      additionalProperties: false
      properties:
        closesAt:
          description: This day's local close boundary (RFC3339 UTC). D+1 whenever the close offset exceeds 24h.
          examples:
            - "2026-07-15T10:50:00Z"
          format: date-time
          type: string
        cutoffAt:
          description: This day's modeled STR cutoff (RFC3339 UTC), or null on a window that models no cutoff — the seven submission/receipt windows, which are never PRE_CUTOFF.
          examples:
            - "2026-07-15T10:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        name:
          description: The window kind, verbatim — the same literal the dispatch gates key on.
          examples:
            - CREDIT_DISPATCH_CYCLE_1
          type: string
        nextOpenAt:
          description: "Next instant this window opens (RFC3339 UTC), rolled by the settlement calendar to the next business day, so it never names a weekend nor a date configured in SCHEDULE_HOLIDAYS. That list is the whole holiday source and has no default: with it empty the calendar is weekends only."
          examples:
            - "2026-07-16T03:30:00Z"
          format: date-time
          type: string
        opensAt:
          description: This day's local open boundary (RFC3339 UTC). Reported even on a non-business day.
          examples:
            - "2026-07-15T03:30:00Z"
          format: date-time
          type: string
        state:
          description: Phase at this instant, verbatim from the window — the same value the dispatch gate reads, never a second opinion. PRE_CUTOFF means dispatch is still permitted but the cutoff is within the alert lead.
          enum:
            - OPEN
            - PRE_CUTOFF
            - CLOSED
          examples:
            - CLOSED
          type: string
      required:
        - name
        - opensAt
        - closesAt
        - cutoffAt
        - state
        - nextOpenAt
      type: object
    SetConfigRequest:
      additionalProperties: false
      properties:
        value:
          description: New value for the fenced config key. Scope-fenced + validated against the connectivity config catalog.
          examples:
            - cd
          minLength: 1
          type: string
      required:
        - value
      type: object
    SigningKeyImportParamsResponse:
      additionalProperties: false
      properties:
        expiresAt:
          description: Import-token expiry (RFC3339 UTC); omitted when zero.
          examples:
            - "2026-06-15T07:50:00Z"
          type: string
        importTokenBase64:
          description: Base64-encoded opaque KMS import token to pass back on the complete-import call.
          type: string
        keyId:
          description: KMS key id created for this import.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        wrappingPublicKeyBase64:
          description: Base64-encoded PUBLIC wrapping key (DER) used to wrap the private key locally.
          type: string
      required:
        - keyId
        - wrappingPublicKeyBase64
        - importTokenBase64
      type: object
    SigningKeyImportRequest:
      additionalProperties: false
      properties:
        encryptedKeyMaterialBase64:
          description: Base64-encoded wrapped private-key material (Model A — never cleartext).
          minLength: 1
          type: string
        importTokenBase64:
          description: Base64-encoded opaque KMS import token from the import-params step.
          minLength: 1
          type: string
        keyId:
          description: KMS key id returned by the import-params step.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          minLength: 1
          type: string
        participantIspb:
          description: Participant ISPB the certificate belongs to (8-character identifier).
          examples:
            - "29011780"
          minLength: 1
          type: string
        publicCertPem:
          description: PEM-encoded PUBLIC ICP-Brasil server-type certificate. Refused unless the key is RSA of at least 2048 bits and the certificate is valid right now (MAPX-OP106 §8.3.1 vii, §8.4).
          minLength: 1
          type: string
      required:
        - participantIspb
        - publicCertPem
        - keyId
        - importTokenBase64
        - encryptedKeyMaterialBase64
      type: object
    SigningKeyImportResponse:
      additionalProperties: false
      properties:
        certificateId:
          description: Stored public-certificate id.
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        kmsRef:
          description: Per-tenant KMS key reference.
          examples:
            - arn:aws:kms:us-east-1:000000000000:key/018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        status:
          description: Import result status.
          examples:
            - imported
          type: string
      required:
        - status
        - certificateId
        - kmsRef
      type: object
    StateHistoryEntry:
      additionalProperties: false
      properties:
        attributedTo:
          description: "Authenticated subject the transition is attributed to; absent when none was recorded. Only the triggers that carry attribution (MANUAL_OVERRIDE, NUCLEA_RECONCILED) record one, so it is always absent for the automatic transport transitions — but the trigger marks a transition as attribution-CAPABLE, not as attributed: the column is nullable and rows predating attribution carry the trigger with no subject. Presence does NOT mean an operator intervened — read trigger for that."
          examples:
            - ops@acquirer.com
          type: string
        attributionEvidence:
          description: "Supporting evidence recorded with the transition; absent when none was recorded. Under trigger NUCLEA_RECONCILED it carries financial data: the value is machine-rendered from the counterpart's SLC0908 answer and carries the settled amount in centavos (valueCents), the counterpart settlement key (nuliquid), its control number (controlNumber), the counterpart-reported status and the instant the consulta was read (consultedAt) — see the example for the exact shape. Every counterpart-supplied token is rendered as a quoted string, so it may contain escaped quotes and backslashes. Under trigger MANUAL_OVERRIDE the value is instead operator-supplied free text. Classify and redact this field as financial data, not as prose."
          examples:
            - SLC0908 status="SETTLED" nuliquid="202606150000000000001" controlNumber="CTRL-0042" valueCents=1234500 consultedAt=2026-06-15T10:50:00Z
          type: string
        attributionReason:
          description: Justification recorded with the transition; absent when none was recorded.
          examples:
            - counterpart reported settlement
          type: string
        fromState:
          description: Source state of the transition; null for the initial state.
          examples:
            - CREATED
          type:
            - string
            - "null"
        timestamp:
          description: Transition timestamp (RFC3339).
          examples:
            - "2026-06-15T10:50:00Z"
          type: string
        toState:
          description: Target state of the transition.
          examples:
            - QUEUED
          type: string
        trigger:
          description: Trigger that drove the transition.
          examples:
            - WINDOW_ASSIGNED
          type: string
      required:
        - fromState
        - toState
        - trigger
        - timestamp
      type: object
    SubmitPositionQueryRequest:
      additionalProperties: false
      properties:
        cnpjNLiqdant:
          description: Filter to one non-liquidante's CNPJ.
          examples:
            - "12345678000199"
          type: string
        dtMovto:
          description: The settlement business day to query (the only required field).
          examples:
            - "2026-09-22"
          type: string
        identdPartCamr:
          description: Filter to one câmara participant identifier.
          examples:
            - "00012345"
          type: string
        ispbIFLiqdant:
          description: Filter to one settlement bank's ISPB. This is the COUNTERPARTY's settlement bank, never your own.
          examples:
            - "12345678"
          type: string
        numCtrlLTROr:
          description: Filter to one câmara-minted control number.
          examples:
            - "20260922000000000041"
          type: string
        numOpLTR:
          description: Filter to one LTR operation number.
          examples:
            - "0000000000000000123"
          type: string
        sitLancLTR:
          description: "Filter to one RAW 3-digit SitLancLTR situation code, passed through verbatim. The rail publishes no product enum for it: the domain has eighteen values and a filter that understands only some of them would silently lie about the rest."
          examples:
            - "001"
          type: string
        tpDebCred:
          description: Filter to DEBIT or CREDIT entries (case-insensitive).
          examples:
            - DEBIT
          type: string
      required:
        - dtMovto
      type: object
    TestConnectivityResponse:
      additionalProperties: false
      properties:
        cdConnection:
          $ref: "#/components/schemas/ChannelStatus"
          description: "Managed file-transfer channel status (NOT_CONFIGURED)."
        certificateExpiresAt:
          description: Signing-certificate expiry (RFC3339 UTC); never populated.
          examples:
            - "2027-06-15T00:00:00Z"
          type: string
        certificateValid:
          description: Whether the signing certificate is valid (never populated).
          examples:
            - true
          type: boolean
        nucleaApi:
          $ref: "#/components/schemas/ChannelStatus"
          description: 'Núclea REST-channel connectivity probe outcome: status is OK when the probe echo round-trips and DEGRADED otherwise. The probe sent is selected by the participant role: AGEN001 for the DOMICILE_IF (IF Domicílio) role, AGEN999 for other roles.'
        participantId:
          description: Participant id (8-character ISPB).
          examples:
            - "12345678"
          type: string
        rsfnConnection:
          $ref: "#/components/schemas/ChannelStatus"
          description: "Message-broker channel status (NOT_CONFIGURED)."
      required:
        - participantId
        - cdConnection
        - rsfnConnection
        - nucleaApi
      type: object
    TestDeliveryResponse:
      additionalProperties: false
      properties:
        httpStatus:
          description: HTTP status code returned by the consumer for the synthetic test delivery.
          examples:
            - 200
          format: int64
          type: integer
        responseTimeMs:
          description: Consumer response time for the synthetic test delivery, in milliseconds.
          examples:
            - 142
          format: int64
          type: integer
        retryable:
          description: Whether a failed synthetic delivery would be retried under the retry policy.
          examples:
            - false
          type: boolean
        success:
          description: Whether the synthetic delivery was classified as successful.
          examples:
            - true
          type: boolean
      required:
        - httpStatus
        - responseTimeMs
        - success
        - retryable
      type: object
    TransmissionStatusResponse:
      additionalProperties: false
      properties:
        lastError:
          description: All recorded Núclea business error codes for the operation, joined into one comma-separated string; omitted when none. These are clearing-house business rejections, not failures of the outbound transport.
          examples:
            - ESLC0029, ESLC0097
          type: string
        operationId:
          description: Operation id (UUID).
          examples:
            - 0190b5a0-0000-7000-8000-0000000000aa
          type: string
        state:
          description: Current operation lifecycle state.
          examples:
            - SENT
          type: string
        stuckSince:
          description: Timestamp since which the operation has been stuck (RFC3339 UTC); omitted when not stuck.
          examples:
            - "2026-06-15T08:00:00Z"
          type: string
        transmitClaimedAt:
          description: In-flight transmit-claim timestamp (RFC3339 UTC); omitted when no claim is held.
          examples:
            - "2026-06-15T07:50:00Z"
          type: string
        transportKind:
          description: Active outbound transport.
          examples:
            - REST
          type: string
        waitingFor:
          description: "What the operation is waiting on, and therefore which recovery verb applies. transport/nuclea_ack/if_confirmation are external waits. parked means the outbound attempt budget was exhausted and nothing reached Núclea: recover with POST /v1/connectivity/unpark. in_flight means the file IS at Núclea and the local transition failed: reconcile, then POST /v1/operations/{operationId}/advance, and NEVER un-park it. Omitted when no external dependency is named for the state: the operation is terminal, the wait is internal (CREATED/ACCEPTED, where advance/requeue applies), or it awaits a counterpart this vocabulary does not name yet (CONFIRMED, SETTLED). An omitted value names no verb."
          enum:
            - transport
            - nuclea_ack
            - if_confirmation
            - parked
            - in_flight
          examples:
            - nuclea_ack
          type: string
      required:
        - operationId
        - state
        - transportKind
      type: object
    UpdateArrangementRequest:
      additionalProperties: false
      properties:
        active:
          description: Whether the arrangement is active. Nil leaves it unchanged.
          examples:
            - true
          type:
            - boolean
            - "null"
        code:
          description: Card-scheme arrangement code. Omitted leaves it unchanged.
          examples:
            - VCC
          maxLength: 10
          type: string
        role:
          description: Participant role for this arrangement. Omitted leaves it unchanged.
          examples:
            - ACQUIRER
          type: string
      type: object
    UpdateParticipantRequest:
      additionalProperties: false
      properties:
        active:
          description: Whether the participant is active. Nil leaves it unchanged.
          examples:
            - true
          type:
            - boolean
            - "null"
        bcbCode:
          description: Participant code at the Banco Central. Omitted leaves it unchanged.
          examples:
            - "0001"
          maxLength: 10
          type: string
        document:
          description: "Participant CNPJ: absent, empty, or exactly 14 unformatted positions (digits or letters). Omitted leaves it unchanged."
          examples:
            - "12345678000199"
          pattern: ^$|^.{14}$
          type: string
        ispb:
          description: Participant ISPB (8-character identifier). Omitted leaves it unchanged.
          examples:
            - "29011780"
          type: string
        metadata:
          additionalProperties: {}
          description: Free-form tenant metadata; a non-nil map replaces the stored value, nil leaves it unchanged.
          type: object
        name:
          description: Participant legal name. Omitted leaves it unchanged.
          examples:
            - Acquirer Example S.A.
          maxLength: 255
          type: string
        nucleaCode:
          description: Participant code assigned by Núclea. Omitted leaves it unchanged.
          examples:
            - NU12345
          maxLength: 20
          type: string
        type:
          description: Participant role/type in the card-settlement flow. Omitted leaves it unchanged.
          examples:
            - ACQUIRER
          type: string
        varreduraOptIn:
          description: Whether the participant adhered to the ASLC050/051 varredura (OP108 §13). Nil leaves it unchanged.
          examples:
            - true
          type:
            - boolean
            - "null"
      type: object
    UpdateWebhookRequest:
      additionalProperties: false
      properties:
        active:
          description: Activation flag; a pointer so null/omitted leaves the stored value unchanged.
          examples:
            - true
          type:
            - boolean
            - "null"
        description:
          description: New description; omitted leaves the stored value unchanged.
          examples:
            - Primary settlement consumer
          type: string
        events:
          description: Replacement event-type list; omitted leaves the stored list unchanged.
          examples:
            -   - operation.settled
                - operation.rejected
          items:
            type: string
          type:
            - array
            - "null"
        headers:
          additionalProperties:
            type: string
          description: Replacement static HTTP headers; omitted leaves the stored headers unchanged.
          type: object
        secret:
          description: New raw signing secret; when present it rotates the signing secret (rehashed, never stored in cleartext). Omitted leaves it unchanged.
          type: string
        timeoutSeconds:
          description: New per-delivery HTTP timeout in seconds; zero or omitted leaves it unchanged.
          examples:
            - 10
          format: int32
          minimum: 0
          type: integer
        url:
          description: New HTTPS endpoint; omitted leaves the stored value unchanged.
          examples:
            - https://client.example.com/webhooks/slc
          format: uri
          type: string
      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
    WebhookResponse:
      additionalProperties: false
      properties:
        active:
          description: Whether the subscription is active and eligible for delivery.
          examples:
            - true
          type: boolean
        createdAt:
          description: Subscription creation timestamp (RFC3339, UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        description:
          description: Human-readable label for the subscription.
          examples:
            - Primary settlement consumer
          type: string
        events:
          description: Business event types this subscription is delivered.
          examples:
            -   - operation.settled
                - operation.rejected
          items:
            type: string
          type: array
        failureCount:
          description: Cumulative count of failed delivery attempts.
          examples:
            - 3
          format: int64
          type: integer
        id:
          description: Subscription id (UUID).
          examples:
            - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
          type: string
        lastDeliveryAt:
          description: Timestamp of the most recent delivery attempt (RFC3339, UTC); null when none has occurred.
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type:
            - string
            - "null"
        lastDeliveryStatus:
          description: HTTP status code of the most recent delivery attempt; null when none has occurred.
          examples:
            - 200
          format: int32
          type:
            - integer
            - "null"
        successCount:
          description: Cumulative count of successful deliveries.
          examples:
            - 128
          format: int64
          type: integer
        updatedAt:
          description: Subscription last-update timestamp (RFC3339, UTC).
          examples:
            - "2026-06-15T07:50:00Z"
          format: date-time
          type: string
        url:
          description: HTTPS endpoint that receives webhook deliveries.
          examples:
            - https://client.example.com/webhooks/slc
          type: string
      required:
        - id
        - url
        - events
        - active
        - successCount
        - failureCount
        - lastDeliveryAt
        - lastDeliveryStatus
        - createdAt
        - updatedAt
      type: object
    XsdSchemaListResponse:
      additionalProperties: false
      properties:
        count:
          description: Number of embedded XSD schema types.
          examples:
            - 16
          format: int64
          type: integer
        schemas:
          description: Bare schema type names of the embedded official Núclea ASLC/RSFN XSDs; always a non-nil array (empty when none).
          items:
            type: string
          type: array
      required:
        - count
        - schemas
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http
info:
  description: API for Lerian SLC — the participant-side rail that connects the institution to Núclea's SLC card settlement.
  title: Lerian SLC API
  version: 1.0.0
openapi: 3.1.0
paths:
  /admin/config:
    get:
      description: "Lists the request tenant's EFFECTIVE per-tenant runtime config: every fenced connectivity key with its overridden value or the catalog default, ordered by key. RBAC: config:read; tenant is always derived from the validated request identity, never a path or payload value. Selection/policy only — no secret material."
      operationId: listTenantConfig
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigListResponse"
          description: OK
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List effective tenant config
      tags:
        - Admin
      x-required-scope: config:read
      x-mint:
        href: /pt/reference/rails/slc/list-tenant-config
  /admin/config/{key}:
    delete:
      description: "Clears the request tenant's override for a fenced config key, returning it to the catalog default. Idempotent: resetting a key with no override is a successful no-op. An off-catalog key is 404. Returns 204 No Content. RBAC: config:write; the actor and tenant are always derived from the validated request identity, never a path or payload value."
      operationId: resetTenantConfig
      parameters:
        - description: Fenced connectivity config key.
          in: path
          name: key
          required: true
          schema:
            description: Fenced connectivity config key.
            examples:
              - connectivity.file_transport
            type: string
      responses:
        "204":
          description: No Content
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Reset one tenant config key
      tags:
        - Admin
      x-required-scope: config:write
      x-mint:
        href: /pt/reference/rails/slc/reset-tenant-config
    get:
      description: "Returns the request tenant's effective value for a fenced config key: the stored override when present, else the catalog default. An off-catalog key is 404. RBAC: config:read; tenant is always derived from the validated request identity, never a path or payload value."
      operationId: getTenantConfig
      parameters:
        - description: Fenced connectivity config key.
          in: path
          name: key
          required: true
          schema:
            description: Fenced connectivity config key.
            examples:
              - connectivity.file_transport
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigEntryResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get one tenant config key
      tags:
        - Admin
      x-required-scope: config:read
      x-mint:
        href: /pt/reference/rails/slc/get-tenant-config
    put:
      description: "Persists a per-tenant override for a fenced config key. Body: {\"value\":\"...\"}. The value is scope-fenced + validated against the catalog: a missing value is a schema 422, an empty value a coded 400, an off-catalog key 404, an off-enum / non-bool value 422. RBAC: config:write; the writing actor and the tenant are always derived from the validated request identity, never a path or payload value."
      operationId: setTenantConfig
      parameters:
        - description: Fenced connectivity config key.
          in: path
          name: key
          required: true
          schema:
            description: Fenced connectivity config key.
            examples:
              - connectivity.file_transport
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetConfigRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigEntryResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Set one tenant config key
      tags:
        - Admin
      x-required-scope: config:write
      x-mint:
        href: /pt/reference/rails/slc/set-tenant-config
  /admin/dlq/{queue}:
    get:
      description: "Lists the request tenant's parked dead letters for the given queue (rsfn or sfn) NON-destructively — the messages the RSFN / SILOC ingest drivers could not process — available for administrative replay. queue is validated against the allowlist (unknown → 404). RBAC: dlq:read; tenant is always derived from the validated request identity, never a path or payload value."
      operationId: listDeadLetters
      parameters:
        - description: Dead-letter queue (rsfn or sfn). An unknown queue is 404.
          in: path
          name: queue
          required: true
          schema:
            description: Dead-letter queue (rsfn or sfn). An unknown queue is 404.
            examples:
              - rsfn
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DlqListResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List dead letters
      tags:
        - Admin
      x-required-scope: dlq:read
      x-mint:
        href: /pt/reference/rails/slc/list-dead-letters
  /admin/dlq/{queue}/{id}/replay:
    post:
      description: "Reprocesses the dead letter {id} on the given queue (rsfn or sfn) for the request tenant by re-invoking the same in-process ingest path (NOT a work-queue re-publish). Idempotent: the processed_messages dedup trap makes a re-dispatch of an already-processed message a no-op. queue is validated against the allowlist (unknown → 404); an unknown id → 404. RBAC: dlq:replay; tenant is always derived from the validated request identity, never a path or payload value."
      operationId: replayDeadLetter
      parameters:
        - description: Dead-letter queue (rsfn or sfn). An unknown queue is 404.
          in: path
          name: queue
          required: true
          schema:
            description: Dead-letter queue (rsfn or sfn). An unknown queue is 404.
            examples:
              - rsfn
            type: string
        - description: Dead-letter id. An unknown id is 404.
          in: path
          name: id
          required: true
          schema:
            description: Dead-letter id. An unknown id is 404.
            examples:
              - dl-1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DlqReplayResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Replay a dead letter
      tags:
        - Admin
      x-required-scope: dlq:replay
      x-mint:
        href: /pt/reference/rails/slc/replay-dead-letter
  /admin/outbox/{id}/redispatch:
    post:
      description: "Resets the terminally-INVALID transactional-outbox row {id} back to PENDING for the request tenant so the relay dispatcher republishes it on its next tick. The row id is PRESERVED (the event is never recreated). Idempotent: a row that is not INVALID is left untouched and returns redispatched=false with its current status — a PUBLISHED row is never re-sent. An unknown id → 404. A multi-tenant deployment answers 501. RBAC: outbox:redispatch; tenant is always derived from the validated request identity, never a path or payload value."
      operationId: redispatchOutboxEntry
      parameters:
        - description: Outbox entry id. An unknown id is 404.
          in: path
          name: id
          required: true
          schema:
            description: Outbox entry id. An unknown id is 404.
            examples:
              - ob-1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutboxRedispatchResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Redispatch an outbox entry
      tags:
        - Admin
      x-required-scope: outbox:redispatch
      x-mint:
        href: /pt/reference/rails/slc/redispatch-outbox-entry
  /v1/clearing/positions:
    get:
      description: "Lists the settlement institution's (IF Liquidante) clearing positions for the request tenant: the SLC0001 (clearing net-position notice) net position per participant by stage (PREVIEW/FINAL). This is the clearing PREVIEW/POSITION notice only — it carries NO deposit window or action. Filters: referenceDate (YYYY-MM-DD), cycle, stage. Offset/limit pagination WITHOUT a total count. RBAC: clearing:read; tenant is always derived from the validated request identity."
      operationId: listClearingPositions
      parameters:
        - description: Filter by settlement date (YYYY-MM-DD).
          explode: false
          in: query
          name: referenceDate
          schema:
            description: Filter by settlement date (YYYY-MM-DD).
            examples:
              - "2026-06-15"
            type: string
        - description: Filter by settlement cycle.
          explode: false
          in: query
          name: cycle
          schema:
            description: Filter by settlement cycle.
            examples:
              - "07:50"
            type: string
        - description: Filter by clearing stage (PREVIEW or FINAL).
          explode: false
          in: query
          name: stage
          schema:
            description: Filter by clearing stage (PREVIEW or FINAL).
            examples:
              - FINAL
            type: string
        - description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListClearingPositionsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List clearing positions
      tags:
        - Clearing
      x-required-scope: clearing:read
      x-mint:
        href: /pt/reference/rails/slc/list-clearing-positions
  /v1/connectivity/cancellation-relay-intents:
    get:
      description: "Lists the ASLC063/067 acquirer repasses (repasse ao acquirer) whose delivery to Núclea was never established, for the request tenant, oldest first. RBAC: connectivity:admin. This is the population every \"MANUAL RECONCILIATION REQUIRED\" log line and every cancellation_relay_manual_reconciliation_total increment on this leg points at: a repasse submitted whose conclusion marker was not written, an earlier attempt whose intention was already unresolved, or an attempt that provably never reached the wire whose release failed. Each row BLOCKS its (operationId, aslcType) pair from relaying again — that refusal is what stops a duplicate regulatory notification — so an operator reconciles the reported controlNumber with Núclea and closes it with POST /v1/connectivity/cancellation-relay-intents/resolve, which is the ONLY way to clear one. An empty page is the healthy day, not an error. Offset/limit pagination WITHOUT a total count; the tenant is always derived from the validated request identity."
      operationId: listCancellationRelayIntents
      parameters:
        - description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListCancellationRelayIntentsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List cancellation repasses awaiting manual reconciliation
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/list-cancellation-relay-intents
  /v1/connectivity/cancellation-relay-intents/resolve:
    post:
      description: "Records the outcome an operator ESTABLISHED for ASLC063/067 repasses whose delivery this service could not determine on its own. RBAC: connectivity:admin. It is the ONLY way to clear an unresolved repasse intention, and each clearing is one-way. CONFIRMED means you established the file DID reach Núclea: the repasse's duty is discharged and the (operationId, aslcType) pair STAYS blocked, because relaying again would duplicate a regulatory notification to the acquirer. ABANDONED means you established it NEVER reached Núclea: the pair is returned to a relayable state, while the burnt control number and the attempt count survive on the row so the attempt budget still sees what this repasse has spent. IN_FLIGHT is REFUSED as an outcome with 400 — that state belongs to the relay itself, which writes it alongside a fresh control number and a charged attempt, so re-arming a repasse through this verb would unblock a submission whose outcome is unknown and charge nothing for it. reason is ALWAYS required and is logged at ERROR with the targets: it is the audit record of a human overriding an automated refusal on a regulatory rail. There is no scope-wide form: each intention records a finding about a DIFFERENT file at Núclea, and only the caller knows which ones they checked — the same posture POST /v1/connectivity/unpark takes. Enumerate the targets with GET /v1/connectivity/cancellation-relay-intents. Idempotent: re-running reports the already-recorded intentions as not_in_flight and rewrites nothing, so a repeat can never overturn a finding. Per-target results are resolved / not_in_flight / not_found. It transmits nothing, drives no operation transition and emits no business event."
      operationId: resolveCancellationRelayIntents
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResolveCancellationRelayIntentsRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResolveCancellationRelayIntentsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Record what was established about an unresolved cancellation repasse
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/resolve-cancellation-relay-intents
  /v1/connectivity/dispatch:
    post:
      description: "Drains the QUEUED credit backlog once for the request tenant, the same work the schedule worker runs. RBAC: connectivity:admin. Window-gated internally: outside the credit window it is a no-op that still returns 202. OUTBOUND (transmits to Núclea): serialized per tenant with the schedule worker via a shared drain lock — 409 on contention, 503 when the lock backend is unavailable (never transmits unlocked)."
      operationId: recoveryDispatch
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryActionResponse"
          description: Accepted
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Trigger a credit-dispatch catch-up drain
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-dispatch
  /v1/connectivity/forward:
    post:
      description: "Drains the ACCEPTED backlog once for the request tenant, forwarding each operation to its IF Domicílio (ASLC022), the same work the schedule worker runs. RBAC: connectivity:admin. Window-gated internally: outside the forward window it is a no-op that still returns 202. OUTBOUND (transmits to Núclea): serialized per tenant with the schedule worker via a shared drain lock — 409 on contention, 503 when the lock backend is unavailable."
      operationId: recoveryForward
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryActionResponse"
          description: Accepted
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Trigger an ASLC022 forward-to-domicile catch-up drain
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-forward
  /v1/connectivity/operations/{id}/retransmit:
    post:
      description: "Re-sends a QUEUED operation's ASLC envelope over its tenant-selected active transport, reusing the transmit-claim guard so a concurrent/duplicate retransmit cannot double-send (a transmit already in flight returns 409). RBAC: connectivity:admin. The tenant is ALWAYS taken from the validated request context, never the path. The REST rail is functional; a managed file-transfer or message-broker transport is not currently available and returns 503. A non-QUEUED operation returns 409 with code SLC-0105 (INVALID_STATE_TRANSITION): the problem+json body carries only type/title/status/detail/code, and its detail is a fixed sentence that names neither the operation's current state nor QUEUED, the only state this verb accepts — read the current state from GET /v1/connectivity/operations/{id}/transmission-status."
      operationId: connectivityRetransmitOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RetransmitResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Retransmit a QUEUED operation
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/connectivity-retransmit-operation
  /v1/connectivity/operations/{id}/transmission-status:
    get:
      description: "Reports the transmission/transport status of an operation: its lifecycle state, the tenant's active outbound transport, the in-flight transmit-claim marker (transmitClaimedAt), and the derived transport diagnostics (waitingFor / stuckSince / lastError). Every field is derived from existing columns/state and the append-only state log. RBAC: connectivity:admin. The tenant is ALWAYS taken from the validated request context."
      operationId: connectivityOperationTransmissionStatus
      parameters:
        - description: Operation id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransmissionStatusResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Report an operation's transmission status
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/connectivity-operation-transmission-status
  /v1/connectivity/repoll:
    post:
      description: "Derives the participants awaiting a return for the request tenant and drives the ProcessReturn pipeline (poll PRO/RET → correlate → transition) once per participant, the same work the schedule worker runs. RBAC: connectivity:admin. INBOUND and NOT window-gated. It drives the idempotent ProcessReturn pipeline, so it runs lock-free and is safe to run concurrently with the worker."
      operationId: recoveryRepoll
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryActionResponse"
          description: Accepted
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Trigger a return-poll catch-up drain
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-repoll
  /v1/connectivity/reprocess/{participantIspb}:
    post:
      description: "Drives the ProcessReturn pipeline once for a single participant (poll PRO/RET → correlate → transition), the same per-participant work the return poll runs. RBAC: connectivity:admin. The participant ISPB is a path RESOURCE selector; the tenant is ALWAYS taken from the validated request context, never the path. INBOUND and NOT window-gated; it drives the idempotent ProcessReturn pipeline, so it runs lock-free."
      operationId: recoveryReprocess
      parameters:
        - description: Participant ISPB (8 characters, digits or uppercase letters). A non-conforming value is rejected with 400.
          in: path
          name: participantIspb
          required: true
          schema:
            description: Participant ISPB (8 characters, digits or uppercase letters). A non-conforming value is rejected with 400.
            examples:
              - "12345678"
            type: string
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryActionResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Reprocess pending returns for one participant
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-reprocess
  /v1/connectivity/status-relay:
    post:
      description: "Relays the CONFIRMED / IF-REJECTED status of the request tenant's operations to the creditor (ASLC028), filtering out the already-relayed ones, the same work the schedule worker runs. RBAC: connectivity:admin. Window-gated internally: outside the relay window it is a no-op that still returns 202. OUTBOUND (transmits to Núclea): serialized per tenant with the schedule worker via a shared drain lock — 409 on contention, 503 when the lock backend is unavailable."
      operationId: recoveryStatusRelay
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryActionResponse"
          description: Accepted
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Trigger an ASLC028 status-relay catch-up drain
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-status-relay
  /v1/connectivity/unpark:
    post:
      description: "Clears the outbound transmit claim of the named operations, returning them to the eligible backlog so the next drain tick re-drives them. RBAC: connectivity:admin. It is the ONLY recovery path for a PARKED operation. BOTH outbound stages park for the SAME reason, reported in parkReason as attempt_budget_exhausted: N consecutive counterpart refusals exhausted the operation's attempt budget (SCHEDULE_DISPATCH_MAX_TRANSMIT_ATTEMPTS, default 20). What differs is the stage and the state left behind, which the alert reports in stage: a FORWARD file (ASLC022/024/032/061/065 to the IF Domicilio) leaves the operation ACCEPTED, re-driven by the forward tick; a DISPATCH file (ASLC027/029/031/060/064 to Nuclea) leaves it QUEUED, re-driven by the dispatch tick. The value permanent_rejection is RETIRED and no longer emitted - no single 4xx response carries the evidence to park a file - but historical alerts still carry it. Either way the held claim makes it invisible to every drain, and every other admin verb is a dead end: /advance rejects the no-op self-edge, /requeue is CREATED-only, /retry is REJECTED-only, and /retransmit either rejects the state (a parked forward op is ACCEPTED, not QUEUED) or loses its own claim CAS and answers 409 in-flight (a parked dispatch op IS QUEUED). Enumerate the ids with GET /v1/operations?transmitHold=parked, which is the authoritative, paginated, tenant-scoped list; the operation.forward_rejected alert (payload operationIds) and the park's ERROR log field parked_operation_ids are first-response excerpts of the same set, and the daily webhook names only the first file parked that day. There is no scope-wide form: a held transmit claim is AMBIGUOUS between a parked operation and one whose file is already at Nuclea, and only the caller decides which set to release. This verb REFUSES the second kind with 409 when it is marked as such (transmitHold=in_flight) - reconcile those with Nuclea and drive each one with POST /v1/operations/{operationId}/advance instead, never un-park them. Idempotent: re-running releases nothing further and reports released=0. Claims younger than the 5-minute safety floor are skipped (they may belong to a pass that is mid-submit). Un-parking also zeroes the attempt budget, so a recovered operation gets a full budget rather than re-parking on its next refusal. Runs lock-free: it transmits nothing."
      operationId: recoveryUnpark
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RecoveryUnparkRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryUnparkResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Un-park operations held after exhausting their outbound attempt budget
      tags:
        - Connectivity
      x-required-scope: connectivity:admin
      x-mint:
        href: /pt/reference/rails/slc/recovery-unpark
  /v1/files:
    post:
      description: "Receives an ASLC file. aslc_passthrough accepts an already-signed, opaque artifact: it is received, stored and audited WITHOUT parsing its content, and the signature outcome is recorded (never a hard reject). aslc_xml intake is not implemented (501). The uploading participantId is an explicit, validated body field; the tenant comes from the request identity, never the body. Field presence/type is validated against the schema (422); a bad participantId or non-base64 content is a coded 400. RBAC: operations:write."
      operationId: intakeFile
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FileIntakeRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Intake an ASLC file
      tags:
        - Files
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/intake-file
  /v1/files/{id}:
    get:
      description: "Returns the status view of one file (id, intakeMode, status, linked operationIds, createdAt). Tenant-scoped. No byte download. 404 when the file does not exist. RBAC: operations:read."
      operationId: getFile
      parameters:
        - description: File id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: File id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get a file status
      tags:
        - Files
      x-required-scope: operations:read
      x-mint:
        href: /pt/reference/rails/slc/get-file
  /v1/funding/acks:
    get:
      description: "Lists client settlement-deposit acks across every settlement instruction, newest first, filtered by result and by a recordedAt window, paged. It is the operator's failed-deposit review surface: result=FAILED answers which deposits the client could not make and the reason it gave for each. result may be SENT or FAILED (coded 400 otherwise) and is omitted to return both; from/to are RFC3339. RBAC: funding:read; tenant is always derived from the validated request identity, never the payload."
      operationId: listFundingAcks
      parameters:
        - description: "Filter by the result the client reported: SENT or FAILED. Case-insensitive. Omitted returns both."
          explode: false
          in: query
          name: result
          schema:
            description: "Filter by the result the client reported: SENT or FAILED. Case-insensitive. Omitted returns both."
            examples:
              - FAILED
            type: string
        - description: Filter recordedAt >= this instant (RFC3339). A malformed value is rejected with 400.
          explode: false
          in: query
          name: from
          schema:
            description: Filter recordedAt >= this instant (RFC3339). A malformed value is rejected with 400.
            examples:
              - "2026-06-01T00:00:00Z"
            type: string
        - description: Filter recordedAt <= this instant (RFC3339). A malformed value is rejected with 400.
          explode: false
          in: query
          name: to
          schema:
            description: Filter recordedAt <= this instant (RFC3339). A malformed value is rejected with 400.
            examples:
              - "2026-06-30T23:59:59Z"
            type: string
        - description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListFailedAcksResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List recorded client deposit acks across settlement instructions
      tags:
        - Funding
      x-required-scope: funding:read
      x-mint:
        href: /pt/reference/rails/slc/list-funding-acks
  /v1/funding/settlement-instructions/{instructionId}/ack:
    post:
      description: "Records the client's STR deposit ack for a relayed position notify and drives the settlement instruction to ACKED for a SENT deposit (from PENDING or NOTIFIED) (the client owns the STR connection; the SLC emits NO LDL0022). A FAILED result is recorded but leaves the instruction unchanged so the deposit can be re-driven. Synchronous and definitive. Idempotent via the X-Idempotency header (a retry carrying the same key replays the stored response). result must be SENT or FAILED (coded 400 otherwise). RBAC: funding:write; tenant is always derived from the validated request identity, never the payload."
      operationId: recordFundingAck
      parameters:
        - description: Settlement instruction id (UUID).
          in: path
          name: instructionId
          required: true
          schema:
            description: Settlement instruction id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
        - description: Idempotency key for safe retries; a replay carrying the same key returns the stored response instead of appending a duplicate audit row (scoped to tenant + this instruction's ack route).
          in: header
          name: X-Idempotency
          schema:
            description: Idempotency key for safe retries; a replay carrying the same key returns the stored response instead of appending a duplicate audit row (scoped to tenant + this instruction's ack route).
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RecordAckRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecordAckResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Record a client settlement-deposit ack
      tags:
        - Funding
      x-required-scope: funding:write
      x-mint:
        href: /pt/reference/rails/slc/record-funding-ack
  /v1/funding/settlement-instructions/{instructionId}/acks:
    get:
      description: "Lists the client settlement-deposit acks recorded against one settlement instruction, NEWEST FIRST, both SENT and FAILED, each with the failure reason the client gave. The response is PAGED (limit default 50, max 500) and pagination.hasNext says whether older acks remain, so a long history is never silently truncated. A client may legitimately send a FAILED then a SENT ack for one instruction (the FAILED does not change the instruction's state; the later SENT advances it), so both halves of that recovery sequence are returned. An unknown instruction id answers 404; a known instruction the client has not answered yet answers 200 with an empty list. RBAC: funding:read; tenant is always derived from the validated request identity, never the payload."
      operationId: listSettlementInstructionAcks
      parameters:
        - description: Settlement instruction id (UUID).
          in: path
          name: instructionId
          required: true
          schema:
            description: Settlement instruction id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
        - description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500). A non-positive/non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0). A negative/non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListInstructionAcksResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List the client deposit acks recorded for a settlement instruction
      tags:
        - Funding
      x-required-scope: funding:read
      x-mint:
        href: /pt/reference/rails/slc/list-settlement-instruction-acks
  /v1/lbtr/commands:
    get:
      description: "Lists the commands this institution originated towards the câmara, newest first, paged (limit default 50, max 500). Each row carries who authorised it, what was sent, and how far it got — ACCEPTED means Lerian SILOC accepted and QUEUED the command, not that it reached the câmara, and is NOT a settlement claim. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: listLbtrCommands
      parameters:
        - description: Page size (default 50, max 500).
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500).
            examples:
              - "50"
            type: string
        - description: Row offset (default 0).
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0).
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListCommandsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List the commands this institution sent to the câmara
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/list-lbtr-commands
  /v1/lbtr/commands/{commandId}:
    get:
      description: "Reads one command, including the câmara's answer projected exactly as it arrived. For a position query (LTR0009) that answer IS the position the câmara returned: this rail shows it and never computes, nets or re-derives one. Each position carries its own raw sitLancLTR, verbatim and untranslated. An unknown id answers 404. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: getLbtrCommand
      parameters:
        - description: Command id (UUIDv7).
          in: path
          name: commandId
          required: true
          schema:
            description: Command id (UUIDv7).
            examples:
              - 0199a2e8-7a1c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Read one command and the câmara's answer to it
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/get-lbtr-command
  /v1/lbtr/nonliquidante-operations:
    get:
      description: "Lists the operations between two of this settlement bank's own non-liquidantes that the câmara announced, newest movement date first, paged (limit default 50, max 500). indrConfc says whether the câmara asked for a confirmation at all; deciding one it did not ask about is refused. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: listLbtrNonSettlorOperations
      parameters:
        - description: Page size (default 50, max 500).
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500).
            examples:
              - "50"
            type: string
        - description: Row offset (default 0).
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0).
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListNonSettlorOperationsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List the announced operations between this bank's own non-liquidantes
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/list-lbtr-non-settlor-operations
  /v1/lbtr/nonliquidante-operations/{operationId}:
    get:
      description: "Reads one announced operation between two non-liquidantes, including both legs, the amount a decision must state, and whether the câmara asked for a confirmation. An unknown id answers 404. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: getLbtrNonSettlorOperation
      parameters:
        - description: Announced non-liquidante operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Announced non-liquidante operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnnouncedNonSettlorOperationResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Read one announced operation between two non-liquidantes
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/get-lbtr-non-settlor-operation
  /v1/lbtr/nonliquidante-operations/{operationId}/decision:
    post:
      description: "Answers an operation between two of this settlement bank's own non-liquidantes, announced by the câmara (LTR0007), with the institution's LTR0008: CONFIRM accepts it, REJECT refuses it. Asynchronous intake — 202 means the command and its outbound event are committed and nothing has been sent yet. announcedAmount must equal the amount that was announced (422 otherwise). An operation the câmara did NOT ask to have confirmed is 422; one already decided is 409; one that changed since it was read is 409. X-Idempotency is REQUIRED: a retry carrying the same key replays the stored response, and the same key with a different body is 409. RBAC: lbtr:write; the deciding operator and the tenant are always taken from the validated request identity, never from the payload."
      operationId: decideLbtrNonSettlorOperation
      parameters:
        - description: Announced non-liquidante operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Announced non-liquidante operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
        - description: Required. Scopes this answer so a retry replays the stored response instead of sending a second command for the same operation.
          in: header
          name: X-Idempotency
          schema:
            description: Required. Scopes this answer so a retry replays the stored response instead of sending a second command for the same operation.
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DecideNonSettlorRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandAcceptedResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Confirm or reject an announced operation between two non-liquidantes
      tags:
        - LBTR
      x-required-scope: lbtr:write
      x-mint:
        href: /pt/reference/rails/slc/decide-lbtr-non-settlor-operation
  /v1/lbtr/position-queries:
    post:
      description: "Asks the câmara for this institution's own financial position (LTR0009). dtMovto is required; every other field is a filter. Asynchronous intake — 202 means the query is committed and nothing has been sent yet; the câmara's answer is read back from GET /v1/lbtr/commands/{commandId}, projected exactly as it arrived. The câmara's ISPB is not a field here: this message answers nothing, so there is nothing to echo it from, and Lerian SILOC supplies it. sitLancLTR is the raw 3-digit situation code, passed through verbatim. X-Idempotency is REQUIRED and a repeat query needs a NEW key: two identical queries are two questions and each is entitled to its own answer. RBAC: lbtr:write; the asking operator and the tenant are always taken from the validated request identity, never from the payload."
      operationId: submitLbtrPositionQuery
      parameters:
        - description: Required. A retry carrying the same key replays the stored response instead of asking the câmara twice; a genuinely new query needs a new key.
          in: header
          name: X-Idempotency
          schema:
            description: Required. A retry carrying the same key replays the stored response instead of asking the câmara twice; a genuinely new query needs a new key.
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubmitPositionQueryRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandAcceptedResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Ask the câmara for this institution's LBTR position
      tags:
        - LBTR
      x-required-scope: lbtr:write
      x-mint:
        href: /pt/reference/rails/slc/submit-lbtr-position-query
  /v1/lbtr/results:
    get:
      description: "Lists the gross and bilateral settlement results the câmara announced, newest movement date first, paged (limit default 50, max 500). Every amount is the value the câmara sent, echoed unchanged: this rail holds no position and computes no balance. status says where each announcement stands — ANNOUNCED is awaiting a decision. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: listLbtrResults
      parameters:
        - description: Page size (default 50, max 500).
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500).
            examples:
              - "50"
            type: string
        - description: Row offset (default 0).
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0).
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List the settlement results the câmara announced
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/list-lbtr-results
  /v1/lbtr/results/{resultId}:
    get:
      description: "Reads one announced settlement result, including the amount a decision must state and the version that decision is authorised against. An unknown id answers 404. RBAC: lbtr:read; the tenant is always derived from the validated request identity, never the payload."
      operationId: getLbtrResult
      parameters:
        - description: Announced result id (UUID).
          in: path
          name: resultId
          required: true
          schema:
            description: Announced result id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnnouncedResultResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Read one announced settlement result
      tags:
        - LBTR
      x-required-scope: lbtr:read
      x-mint:
        href: /pt/reference/rails/slc/get-lbtr-result
  /v1/lbtr/results/{resultId}/decision:
    post:
      description: "Answers a result the câmara announced (LTR0001) with the institution's LTR0002: CONFIRM accepts it, DIVERGE disputes it. Asynchronous intake — 202 means the command and its outbound event are committed and nothing has been sent yet; poll the command to see the câmara's answer. announcedAmount must equal the amount that was announced (422 otherwise), compared as a decimal. A result the câmara cancelled, or one already decided, is 409; an announcement that changed since it was read is 409 and should be read again. X-Idempotency is REQUIRED: a retry carrying the same key replays the stored response instead of sending a second answer, and the same key with a different body is 409. RBAC: lbtr:write; the deciding operator and the tenant are always taken from the validated request identity, never from the payload."
      operationId: decideLbtrResult
      parameters:
        - description: Announced result id (UUID).
          in: path
          name: resultId
          required: true
          schema:
            description: Announced result id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
        - description: Required. Scopes this answer so a retry replays the stored response instead of sending a second command for the same result.
          in: header
          name: X-Idempotency
          schema:
            description: Required. Scopes this answer so a retry replays the stored response instead of sending a second command for the same result.
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DecideResultRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandAcceptedResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Confirm or diverge from an announced settlement result
      tags:
        - LBTR
      x-required-scope: lbtr:write
      x-mint:
        href: /pt/reference/rails/slc/decide-lbtr-result
  /v1/operations:
    get:
      description: "Lists settlement operations for the request tenant, filtered and paginated. Filters: state, operationType, batchId, externalId, dateFrom/dateTo (over created_at). Offset/limit pagination."
      operationId: listOperations
      parameters:
        - description: Filter by lifecycle state.
          explode: false
          in: query
          name: state
          schema:
            description: Filter by lifecycle state.
            type: string
        - description: Filter by operation type.
          explode: false
          in: query
          name: operationType
          schema:
            description: Filter by operation type.
            type: string
        - description: Filter by batch id.
          explode: false
          in: query
          name: batchId
          schema:
            description: Filter by batch id.
            type: string
        - description: Filter by external id.
          explode: false
          in: query
          name: externalId
          schema:
            description: Filter by external id.
            type: string
        - description: Filter created_at >= (RFC3339).
          explode: false
          in: query
          name: dateFrom
          schema:
            description: Filter created_at >= (RFC3339).
            type: string
        - description: Filter created_at <= (RFC3339).
          explode: false
          in: query
          name: dateTo
          schema:
            description: Filter created_at <= (RFC3339).
            type: string
        - description: Page size (default 50, max 500).
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 500).
            type: string
        - description: Row offset (default 0).
          explode: false
          in: query
          name: offset
          schema:
            description: Row offset (default 0).
            type: string
        - description: Filter operations HELD out of the outbound drains, by reason. "parked" — the attempt budget was exhausted and nothing reached Núclea; recover with POST /v1/connectivity/unpark. "in_flight" — the file IS at Núclea and the local transition failed; reconcile with Núclea, then POST /v1/operations/{operationId}/advance, and NEVER un-park these (it re-submits an accepted file).
          explode: false
          in: query
          name: transmitHold
          schema:
            description: Filter operations HELD out of the outbound drains, by reason. "parked" — the attempt budget was exhausted and nothing reached Núclea; recover with POST /v1/connectivity/unpark. "in_flight" — the file IS at Núclea and the local transition failed; reconcile with Núclea, then POST /v1/operations/{operationId}/advance, and NEVER un-park these (it re-submits an accepted file).
            examples:
              - parked
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListOperationsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List settlement operations
      tags:
        - Operations
      x-required-scope: operations:read
      x-mint:
        href: /pt/reference/rails/slc/list-operations
    post:
      description: Submits a single settlement operation for intake. Idempotent via the X-Idempotency header. Field presence/type is validated against the schema (422); business-rule failures return coded 400/409/422 problem+json.
      operationId: createOperation
      parameters:
        - description: Idempotency key for safe retries; a replay returns the stored response.
          in: header
          name: X-Idempotency
          schema:
            description: Idempotency key for safe retries; a replay returns the stored response.
            type: string
        - description: Optional client request id echoed back in meta.requestId.
          in: header
          name: X-Request-Id
          schema:
            description: Optional client request id echoed back in meta.requestId.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateOperationRequest"
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateOperationResponse"
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Create a settlement operation
      tags:
        - Operations
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/create-operation
  /v1/operations/batch:
    post:
      description: Accepts newline-delimited JSON (application/x-ndjson). Each line is one operation, validated and created through the same pipeline as POST /v1/operations, grouped under one generated batchId. The batch is validated against a configured line limit (default 50000) before any operation is persisted; exceeding it returns 413 with no operations persisted. Processing is synchronous; one bad line is rejected with a per-line error without aborting the batch. Optionally idempotent via the X-Idempotency header. Errors are RFC 9457 problem+json.
      operationId: createOperationsBatch
      parameters:
        - description: Idempotency key for safe retries of the whole batch.
          in: header
          name: X-Idempotency
          schema:
            type: string
      requestBody:
        content:
          application/x-ndjson:
            schema:
              type: string
        description: Newline-delimited JSON operations (application/x-ndjson); one CreateOperationRequest per line.
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  accepted:
                    description: Count of accepted operations.
                    examples:
                      - 48
                    format: int64
                    type: integer
                  batchId:
                    description: Generated batch id grouping every line of the submission.
                    examples:
                      - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
                    type: string
                  errors:
                    description: Per-line rejection errors (capped at the first batchErrorCap entries).
                    items:
                      $ref: "#/components/schemas/BatchError"
                    type: array
                  errorsTruncated:
                    description: True when more rejections occurred than the errors array lists.
                    examples:
                      - true
                    type: boolean
                  meta:
                    $ref: "#/components/schemas/BatchMeta"
                    description: Batch response envelope metadata (requestId + timestamp).
                  rejected:
                    description: Count of rejected lines.
                    examples:
                      - 2
                    format: int64
                    type: integer
                required:
                  - batchId
                  - accepted
                  - rejected
                  - errors
                  - errorsTruncated
                  - meta
                type: object
          description: Batch accepted; per-line accepted/rejected counts and errors with the meta envelope.
        "400":
          content:
            application/problem+json:
              schema:
                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
          description: Malformed batch request.
        "401":
          content:
            application/problem+json:
              schema:
                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
          description: Authentication required.
        "403":
          content:
            application/problem+json:
              schema:
                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
          description: Forbidden (operations:write scope required).
        "413":
          content:
            application/problem+json:
              schema:
                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
          description: Batch exceeds the maximum number of lines.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                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
          description: Internal error (scrubbed).
        "503":
          content:
            application/problem+json:
              schema:
                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
          description: Access Manager unavailable; retry later.
      security:
        - BearerAuth: []
      summary: Submit a batch of settlement operations
      tags:
        - Operations
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/create-operations-batch
  /v1/operations/nuliquid/{nuliquid}:
    get:
      description: "Resolves an operation by its 21-position NUliquid. The format is validated before the lookup: a malformed NUliquid returns 422, an absent one 404. LOCAL lookup by default; when participantIspb is supplied AND the local store misses AND the NUliquid is inside the 30-day online horizon, the SLC0908 online fallback consults Núclea. The 200 body is an OperationDetailResponse (local) or a NUliquidOnlineResponse (online fallback). tenant is ALWAYS taken from the validated request context, never the query."
      operationId: getOperationByNUliquid
      parameters:
        - description: "NUliquid (21 positions: AAAAMMDD + 13 digits)."
          in: path
          name: nuliquid
          required: true
          schema:
            description: "NUliquid (21 positions: AAAAMMDD + 13 digits)."
            examples:
              - "202606150000000000001"
            type: string
        - description: Participant ISPB (8 characters) to authenticate the SLC0908 online fallback as; when set, a local miss consults Núclea. Omit for a local-only lookup.
          explode: false
          in: query
          name: participantIspb
          schema:
            description: Participant ISPB (8 characters) to authenticate the SLC0908 online fallback as; when set, a local miss consults Núclea. Omit for a local-only lookup.
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Look up an operation by NUliquid
      tags:
        - Operations
      x-required-scope: operations:read
      x-mint:
        href: /pt/reference/rails/slc/get-operation-by-n-uliquid
  /v1/operations/{operationId}:
    delete:
      description: "Cancels an operation in CREATED or QUEUED via a USER_CANCELLATION transition, emitting operation.cancelled. A non-cancelable state returns 409 with code SLC-0105 (INVALID_STATE_TRANSITION): the problem+json body carries only type/title/status/detail/code, and its detail is a fixed sentence that names neither the operation's current state nor the states it would accept — read the current state from GET /v1/operations/{operationId}. For a regulatory chargeback (contestação regulada que vira débito) use POST /v1/operations with operationType=CANCELLATION + reasonCategory instead."
      operationId: cancelOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "204":
          description: No Content
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Cancel a pending settlement operation
      tags:
        - Operations
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/cancel-operation
    get:
      description: Returns the full detail of one settlement operation, including its recorded eslcErrors and recoverability diagnostics.
      operationId: getOperation
      parameters:
        - description: Settlement operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Settlement operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationDetailResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get a settlement operation
      tags:
        - Operations
      x-required-scope: operations:read
      x-mint:
        href: /pt/reference/rails/slc/get-operation
  /v1/operations/{operationId}/advance:
    post:
      description: Drives an EXISTING state-machine edge via MANUAL_OVERRIDE, emitting operation.manually_advanced with the reason/evidence. Admin-only (operations:admin). Missing reason/evidence returns 400 MISSING_OVERRIDE_JUSTIFICATION; a nonexistent edge returns 409 INVALID_STATE_TRANSITION; cancelling an operation whose file is already at Núclea (transmit hold in_flight) returns 409 CONFLICT, since it would erase the only record of the disagreement — reconcile and advance to the hold-resolving state; POST /v1/connectivity/unpark refuses in-flight claims.
      operationId: advanceOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdvanceRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AdvanceResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Advance an operation via audited admin override
      tags:
        - Operations
      x-required-scope: operations:admin
      x-mint:
        href: /pt/reference/rails/slc/advance-operation
  /v1/operations/{operationId}/history:
    get:
      description: Returns the append-only state-transition log for an operation, ordered oldest first (the auditability proof). 404 when the operation does not exist.
      operationId: getOperationHistory
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationHistoryResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get operation state history
      tags:
        - Operations
      x-required-scope: operations:read
      x-mint:
        href: /pt/reference/rails/slc/get-operation-history
  /v1/operations/{operationId}/reconcile:
    post:
      description: "Consults Núclea for the AUTHORITATIVE SLC0908 settlement status of one operation and synchronises the local record under NUCLEA_RECONCILED, leaving an operation_state_log row whose trigger separates a machine synchronisation from an operator's override. Admin-only (operations:admin). The reason is mandatory and enforced by the domain (400 MISSING_OVERRIDE_JUSTIFICATION); the reconciling subject is taken from the validated request identity, never from the payload. WHY THIS PATH EXISTS ALONGSIDE THE DRAINS: the /v1/connectivity/* recovery verbs (dispatch, forward, repoll, status-relay, reprocess, unpark) re-drive OUR OWN internal transport and never consult the counterpart, so they cannot report what Núclea believes — this operation asks Núclea and records the answer. Disjoint capabilities, not substitutes. Only FORWARDED->CONFIRMED and CONFIRMED->SETTLED are driveable: a counterpart state further away is refused rather than walked (409 INVALID_STATE_TRANSITION), because walking it would fabricate an intermediate transition nobody observed. An operation carrying no NUliquid has no key to run the consulta with and answers 409 SLC-0119 with the state-specific remediation. A counterpart status outside the mapped vocabulary answers 409 SLC-0121 and writes nothing."
      operationId: reconcileOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReconcileRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReconcileResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Reconcile an operation against the counterpart's settlement status
      tags:
        - Operations
      x-required-scope: operations:admin
      x-mint:
        href: /pt/reference/rails/slc/reconcile-operation
  /v1/operations/{operationId}/requeue:
    post:
      description: "Re-admits an operation stuck in CREATED into the dispatch queue via a WINDOW_ASSIGNED transition, emitting operation.queued. A non-CREATED state returns 409 with code SLC-0105 (INVALID_STATE_TRANSITION): the problem+json body carries only type/title/status/detail/code, and its detail is a fixed sentence that names neither the operation's current state nor the states it would accept — read the current state from GET /v1/operations/{operationId}."
      operationId: requeueOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RequeueResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Re-queue a stuck operation
      tags:
        - Operations
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/requeue-operation
  /v1/operations/{operationId}/retry:
    post:
      description: "Resends a REJECTED operation as a NEW operation chained to the original via originalOperationId, respecting the retry limit. A non-REJECTED state returns 409 INVALID_STATE_TRANSITION; a chain at the limit returns 409 RETRY_LIMIT_EXCEEDED. An operation that was rejected AFTER it settled (a D+1 refusal by the IF Domicilio) is NOT retryable and returns 409 RETRY_AFTER_SETTLEMENT: the money already moved, so a retry would settle it twice."
      operationId: retryOperation
      parameters:
        - description: Operation id (UUID).
          in: path
          name: operationId
          required: true
          schema:
            description: Operation id (UUID).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RetryResponse"
          description: Created
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Retry a rejected operation
      tags:
        - Operations
      x-required-scope: operations:write
      x-mint:
        href: /pt/reference/rails/slc/retry-operation
  /v1/participants:
    get:
      description: "Lists the request tenant's participants, newest first. Offset-paginated. RBAC: participants:read; tenant is always derived from the validated request identity."
      operationId: listParticipants
      parameters:
        - description: Page size (default 50, max 100). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 100). A negative or non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Rows to skip (default 0). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Rows to skip (default 0). A negative or non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListParticipantsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List participants
      tags:
        - Participants
      x-required-scope: participants:read
      x-mint:
        href: /pt/reference/rails/slc/list-participants
    post:
      description: "Registers a participant in the tenant's catalog. Field presence/type is validated against the schema (422); business-rule failures return coded 422/409 problem+json. connectivityOk/lastConnectivityAt are read-only (owned by the test-connectivity flow). RBAC: participants:write; tenantId is derived from the validated identity, never the payload."
      operationId: createParticipant
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateParticipantRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ParticipantResponse"
          description: Created
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Create a participant
      tags:
        - Participants
      x-required-scope: participants:write
      x-mint:
        href: /pt/reference/rails/slc/create-participant
  /v1/participants/{id}:
    delete:
      description: Soft-deletes a participant (stamps deleted_at). Returns 204 No Content. 404 when the participant does not exist.
      operationId: deleteParticipant
      parameters:
        - description: Participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "204":
          description: No Content
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Delete a participant
      tags:
        - Participants
      x-required-scope: participants:write
      x-mint:
        href: /pt/reference/rails/slc/delete-participant
    get:
      description: Returns a participant by id, scoped to the request tenant. 404 when the participant does not exist.
      operationId: getParticipant
      parameters:
        - description: Participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ParticipantResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get a participant
      tags:
        - Participants
      x-required-scope: participants:read
      x-mint:
        href: /pt/reference/rails/slc/get-participant
    put:
      description: Updates a participant's mutable fields. Omitted fields are left unchanged. connectivityOk/lastConnectivityAt cannot be set here. 404 when the participant does not exist.
      operationId: updateParticipant
      parameters:
        - description: Participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateParticipantRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ParticipantResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Update a participant
      tags:
        - Participants
      x-required-scope: participants:write
      x-mint:
        href: /pt/reference/rails/slc/update-participant
  /v1/participants/{id}/arrangements:
    get:
      description: "Lists a participant's arrangements, newest first. Offset-paginated. RBAC: arrangements:read."
      operationId: listArrangements
      parameters:
        - description: Owning participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Owning participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Page size (default 50, max 100). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50, max 100). A negative or non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
        - description: Rows to skip (default 0). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: offset
          schema:
            description: Rows to skip (default 0). A negative or non-numeric value is rejected with 400.
            examples:
              - "0"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListArrangementsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List a participant's arrangements
      tags:
        - Arrangements
      x-required-scope: arrangements:read
      x-mint:
        href: /pt/reference/rails/slc/list-arrangements
    post:
      description: "Registers a card/scheme arrangement for a participant. Field presence/type is validated against the schema (422); a duplicate (participant, code, role) returns 409; an unknown participant 404; an invalid role/code 422. RBAC: arrangements:write."
      operationId: createArrangement
      parameters:
        - description: Owning participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Owning participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateArrangementRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrangementResponse"
          description: Created
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Create an arrangement
      tags:
        - Arrangements
      x-required-scope: arrangements:write
      x-mint:
        href: /pt/reference/rails/slc/create-arrangement
  /v1/participants/{id}/arrangements/{arrangementId}:
    delete:
      description: "Hard-deletes an arrangement. Returns 204 No Content. 404 when the arrangement does not exist. RBAC: arrangements:write."
      operationId: deleteArrangement
      parameters:
        - description: Owning participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Owning participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Arrangement id (UUID).
          in: path
          name: arrangementId
          required: true
          schema:
            description: Arrangement id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000bb
            type: string
      responses:
        "204":
          description: No Content
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Delete an arrangement
      tags:
        - Arrangements
      x-required-scope: arrangements:write
      x-mint:
        href: /pt/reference/rails/slc/delete-arrangement
    get:
      description: Returns an arrangement by id, scoped to its participant and the request tenant. 404 when the arrangement does not exist.
      operationId: getArrangement
      parameters:
        - description: Owning participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Owning participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Arrangement id (UUID).
          in: path
          name: arrangementId
          required: true
          schema:
            description: Arrangement id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000bb
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrangementResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get an arrangement
      tags:
        - Arrangements
      x-required-scope: arrangements:read
      x-mint:
        href: /pt/reference/rails/slc/get-arrangement
    put:
      description: "Updates an arrangement's mutable fields. Omitted fields are left unchanged. A duplicate (participant, code, role) returns 409; an invalid role/code 422. RBAC: arrangements:write."
      operationId: updateArrangement
      parameters:
        - description: Owning participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Owning participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Arrangement id (UUID).
          in: path
          name: arrangementId
          required: true
          schema:
            description: Arrangement id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000bb
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateArrangementRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrangementResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Update an arrangement
      tags:
        - Arrangements
      x-required-scope: arrangements:write
      x-mint:
        href: /pt/reference/rails/slc/update-arrangement
  /v1/participants/{id}/operational-status:
    get:
      description: "Returns the latest PAG0101 operational status recorded for the participant, plus nonOperating — whether the submission gate blocks it, computed with the SAME predicate the gate uses. A participant with no notice yet answers 200 with status NO_NOTICE and nonOperating false (the gate's own rule: no notice does not block), NOT a 404; a participant absent from the tenant's catalog is a 404. RBAC: participants:read; tenant is always derived from the validated request identity."
      operationId: getParticipantOperationalStatus
      parameters:
        - description: Participant id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Participant id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ParticipantOperationalStatusResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get a participant's operational status
      tags:
        - Participants
      x-required-scope: participants:read
      x-mint:
        href: /pt/reference/rails/slc/get-participant-operational-status
  /v1/participants/{participantIspb}/test-connectivity:
    post:
      description: "Sends a role-correct connectivity probe over the REST channel (AGEN001 for the DOMICILE_IF role, AGEN999 for other participant roles) and reports the round-trip echo and latency in the nucleaApi channel status. The path param is the participant's 8-character ISPB, NOT the participant UUID the sibling /v1/participants operations take. 404 when the ISPB is not a participant in the tenant's catalog. RBAC: connectivity:test (admin). The cdConnection and rsfnConnection channels report NOT_CONFIGURED because the managed file-transfer and message-broker transports are not currently available. An open-breaker transport returns a retryable 503."
      operationId: testConnectivity
      parameters:
        - description: Participant ISPB (8 characters, digits or uppercase letters). A non-conforming value is rejected with 400.
          in: path
          name: participantIspb
          required: true
          schema:
            description: Participant ISPB (8 characters, digits or uppercase letters). A non-conforming value is rejected with 400.
            examples:
              - "12345678"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TestConnectivityResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Test connectivity to Núclea for a participant
      tags:
        - Connectivity
      x-required-scope: connectivity:test
      x-mint:
        href: /pt/reference/rails/slc/test-connectivity
  /v1/reports:
    get:
      description: "Lists the request tenant's generated/available SLC (Serviço de Liquidação Centralizada) reports (reports table), newest first. This is a read-only facade — the rows are written by the ASLC9xx (família de mensagens de intake de relatório) intake pipeline. Filter: limit (default page size when omitted). RBAC: reports:read; tenant is always derived from the validated request identity, never a query or path param."
      operationId: listReports
      parameters:
        - description: Page size (default 50). A negative/non-numeric value is rejected with 400; an omitted value applies the adapter default.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50). A negative/non-numeric value is rejected with 400; an omitted value applies the adapter default.
            examples:
              - "50"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListReportsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List generated reports
      tags:
        - Reports
      x-required-scope: reports:read
      x-mint:
        href: /pt/reference/rails/slc/list-reports
  /v1/schedule:
    get:
      description: "Returns the settlement schedule this instance is applying at the instant of the request: every window of the grid with its nominal boundaries, modeled STR cutoff and current phase, plus the EFFECTIVE credit dispatch posture — which gate the instance applies (the configured credit window, the opt-in grid gate, or the dev always-open relaxation), under which Núclea special grade, and over which boundaries. The credit dispatch block is the authoritative answer for outbound credit: the enforced credit window is NOT in the grid unless the grid gate is enabled, so a grid-only reading can name hours the instance does not apply. All instants are RFC3339 UTC; date and the window boundaries are the LOCAL São Paulo day. Window boundaries are the published grade and are reported even on a weekend or holiday, where businessDay is false and nextOpenAt names the next business opening. Takes no parameters: the phases are defined at an instant, and the grid is global, with no tenant or participant dimension. RBAC: schedule:read (non-tenant)."
      operationId: getSchedule
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleResponse"
          description: OK
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get the settlement grid this instance is enforcing
      tags:
        - Schedule
      x-required-scope: schedule:read
      x-mint:
        href: /pt/reference/rails/slc/get-schedule
  /v1/signing-key:
    post:
      description: "Forwards the tenant's already-wrapped, opaque key material (Model A — never cleartext) to KMS via the signer sidecar, then persists ONLY the public certificate + the per-tenant KMS reference + custody_provider=KMS (never key material). RBAC: signing-key:import (admin-only provisioning role). Field presence/type is validated against the schema (422); a malformed ISPB or invalid base64 is a coded 400. Idempotent via the MANDATORY X-Idempotency header."
      operationId: signingKeyImport
      parameters:
        - description: Idempotency key for safe retries (MANDATORY on this high-sensitivity endpoint).
          in: header
          name: X-Idempotency
          schema:
            description: Idempotency key for safe retries (MANDATORY on this high-sensitivity endpoint).
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SigningKeyImportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SigningKeyImportResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Complete a BYOK Model-A signing-key import (SaaS)
      tags:
        - SigningKey
      x-required-scope: signing-key:import
      x-mint:
        href: /pt/reference/rails/slc/signing-key-import
  /v1/signing-key/import-params:
    post:
      description: "Creates a fresh EXTERNAL-origin KMS key for the caller's tenant and returns the wrapping public key + import token the tenant uses to wrap their ICP-Brasil private key material LOCALLY (Model A — the SLC never sees the private key in cleartext). RBAC: signing-key:import (admin-only provisioning role). Idempotent via the MANDATORY X-Idempotency header."
      operationId: signingKeyImportParams
      parameters:
        - description: "Idempotency key for safe retries (MANDATORY: each call mints a real, billable AWS KMS key)."
          in: header
          name: X-Idempotency
          schema:
            description: "Idempotency key for safe retries (MANDATORY: each call mints a real, billable AWS KMS key)."
            examples:
              - 018f8a3e-4b2c-7c1a-9e5d-2f6a1b3c4d5e
            type: string
          required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SigningKeyImportParamsResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Start a BYOK Model-A signing-key import (SaaS)
      tags:
        - SigningKey
      x-required-scope: signing-key:import
      x-mint:
        href: /pt/reference/rails/slc/signing-key-import-params
  /v1/xsd-schemas:
    get:
      description: "Lists the schema type names (bare names, e.g. ASLC027, SLC0001) of the official Núclea ASLC and RSFN XSDs embedded in the service. Read-only introspection; the bytes are identical for every tenant. RBAC: xsd-schemas:read (non-tenant)."
      operationId: listXSDSchemas
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/XsdSchemaListResponse"
          description: OK
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List embedded XSD schema types
      tags:
        - XSD Schemas
      x-required-scope: xsd-schemas:read
      x-mint:
        href: /pt/reference/rails/slc/list-xsd-schemas
  /v1/xsd-schemas/{type}:
    get:
      description: "Returns the raw XSD document for a schema type (bare name, e.g. ASLC027; a trailing .xsd is tolerated). Read-only; served as application/xml. 404 when the type is unknown. RBAC: xsd-schemas:read (non-tenant)."
      operationId: getXSDSchema
      parameters:
        - description: Schema type name (bare, e.g. ASLC027 or SLC0001; a trailing .xsd is tolerated).
          in: path
          name: type
          required: true
          schema:
            description: Schema type name (bare, e.g. ASLC027 or SLC0001; a trailing .xsd is tolerated).
            examples:
              - ASLC027
            type: string
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: string
          description: The raw XSD document.
          headers:
            Content-Type:
              schema:
                description: Wire media type of the raw XSD document body.
                examples:
                  - application/xml
                type: string
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Get one embedded XSD schema
      tags:
        - XSD Schemas
      x-required-scope: xsd-schemas:read
      x-mint:
        href: /pt/reference/rails/slc/get-xsd-schema
  /webhooks:
    get:
      description: Lists the request tenant's webhook subscriptions, including delivery metrics (successCount, failureCount, lastDeliveryAt, lastDeliveryStatus).
      operationId: listWebhooks
      parameters:
        - description: Page size (default 50). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50). A negative or non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListWebhooksResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List webhook subscriptions
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/list-webhooks
    post:
      description: Registers a webhook subscription for the request tenant. The raw secret is used only to derive a SHA-256 hash (never persisted in cleartext); in BYOC the real signing secret comes from the client's Kubernetes Secret. Field presence/type is validated against the schema (422); business-rule failures return coded 400/409/422 problem+json.
      operationId: createWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateWebhookRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookResponse"
          description: Created
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Register a webhook subscription
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/create-webhook
  /webhooks/{id}:
    delete:
      description: Deactivates a webhook subscription (delivery history is preserved). Returns 204 No Content. 404 when the subscription does not exist.
      operationId: deleteWebhook
      parameters:
        - description: Subscription id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Subscription id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "204":
          description: No Content
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Deactivate a webhook subscription
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/delete-webhook
    put:
      description: Updates a webhook subscription. Omitted fields are left unchanged. A new secret rotates the signing secret (rehashed; never stored in cleartext). 404 when the subscription does not exist.
      operationId: updateWebhook
      parameters:
        - description: Subscription id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Subscription id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateWebhookRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Update a webhook subscription
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/update-webhook
  /webhooks/{id}/deliveries:
    get:
      description: Returns the paginated delivery attempts (including retries) for a subscription, scoped to the request tenant. Each item carries its created_at partition key so a later replay can address the partitioned row.
      operationId: listWebhookDeliveries
      parameters:
        - description: Subscription id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Subscription id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Page size (default 50). A negative or non-numeric value is rejected with 400.
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 50). A negative or non-numeric value is rejected with 400.
            examples:
              - "50"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListDeliveriesResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: List a webhook's delivery history
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/list-webhook-deliveries
  /webhooks/{id}/deliveries/{deliveryId}/replay:
    post:
      description: Re-enqueues a non-delivered delivery (FAILED/RETRYING/PENDING) for re-delivery, reconstructed from the persisted payload. The delivery must belong to {id} (else 404); a terminal-success delivery is rejected with 409. Requires the createdAt partition key. Returns 202 Accepted; idempotent at the consumer.
      operationId: replayWebhookDelivery
      parameters:
        - description: Subscription id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Subscription id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
        - description: Delivery id (UUID).
          in: path
          name: deliveryId
          required: true
          schema:
            description: Delivery id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000dd
            type: string
        - description: Delivery created_at partition key (RFC3339). Required.
          explode: false
          in: query
          name: createdAt
          schema:
            description: Delivery created_at partition key (RFC3339). Required.
            examples:
              - "2026-06-15T07:50:00Z"
            type: string
      responses:
        "202":
          description: Accepted
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Replay a failed webhook delivery
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/replay-webhook-delivery
  /webhooks/{id}/test:
    post:
      description: Synchronously dispatches a synthetic test envelope (eventType=webhook.test) to the subscription and returns the delivery result. 404 when the subscription does not exist.
      operationId: testWebhook
      parameters:
        - description: Subscription id (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Subscription id (UUID).
            examples:
              - 0190b5a0-0000-7000-8000-0000000000aa
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TestDeliveryResponse"
          description: OK
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Unprocessable Entity
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Internal Server Error
        "501":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: "Not Implemented: this capability is not part of this deployment. Operations are registered unconditionally so the published contract is identical across deploy shapes; when the capability behind one did not compose here (authentication disabled, no database, no outbound transport, or the feature switched off) it answers this coded SLC-0012 problem. It is definitive for this deployment: retrying does not help, and the `detail` is deliberately scrubbed (any status >= 500 is)."
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Detail"
          description: Error
      summary: Send a synthetic test event to a webhook
      tags:
        - Webhooks
      x-required-scope: webhooks:admin
      x-mint:
        href: /pt/reference/rails/slc/test-webhook
security:
  - BearerAuth: []
tags:
  - description: Settlement operation lifecycle — create, list, query, and control the NUliquid-tracked card operations (NUliquid = the 21-position id Núclea assigns each accepted operation) through the state machine.
    name: Operations
  - description: Participant catalog — the acquirers, sub-acquirers, IF Domicílio (bank where the merchant receives its sales), and settlement FIs (financial institutions) that take part in card settlement.
    name: Participants
  - description: Card arrangements (bandeira/scheme configurations, e.g. Visa/Master/Elo) attached to a participant.
    name: Arrangements
  - description: Regulated transport orchestration to Núclea's SLC — dispatch, recovery, retransmission, and connectivity testing over managed file-transfer, message-broker, and REST.
    name: Connectivity
  - description: Multilateral netting clearing positions — the net amount each participant settles per STR cycle (STR = Banco Central reserves-transfer system).
    name: Clearing
  - description: SaaS BYOK (Bring Your Own Key) signing-key provisioning — import parameters and register the client's ICP-Brasil server-type certificate material used to sign ASLC files (RSA, at least 2048 bits, and valid at the moment of import — all three are enforced); the SLC never receives the private key in cleartext.
    name: SigningKey
  - description: ASLC file intake and status — passthrough submission and processing status of the official Núclea card-settlement XML files (ASLC = Arquivo do Sistema de Liquidação de Cartões).
    name: Files
  - description: Read-only introspection of the embedded Núclea ASLC/RSFN (National Financial System Network) XSD schemas used to validate outbound and inbound messages.
    name: XSD Schemas
  - description: Read-only regulatory, compliance, and operational settlement reports.
    name: Reports
  - description: Outbound business-event webhook subscriptions and delivery management for consumers (client ledgers — optional).
    name: Webhooks
  - description: Administrative operations — hot-reloadable runtime configuration, dead-letter-queue inspection/replay, and outbox redispatch.
    name: Admin
servers:
  - url: https://api.example.com
    description: Replace the example host with the URL provided during environment onboarding.
