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

# Submit a one-or-two proposal set to the payroll rail

> Submits the complete one-or-two proposal set through inclusao-garantias (Manual 001 v1.10 §3.1) synchronously, except under the pre-auction (quote mode), which answers 202 without calling Dataprev. X-Idempotency is mandatory and durable.

| Case | Result | Rail call |
|---|---|---|
| Same key + same body, known outcome | 200 replay of the stored response | No |
| Same key + different body | 422 unprocessable entity | No |
| New key + same solicitação | 409 conflict | No |
| Unknown-outcome retry | Retry the unresolved submission with the same proposal IDs | May call the rail with the same proposal IDs |
| Quote mode: same key + same body | 202 replay of the stored receipt, also after the window closed | No |
| Quote mode: same key + different body | 422 IDEMPOTENCY_KEY_REUSE | No |
| Quote mode: new key + same pair, window open | 202 new revision, same proposal numbers | No |
| Quote mode: new key + another pair, window open | 202 | No |
| Quote mode: new key after the window closed | 422 BID_QUOTE_WINDOW_CLOSED | No |

Partner route: the text above describes the party's own route. Here the path names no party: the call runs as the one originador the partner credential's scope holds, which must be registered under the caller's tenant, exactly as the party's own credential would. A credential whose scope holds more than one originador is refused 403 AUT-1022: name the originador on this route's /v1/consignado/originadores/{originador_id} form instead. An originador the bancarizador deactivated is refused 403 ORIGINADOR_DEACTIVATED until it is reactivated.



## OpenAPI

````yaml /en/openapi/v3-current/consignado.yaml post /v1/consignado/originador/leilao/solicitacoes/{id_solicitacao}/propostas
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    OpenAPI 3.1 surface for Lerian Consignado — Dataprev. The API covers tenant
    credentials and rail configuration, worker margin, loan auctions and bids,
    contract registration and lifecycle, B3 instrument codes, disbursement
    confirmation, portability, refinancing, renegotiation, FGTS guarantees,
    reconciliation, funds, assignments, throughput, and event subscriptions.
  license:
    name: Lerian Studio General License
  title: Lerian Consignado API
  version: v1.0.0
servers:
  - url: https://br-consignado-gw.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Per-tenant Dataprev credential custody and public rail configuration
      (upload, status, rotation, revoke, requester code, and worker portal base
      URL)
    name: Credentials
  - description: >-
      Per-tenant streaming-hub subscription control-plane (list, create, get,
      rotate, revoke, and test delivery)
    name: Subscriptions
  - description: >-
      Dataprev payroll-rail surface: FGTS balance and authorization reads, the
      FGTS guarantee execution, contract suspension, reactivation and term
      changes, the rail's own contract documents, and the on-demand reads of
      leilão solicitações, escriturações, repasses and employment terminations
    name: Consignado Rail
  - description: >-
      Synchronous rail command surface: the operations a bancarizador without
      the lender drives over HTTP.
    name: Consignado Rail Commands
  - description: >-
      Gateway-owned disbursement confirmation: a client bank recording money it
      has ALREADY paid to a worker. It crosses no government boundary and
      proxies no Dataprev operation.
    name: Consignado Disbursement
  - description: >-
      Per-tenant self-service outbound Dataprev rail throughput: read and set
      this tenant's own requests-per-second, including a deliberate pause at
      zero
    name: Consignado Throughput
  - description: Tenant pre-auction configuration, fund policies, auctions and quotes
    name: Consignado Pré-leilão
  - description: >-
      The B3 instrument code (Código IF) of an averbado contract: informed once
      by the bancarizador after B3 registers the CCB, and read back
    name: Consignado Registro B3
paths:
  /v1/consignado/originador/leilao/solicitacoes/{id_solicitacao}/propostas:
    post:
      tags:
        - Consignado Rail Commands
      summary: Submit a one-or-two proposal set to the payroll rail
      description: >-
        Submits the complete one-or-two proposal set through inclusao-garantias
        (Manual 001 v1.10 §3.1) synchronously, except under the pre-auction
        (quote mode), which answers 202 without calling Dataprev. X-Idempotency
        is mandatory and durable.


        | Case | Result | Rail call |

        |---|---|---|

        | Same key + same body, known outcome | 200 replay of the stored
        response | No |

        | Same key + different body | 422 unprocessable entity | No |

        | New key + same solicitação | 409 conflict | No |

        | Unknown-outcome retry | Retry the unresolved submission with the same
        proposal IDs | May call the rail with the same proposal IDs |

        | Quote mode: same key + same body | 202 replay of the stored receipt,
        also after the window closed | No |

        | Quote mode: same key + different body | 422 IDEMPOTENCY_KEY_REUSE | No
        |

        | Quote mode: new key + same pair, window open | 202 new revision, same
        proposal numbers | No |

        | Quote mode: new key + another pair, window open | 202 | No |

        | Quote mode: new key after the window closed | 422
        BID_QUOTE_WINDOW_CLOSED | No |


        Partner route: the text above describes the party's own route. Here the
        path names no party: the call runs as the one originador the partner
        credential's scope holds, which must be registered under the caller's
        tenant, exactly as the party's own credential would. A credential whose
        scope holds more than one originador is refused 403 AUT-1022: name the
        originador on this route's /v1/consignado/originadores/{originador_id}
        form instead. An originador the bancarizador deactivated is refused 403
        ORIGINADOR_DEACTIVATED until it is reactivated.
      operationId: submitConsignadoBidAsBoundOriginador
      parameters:
        - description: >-
            Canonical positive int64 Dataprev solicitação identifier, bounded by
            9223372036854775807. Leading-zero aliases are normalized before
            idempotency fingerprinting.
          in: path
          name: id_solicitacao
          required: true
          schema:
            description: >-
              Canonical positive int64 Dataprev solicitação identifier, bounded
              by 9223372036854775807. Leading-zero aliases are normalized before
              idempotency fingerprinting.
            examples:
              - '18406'
            maxLength: 19
            minLength: 1
            pattern: >-
              ^([1-9][0-9]{0,17}|[1-8][0-9]{18}|9[01][0-9]{17}|92[01][0-9]{16}|922[0-2][0-9]{15}|9223[0-2][0-9]{14}|92233[0-6][0-9]{13}|922337[01][0-9]{12}|92233720[0-2][0-9]{10}|922337203[0-5][0-9]{9}|9223372036[0-7][0-9]{8}|92233720368[0-4][0-9]{7}|922337203685[0-3][0-9]{6}|9223372036854[0-6][0-9]{5}|92233720368547[0-6][0-9]{4}|922337203685477[0-4][0-9]{3}|9223372036854775[0-7][0-9]{2}|922337203685477580[0-6]|9223372036854775807)$
            type: string
        - description: >-
            Required durable replay key, scoped by authenticated tenant and
            bounded like the service's other indexed opaque request references.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: >-
              Required durable replay key, scoped by authenticated tenant and
              bounded like the service's other indexed opaque request
              references.
            examples:
              - idem-bid-2026-07-31-0001
            maxLength: 128
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BidRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BidResponse'
          description: OK
          headers:
            X-Idempotency-Replayed:
              schema:
                description: >-
                  True when PostgreSQL durable state supplied the response
                  without another rail submission.
                type: string
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreleilaoQuoteReceipt'
          description: >-
            The quote was received under the pre-auction: nothing reached
            Dataprev. The auction elects after the window.
          headers:
            X-Idempotency-Replayed:
              description: True when the stored receipt answered a repeated key.
              schema:
                type: string
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            A conflict with a bid that already holds this position.
            BID_SOLICITACAO_TAKEN means this solicitação already carries a bid
            from this institution, and a solicitação takes one.
            BID_PROPOSAL_SLOT_TAKEN means an earlier submission already holds a
            proposal position in this bid. Both are definitive; read the bid
            book for the outcome of the submission that holds it. A 409 carrying
            CLT-0007 (no operation-specific code) and the detail "an identical
            request is already in flight" is not definitive: hold this
            idempotency key and retry under it. DATAPREV_CREDENTIAL_REQUIRED
            means this tenant has no Dataprev credential in custody, so the
            gateway cannot act for it on the rail at all; it is definitive until
            the credential is provisioned, and retrying before that never
            succeeds. DATAPREV_CREDENTIAL_REVOKED means the tenant's credentials
            were revoked; it holds until a complete upload (PUT
            /v1/credentials/dataprev with the certificate and the OAuth client
            together) opens a new custody. DATAPREV_CREDENTIAL_REJECTED means
            Dataprev refused its OAuth client credentials, so correct them in
            custody before retrying.
        '413':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Request Entity Too Large
        '422':
          content:
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BidRefusalError'
                  - $ref: '#/components/schemas/Detail'
          description: >-
            The bid was not accepted. Two shapes share this status.
            BidRefusalError, carrying a refusal member, means a named local or
            Dataprev rail rule refused the bid AFTER the refusal was recorded
            durably: the outcome is final, a replay under the same idempotency
            key returns it, and the bid book carries it. The canonical problem
            Detail, with NO refusal member, means the request was refused BEFORE
            anything durable was written, and its code names the cause. CLT-0006
            (payload validation) and BID_ORIGINADOR_UNKNOWN or
            BID_ORIGINADOR_INACTIVE (the named originador is not registered for
            this tenant or may no longer act for it): correct the request and
            send it again. BID_SOLICITACAO_UNKNOWN: the gateway holds no
            discovered solicitação under this identifier, so retry once its
            consignado_solicitacao.received event arrives. BID_NO_PROPOSTA_LEFT:
            a resume has no proposta left to re-send, so place a new bid.
            IDEMPOTENCY_KEY_REUSE: the key is spent on a different request, so
            send a new key. Quote mode (solicitação under the pre-auction):
            BID_FUND_REQUIRED, BID_FUND_NOT_ACCEPTED, BID_FUND_NOT_IN_PRELEILAO,
            BID_FUND_OUTSIDE_HOURS, BID_FUND_OUTSIDE_MANDATE,
            BID_FUND_POLICY_VIOLATION, BID_QUOTE_UNSECURED_REQUIRED,
            BID_QUOTE_WINDOW_CLOSED, BID_QUOTE_REVISION_LIMIT,
            FUNDO_NOT_REGISTERED, FUNDO_DEACTIVATED and
            PRELEILAO_WORKER_UNAVAILABLE refuse the quote before anything is
            recorded; the detail names the next step.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        '501':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Client bid submission is disabled for this deployment.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    BidRequest:
      additionalProperties: false
      properties:
        fundoRef:
          description: >-
            Fund that funds this quote, as the rail's fund reference. Required
            while the solicitação is under the pre-auction; refused otherwise.
          examples:
            - fundo-a
          maxLength: 128
          minLength: 1
          type: string
        matricula:
          description: >-
            Employment bond matrícula echoed from the discovered solicitação and
            checked against its durable snapshot.
          examples:
            - EMP-7K9M2P
          maxLength: 30
          minLength: 1
          type: string
        originadorRef:
          description: >-
            Originador this bid is placed for, as registered under this tenant.
            Preserved byte for byte: never trimmed, case-folded, or normalized.
            A bancarizador names one of its own registered originadores here,
            and the bid then formalizes on that originador's registered portal
            unless it carries a portalBaseUrl of its own. An originador
            authenticating with its own credential does not need to send it —
            the reference is taken from the credential — and if it does send one
            it must be its own, or the request is refused. Omit it for a
            bancarizador bidding on its own account.
          examples:
            - originador-a
          maxLength: 128
          minLength: 1
          type: string
        portalBaseUrl:
          description: >-
            Optional formalization portal base URL for this bid alone, for a
            tenant that originates through several partners and formalizes each
            bid on that partner's portal. It wins over every registered value:
            the portal the named originador registered, and the tenant's own.
            Must be an absolute HTTPS URL with no credentials and no fragment;
            an invalid value is refused with rule PORTAL_URL and nothing is
            submitted to the rail. The server still mints the type 0 contact
            itself, appending id_solicitacao and numero_proposta. Omit it to
            fall back on the named originador's registered portal, then the
            tenant's.
          examples:
            - https://partner.example.com/formalizacao
          maxLength: 255
          type: string
        propostas:
          items:
            $ref: '#/components/schemas/BidProposalRequest'
          maxItems: 2
          minItems: 1
          type: array
      required:
        - matricula
        - propostas
      type: object
    BidResponse:
      additionalProperties: false
      properties:
        idSolicitacao:
          description: Dataprev solicitação identifier addressed by the bid.
          examples:
            - '18406'
          type: string
        propostas:
          items:
            $ref: '#/components/schemas/BidProposalResponse'
          type:
            - array
            - 'null'
        submittedAt:
          description: UTC instant when the full rail outcome was durably recorded.
          examples:
            - '2026-07-31T12:00:00Z'
          format: date-time
          type: string
      required:
        - idSolicitacao
        - submittedAt
        - propostas
      type: object
    PreleilaoQuoteReceipt:
      additionalProperties: false
      properties:
        fundoRef:
          description: The fund the quote is for.
          examples:
            - fundo-a
          type: string
        idSolicitacao:
          description: The solicitation the quote belongs to.
          examples:
            - '18406'
          type: string
        prazoCotacao:
          description: Deadline of the quote window, UTC.
          examples:
            - '2026-11-04T15:10:00Z'
          type: string
        propostas:
          description: The proposals of the quote, in request order.
          items:
            $ref: '#/components/schemas/PreleilaoQuoteReceiptProposta'
          type: array
        receivedAt:
          description: When the gateway kept this revision, UTC.
          examples:
            - '2026-11-04T15:03:21.123456Z'
          type: string
        revisao:
          description: >-
            Revision of this originador and fund pair for the solicitation, 1 to
            10.
          examples:
            - 1
          format: int64
          type: integer
        situacao:
          description: >-
            Always recebida: the quote is kept and the election happens at the
            deadline.
          enum:
            - recebida
          examples:
            - recebida
          type: string
      required:
        - idSolicitacao
        - situacao
        - fundoRef
        - revisao
        - prazoCotacao
        - receivedAt
        - propostas
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable product error code. One of the enumerated
            values: the CLT-NNNN catalog codes for the general refusal classes;
            the named command conflicts, which a client branches on to tell one
            conflict from another; the four terminal refusals
            IDEMPOTENCY_STATE_UNRECOGNISED, IDEMPOTENCY_RECORD_UNREADABLE,
            IDEMPOTENCY_OUTCOME_UNRECORDED and IDEMPOTENCY_REPLAY_UNAVAILABLE
            (422), which tell the client to reconcile the original request and
            never retry under a new key; IDEMPOTENCY_KEY_REUSE (422): the key is
            spent on a different request, so send a new key; the codes a single
            surface answers, named after it (FUNDO_*, REGISTRO_B3_*, ...); and
            the 5xx codes naming an upstream (DATAPREV_*, STREAMING_HUB_*,
            TENANT_MANAGER_*, the Access Manager's AUT-0033 and AUT-1021) or an
            unknown outcome, whose detail is client-readable; the Access
            Manager's AUT-1022 (403): the partner credential holds more than one
            originador, so name it in the path; ORIGINADOR_DEACTIVATED and
            FUNDO_PARTNER_DEACTIVATED (403): the originador or fundo the partner
            credential acts for is deactivated, so the bancarizador must
            reactivate it.
          enum:
            - AUT-0033
            - AUT-1021
            - AUT-1022
            - AVERBACAO_ARTIFACT_CONFLICT
            - AVERBACAO_CLAIM_CONFLICT
            - AVERBACAO_DOCUMENTATION_CONFLICT
            - AVERBACAO_EXCLUDED
            - AVERBACAO_HELD_BY_ANOTHER_SENDER
            - AVERBACAO_NOT_ACCEPTED
            - AVERBACAO_OPERATIONS_INTERNAL
            - AVERBACAO_OPERATIONS_INVALID_CURSOR
            - AVERBACAO_OPERATIONS_INVALID_QUERY
            - AVERBACAO_OPERATIONS_UNKNOWN_STATUS
            - AVERBACAO_OPERATION_NOT_FOUND
            - BID_FUND_NOT_ACCEPTED
            - BID_FUND_NOT_IN_PRELEILAO
            - BID_FUND_OUTSIDE_HOURS
            - BID_FUND_OUTSIDE_MANDATE
            - BID_FUND_POLICY_VIOLATION
            - BID_FUND_REQUIRED
            - BID_NO_PROPOSTA_LEFT
            - BID_ORIGINADOR_INACTIVE
            - BID_ORIGINADOR_UNKNOWN
            - BID_PROPOSAL_SLOT_TAKEN
            - BID_QUOTE_NOT_IN_PRELEILAO
            - BID_QUOTE_REVISION_LIMIT
            - BID_QUOTE_UNSECURED_REQUIRED
            - BID_QUOTE_WINDOW_CLOSED
            - BID_SOLICITACAO_TAKEN
            - BID_SOLICITACAO_UNKNOWN
            - BID_SUBMISSIONS_INTERNAL
            - BID_SUBMISSIONS_INVALID_CURSOR
            - BID_SUBMISSIONS_UNKNOWN_SITUATION
            - BOOKING_FIELD_INVALID
            - CEDED_CREDIT_INTERNAL
            - CEDED_CREDIT_NO_FUND_ENTITLEMENT
            - CEDED_CREDIT_UNAVAILABLE
            - CLT-0001
            - CLT-0002
            - CLT-0003
            - CLT-0004
            - CLT-0005
            - CLT-0006
            - CLT-0007
            - CLT-0008
            - CLT-0009
            - CLT-0010
            - CLT-0011
            - CLT-0012
            - CONTRACT_ALREADY_REGISTERED
            - CONTRACT_NOT_BOOKABLE
            - CURSOR_EXPIRED
            - CURSOR_FENCE_MISMATCH
            - DATAPREV_CREDENTIAL_REJECTED
            - DATAPREV_CREDENTIAL_REQUIRED
            - DATAPREV_CREDENTIAL_REVOKED
            - DATAPREV_INVALID_RESPONSE
            - DATAPREV_TIMEOUT
            - DATAPREV_UNAVAILABLE
            - DECLARED_DATES_OUT_OF_ORDER
            - DECLARED_TERMS_INCONSISTENT
            - DISBURSEMENT_CONFIRMATIONS_INTERNAL
            - DISBURSEMENT_CONFIRMATIONS_INVALID_CURSOR
            - DISBURSEMENT_PAYMENT_CONFLICT
            - EVENT_DELIVERY_INTERNAL
            - EXCLUSION_AUTHORITY_CONFLICT
            - EXCLUSION_BOOKING_IDENTITY_INCOMPLETE
            - EXCLUSION_DOCUMENTATION_UNDERWAY
            - EXCLUSION_OPERATIONS_INTERNAL
            - EXCLUSION_OPERATIONS_INVALID_CURSOR
            - EXCLUSION_OPERATIONS_INVALID_QUERY
            - EXCLUSION_OPERATIONS_UNKNOWN_STATUS
            - EXCLUSION_OPERATION_NOT_FOUND
            - EXCLUSION_RENEGOTIATION_UNDERWAY
            - FGTS_EXECUTION_ALREADY_REFUSED
            - FGTS_EXECUTION_CONTRACT_TAKEN
            - FGTS_EXECUTION_OUTCOME_UNRESOLVED
            - FGTS_EXECUTION_PAYLOAD_MISMATCH
            - FIRST_DEDUCTION_BEFORE_COMPETENCIA
            - FORMALIZATION_DEADLINE_EXCEEDED
            - FUNDO_CNPJ_CONFLICT
            - FUNDO_DEACTIVATED
            - FUNDO_DIFFERS_FROM_QUOTE
            - FUNDO_INTERNAL
            - FUNDO_INVALID_ID
            - FUNDO_INVALID_INPUT
            - FUNDO_NOT_FOUND
            - FUNDO_NOT_REGISTERED
            - FUNDO_PARTNER_DEACTIVATED
            - FUNDO_POLICY_VIOLATION
            - FUNDO_REF_CONFLICT
            - FUNDO_UNAVAILABLE
            - HELD_REPASSE_MONTH_CLOSED
            - HELD_REPASSE_MONTH_MISMATCH
            - HELD_REPASSE_NOT_FOUND
            - HELD_REPASSE_UNATTRIBUTABLE
            - IDEMPOTENCY_KEY_REUSE
            - IDEMPOTENCY_OUTCOME_UNRECORDED
            - IDEMPOTENCY_RECORD_UNREADABLE
            - IDEMPOTENCY_REPLAY_UNAVAILABLE
            - IDEMPOTENCY_STATE_UNRECOGNISED
            - INVALID_CONTRACT_NUMBER
            - INVALID_CURSOR
            - INVALID_EVENTS_INVALID_CURSOR
            - INVALID_EVENT_NOT_FOUND
            - INVALID_EVENT_NOT_REQUEUEABLE
            - INVALID_PAGE_LIMIT
            - INVENTORY_UNAVAILABLE
            - LOAN_PRODUCT_VERSION_UNKNOWN
            - MARGIN_SNAPSHOT_INCONSISTENT
            - MATRICULA_DIFFERS_FROM_PROPOSAL
            - ORIGINADOR_DEACTIVATED
            - ORIGINADOR_INTERNAL
            - ORIGINADOR_INVALID_ID
            - ORIGINADOR_INVALID_INPUT
            - ORIGINADOR_NOT_FOUND
            - ORIGINADOR_REF_CONFLICT
            - ORIGINADOR_UNAVAILABLE
            - OUTCOME_UNKNOWN
            - PORTABILIDADE_WINDOW_EXPIRED
            - PRELEILAO_POLICY_INVALID
            - PRELEILAO_WORKER_UNAVAILABLE
            - RAIL_COMMANDS_INTERNAL
            - RAIL_COMMANDS_INVALID_CURSOR
            - RAIL_COMMANDS_TENANT_REQUIRED
            - RAIL_COMMANDS_UNKNOWN_FILTER
            - RAIL_COMMAND_ALREADY_REFUSED
            - RAIL_COMMAND_ANSWER_NOT_RETAINED
            - RAIL_COMMAND_CLAIM_CONFLICT
            - RAIL_COMMAND_CLOSE_CONTRADICTED
            - RAIL_COMMAND_NOT_CLOSEABLE
            - RAIL_COMMAND_OUTCOME_UNRESOLVED
            - RAIL_COMMAND_PAYLOAD_MISMATCH
            - RATE_OUTSIDE_PRODUCT_RANGE
            - REGISTRATION_NOT_FOUND
            - REGISTRO_B3_AVERBACAO_NAO_CONFIRMADA
            - REGISTRO_B3_CONTRATO_NAO_ENCONTRADO
            - REGISTRO_B3_DATA_REGISTRO_INVALIDA
            - REGISTRO_B3_INTERNAL
            - REGISTRO_B3_JA_INFORMADO
            - REGISTRO_B3_NAO_INFORMADO
            - REGISTRO_B3_UNAVAILABLE
            - REGISTRO_B3_UNWIRED
            - RENEGOTIATION_EXCLUSION_UNDERWAY
            - REPASSE_EXPECTATIONS_INTERNAL
            - REPASSE_EXPECTATIONS_INVALID_CURSOR
            - REPASSE_EXPECTATIONS_UNKNOWN_SITUATION
            - REVERSAO_ORIGINAL_NOT_REPLACED
            - REVERSAO_WINDOW_EXPIRED
            - SALDO_DEVEDOR_INTERNAL
            - SALDO_DEVEDOR_INVALID_CURSOR
            - SALDO_DEVEDOR_NOT_FOUND
            - SALDO_DEVEDOR_TENANT_REQUIRED
            - SALDO_DEVEDOR_UNAVAILABLE
            - STREAMING_HUB_TIMEOUT
            - STREAMING_HUB_UNAVAILABLE
            - TENANT_MANAGER_TIMEOUT
            - TENANT_MANAGER_UNAVAILABLE
            - THROUGHPUT_HISTORY_INTERNAL
            - THROUGHPUT_HISTORY_INVALID_CURSOR
            - THROUGHPUT_HISTORY_TENANT_REQUIRED
            - THROUGHPUT_HISTORY_UNAVAILABLE
            - THROUGH_REQUIRED
            - UNKNOWN_QUERY_PARAMETER
            - VERSION_ADMITS_NO_PESSOA_FISICA
          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.
      type: object
    BidRefusalError:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable product error code. One of the enumerated
            values: the CLT-NNNN catalog codes for the general refusal classes;
            the named command conflicts, which a client branches on to tell one
            conflict from another; the four terminal refusals
            IDEMPOTENCY_STATE_UNRECOGNISED, IDEMPOTENCY_RECORD_UNREADABLE,
            IDEMPOTENCY_OUTCOME_UNRECORDED and IDEMPOTENCY_REPLAY_UNAVAILABLE
            (422), which tell the client to reconcile the original request and
            never retry under a new key; IDEMPOTENCY_KEY_REUSE (422): the key is
            spent on a different request, so send a new key; the codes a single
            surface answers, named after it (FUNDO_*, REGISTRO_B3_*, ...); and
            the 5xx codes naming an upstream (DATAPREV_*, STREAMING_HUB_*,
            TENANT_MANAGER_*, the Access Manager's AUT-0033 and AUT-1021) or an
            unknown outcome, whose detail is client-readable; the Access
            Manager's AUT-1022 (403): the partner credential holds more than one
            originador, so name it in the path; ORIGINADOR_DEACTIVATED and
            FUNDO_PARTNER_DEACTIVATED (403): the originador or fundo the partner
            credential acts for is deactivated, so the bancarizador must
            reactivate it.
          enum:
            - AUT-0033
            - AUT-1021
            - AUT-1022
            - AVERBACAO_ARTIFACT_CONFLICT
            - AVERBACAO_CLAIM_CONFLICT
            - AVERBACAO_DOCUMENTATION_CONFLICT
            - AVERBACAO_EXCLUDED
            - AVERBACAO_HELD_BY_ANOTHER_SENDER
            - AVERBACAO_NOT_ACCEPTED
            - AVERBACAO_OPERATIONS_INTERNAL
            - AVERBACAO_OPERATIONS_INVALID_CURSOR
            - AVERBACAO_OPERATIONS_INVALID_QUERY
            - AVERBACAO_OPERATIONS_UNKNOWN_STATUS
            - AVERBACAO_OPERATION_NOT_FOUND
            - BID_FUND_NOT_ACCEPTED
            - BID_FUND_NOT_IN_PRELEILAO
            - BID_FUND_OUTSIDE_HOURS
            - BID_FUND_OUTSIDE_MANDATE
            - BID_FUND_POLICY_VIOLATION
            - BID_FUND_REQUIRED
            - BID_NO_PROPOSTA_LEFT
            - BID_ORIGINADOR_INACTIVE
            - BID_ORIGINADOR_UNKNOWN
            - BID_PROPOSAL_SLOT_TAKEN
            - BID_QUOTE_NOT_IN_PRELEILAO
            - BID_QUOTE_REVISION_LIMIT
            - BID_QUOTE_UNSECURED_REQUIRED
            - BID_QUOTE_WINDOW_CLOSED
            - BID_SOLICITACAO_TAKEN
            - BID_SOLICITACAO_UNKNOWN
            - BID_SUBMISSIONS_INTERNAL
            - BID_SUBMISSIONS_INVALID_CURSOR
            - BID_SUBMISSIONS_UNKNOWN_SITUATION
            - BOOKING_FIELD_INVALID
            - CEDED_CREDIT_INTERNAL
            - CEDED_CREDIT_NO_FUND_ENTITLEMENT
            - CEDED_CREDIT_UNAVAILABLE
            - CLT-0001
            - CLT-0002
            - CLT-0003
            - CLT-0004
            - CLT-0005
            - CLT-0006
            - CLT-0007
            - CLT-0008
            - CLT-0009
            - CLT-0010
            - CLT-0011
            - CLT-0012
            - CONTRACT_ALREADY_REGISTERED
            - CONTRACT_NOT_BOOKABLE
            - CURSOR_EXPIRED
            - CURSOR_FENCE_MISMATCH
            - DATAPREV_CREDENTIAL_REJECTED
            - DATAPREV_CREDENTIAL_REQUIRED
            - DATAPREV_CREDENTIAL_REVOKED
            - DATAPREV_INVALID_RESPONSE
            - DATAPREV_TIMEOUT
            - DATAPREV_UNAVAILABLE
            - DECLARED_DATES_OUT_OF_ORDER
            - DECLARED_TERMS_INCONSISTENT
            - DISBURSEMENT_CONFIRMATIONS_INTERNAL
            - DISBURSEMENT_CONFIRMATIONS_INVALID_CURSOR
            - DISBURSEMENT_PAYMENT_CONFLICT
            - EVENT_DELIVERY_INTERNAL
            - EXCLUSION_AUTHORITY_CONFLICT
            - EXCLUSION_BOOKING_IDENTITY_INCOMPLETE
            - EXCLUSION_DOCUMENTATION_UNDERWAY
            - EXCLUSION_OPERATIONS_INTERNAL
            - EXCLUSION_OPERATIONS_INVALID_CURSOR
            - EXCLUSION_OPERATIONS_INVALID_QUERY
            - EXCLUSION_OPERATIONS_UNKNOWN_STATUS
            - EXCLUSION_OPERATION_NOT_FOUND
            - EXCLUSION_RENEGOTIATION_UNDERWAY
            - FGTS_EXECUTION_ALREADY_REFUSED
            - FGTS_EXECUTION_CONTRACT_TAKEN
            - FGTS_EXECUTION_OUTCOME_UNRESOLVED
            - FGTS_EXECUTION_PAYLOAD_MISMATCH
            - FIRST_DEDUCTION_BEFORE_COMPETENCIA
            - FORMALIZATION_DEADLINE_EXCEEDED
            - FUNDO_CNPJ_CONFLICT
            - FUNDO_DEACTIVATED
            - FUNDO_DIFFERS_FROM_QUOTE
            - FUNDO_INTERNAL
            - FUNDO_INVALID_ID
            - FUNDO_INVALID_INPUT
            - FUNDO_NOT_FOUND
            - FUNDO_NOT_REGISTERED
            - FUNDO_PARTNER_DEACTIVATED
            - FUNDO_POLICY_VIOLATION
            - FUNDO_REF_CONFLICT
            - FUNDO_UNAVAILABLE
            - HELD_REPASSE_MONTH_CLOSED
            - HELD_REPASSE_MONTH_MISMATCH
            - HELD_REPASSE_NOT_FOUND
            - HELD_REPASSE_UNATTRIBUTABLE
            - IDEMPOTENCY_KEY_REUSE
            - IDEMPOTENCY_OUTCOME_UNRECORDED
            - IDEMPOTENCY_RECORD_UNREADABLE
            - IDEMPOTENCY_REPLAY_UNAVAILABLE
            - IDEMPOTENCY_STATE_UNRECOGNISED
            - INVALID_CONTRACT_NUMBER
            - INVALID_CURSOR
            - INVALID_EVENTS_INVALID_CURSOR
            - INVALID_EVENT_NOT_FOUND
            - INVALID_EVENT_NOT_REQUEUEABLE
            - INVALID_PAGE_LIMIT
            - INVENTORY_UNAVAILABLE
            - LOAN_PRODUCT_VERSION_UNKNOWN
            - MARGIN_SNAPSHOT_INCONSISTENT
            - MATRICULA_DIFFERS_FROM_PROPOSAL
            - ORIGINADOR_DEACTIVATED
            - ORIGINADOR_INTERNAL
            - ORIGINADOR_INVALID_ID
            - ORIGINADOR_INVALID_INPUT
            - ORIGINADOR_NOT_FOUND
            - ORIGINADOR_REF_CONFLICT
            - ORIGINADOR_UNAVAILABLE
            - OUTCOME_UNKNOWN
            - PORTABILIDADE_WINDOW_EXPIRED
            - PRELEILAO_POLICY_INVALID
            - PRELEILAO_WORKER_UNAVAILABLE
            - RAIL_COMMANDS_INTERNAL
            - RAIL_COMMANDS_INVALID_CURSOR
            - RAIL_COMMANDS_TENANT_REQUIRED
            - RAIL_COMMANDS_UNKNOWN_FILTER
            - RAIL_COMMAND_ALREADY_REFUSED
            - RAIL_COMMAND_ANSWER_NOT_RETAINED
            - RAIL_COMMAND_CLAIM_CONFLICT
            - RAIL_COMMAND_CLOSE_CONTRADICTED
            - RAIL_COMMAND_NOT_CLOSEABLE
            - RAIL_COMMAND_OUTCOME_UNRESOLVED
            - RAIL_COMMAND_PAYLOAD_MISMATCH
            - RATE_OUTSIDE_PRODUCT_RANGE
            - REGISTRATION_NOT_FOUND
            - REGISTRO_B3_AVERBACAO_NAO_CONFIRMADA
            - REGISTRO_B3_CONTRATO_NAO_ENCONTRADO
            - REGISTRO_B3_DATA_REGISTRO_INVALIDA
            - REGISTRO_B3_INTERNAL
            - REGISTRO_B3_JA_INFORMADO
            - REGISTRO_B3_NAO_INFORMADO
            - REGISTRO_B3_UNAVAILABLE
            - REGISTRO_B3_UNWIRED
            - RENEGOTIATION_EXCLUSION_UNDERWAY
            - REPASSE_EXPECTATIONS_INTERNAL
            - REPASSE_EXPECTATIONS_INVALID_CURSOR
            - REPASSE_EXPECTATIONS_UNKNOWN_SITUATION
            - REVERSAO_ORIGINAL_NOT_REPLACED
            - REVERSAO_WINDOW_EXPIRED
            - SALDO_DEVEDOR_INTERNAL
            - SALDO_DEVEDOR_INVALID_CURSOR
            - SALDO_DEVEDOR_NOT_FOUND
            - SALDO_DEVEDOR_TENANT_REQUIRED
            - SALDO_DEVEDOR_UNAVAILABLE
            - STREAMING_HUB_TIMEOUT
            - STREAMING_HUB_UNAVAILABLE
            - TENANT_MANAGER_TIMEOUT
            - TENANT_MANAGER_UNAVAILABLE
            - THROUGHPUT_HISTORY_INTERNAL
            - THROUGHPUT_HISTORY_INVALID_CURSOR
            - THROUGHPUT_HISTORY_TENANT_REQUIRED
            - THROUGHPUT_HISTORY_UNAVAILABLE
            - THROUGH_REQUIRED
            - UNKNOWN_QUERY_PARAMETER
            - VERSION_ADMITS_NO_PESSOA_FISICA
          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
        refusal:
          $ref: '#/components/schemas/BidRefusalExtension'
          description: >-
            Exact durable refusal. Local refusals publish source, field, rule,
            and detail; Dataprev refusals additionally require a bounded code.
            Provider free text is never published.
        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:
        - refusal
      type: object
    BidProposalRequest:
      additionalProperties: false
      properties:
        contatos:
          description: >-
            Client contacts, at most one for each client-owned type 1 through 4.
            Type 0 is server-owned and rejected here. When the tenant has a
            portal base URL registered the server injects it as type 0; when it
            does not, at least one contact of type 1 through 4 is required.
          items:
            $ref: '#/components/schemas/BidContactRequest'
          maxItems: 4
          type:
            - array
            - 'null'
        dataHoraValidadeProposta:
          description: Proposal validity instant, RFC 3339 UTC.
          examples:
            - '2030-01-01T10:00:00Z'
          format: date-time
          type: string
        numeroParcelas:
          description: Number of instalments, capped by Manual 001 v1.10 §3.1.1.
          examples:
            - 12
          format: int64
          maximum: 96
          minimum: 1
          type: integer
        percVerbaRescisoriaGarantia:
          description: Optional severance-pay percentage pledged as collateral.
          examples:
            - '15.00'
          maxLength: 6
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        temGarantias:
          description: Whether this proposal pledges FGTS collateral.
          examples:
            - true
          type: boolean
        valorCETAnual:
          description: Annual total effective cost in percent.
          examples:
            - '11.00'
          maxLength: 10
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorCETMensal:
          description: Monthly total effective cost in percent.
          examples:
            - '0.90'
          maxLength: 10
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorEmprestimo:
          description: Principal plus financed costs as an exact decimal string.
          examples:
            - '2160.00'
          maxLength: 13
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorIOF:
          description: IOF amount as an exact decimal string.
          examples:
            - '10.00'
          maxLength: 10
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorLiberado:
          description: Amount released to the worker as an exact decimal string.
          examples:
            - '2000.00'
          maxLength: 13
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorMultaRescisoriaGarantiaFgts:
          description: Optional rescission-penalty amount pledged as collateral.
          examples:
            - '300.00'
          maxLength: 13
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorParcela:
          description: Instalment amount as an exact decimal string.
          examples:
            - '180.00'
          maxLength: 13
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorSaldoDisponivelGarantiaFgts:
          description: Optional consignable FGTS balance pledged as collateral.
          examples:
            - '600.00'
          maxLength: 13
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorTaxaAnual:
          description: Annual interest rate in percent.
          examples:
            - '10.00'
          maxLength: 10
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorTaxaMensal:
          description: Monthly interest rate in percent.
          examples:
            - '0.80'
          maxLength: 10
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
      required:
        - dataHoraValidadeProposta
        - numeroParcelas
        - valorParcela
        - valorLiberado
        - valorEmprestimo
        - valorIOF
        - valorTaxaAnual
        - valorCETAnual
        - valorTaxaMensal
        - valorCETMensal
        - temGarantias
      type: object
    BidProposalResponse:
      additionalProperties: false
      properties:
        accepted:
          description: True only when the rail's codigo equals BD.
          examples:
            - true
          type: boolean
        codigo:
          description: >-
            Bounded per-proposal rail outcome code. The complete trimmed
            upstream value must match the safe shape; malformed values are
            suppressed whole, never rewritten into another code. Upstream free
            text is never returned or persisted.
          examples:
            - BD
          maxLength: 32
          pattern: ^[A-Za-z0-9_-]*$
          type: string
        dataHoraValidadeProposta:
          description: Proposal validity instant echoed by Dataprev.
          examples:
            - '2030-01-01T10:00:00Z'
          format: date-time
          type: string
        numeroProposta:
          description: Server-minted proposal identity echoed by Dataprev.
          examples:
            - 7K9M2P4R6T8V3W5X2Y4Z
          type: string
      required:
        - numeroProposta
        - accepted
        - codigo
        - dataHoraValidadeProposta
      type: object
    PreleilaoQuoteReceiptProposta:
      additionalProperties: false
      properties:
        dataHoraValidadeProposta:
          description: Validity of the proposal, UTC.
          examples:
            - '2026-11-10T18:00:00Z'
          type: string
        numeroProposta:
          description: >-
            Proposal number the rail receives for this proposal; stable across
            revisions.
          examples:
            - 7K9M2P4R6T8V3W5X2Y4Z
          type: string
        temGarantias:
          description: Whether this proposal carries guarantees.
          examples:
            - false
          type: boolean
      required:
        - numeroProposta
        - temGarantias
        - dataHoraValidadeProposta
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
    BidRefusalExtension:
      oneOf:
        - $ref: '#/components/schemas/BidLocalRefusalExtension'
        - $ref: '#/components/schemas/BidDataprevRefusalExtension'
    BidContactRequest:
      additionalProperties: false
      properties:
        contato:
          description: >-
            Client-supplied contact value. Type 1 uses
            <telefone>?text=<URL-encoded text>. The gateway separately injects
            the tenant portal URL.
          examples:
            - bidder@example.com
          maxLength: 255
          minLength: 1
          type: string
        tipo:
          description: >-
            Optional client contact type: 1 WhatsApp, 2 phone, 3 email, 4 other.
            Type 0 is server-owned and refused in the body.
          examples:
            - 3
          format: int64
          maximum: 4
          minimum: 1
          type: integer
      required:
        - tipo
        - contato
      type: object
    BidLocalRefusalExtension:
      additionalProperties: false
      properties:
        detail:
          description: Bounded client-safe explanation of the refusal.
          examples:
            - matricula must match the discovered solicitacao
          type: string
        field:
          description: Request field refused by the local rail rule.
          examples:
            - matricula
          type: string
        rule:
          description: Stable local rail-rule identifier.
          examples:
            - MATRICULA_MATCH
          type: string
        source:
          description: Stable local refusal provenance.
          enum:
            - local
          type: string
      required:
        - source
        - field
        - rule
        - detail
      type: object
    BidDataprevRefusalExtension:
      additionalProperties: false
      properties:
        code:
          description: >-
            Required bounded Dataprev code, comma-joined when the rail listed
            several; provider free text is never exposed.
          examples:
            - OL
          maxLength: 32
          type: string
        detail:
          description: >-
            Bounded client-safe explanation; provider free text is never
            exposed.
          examples:
            - the rail refused the proposal set
          type: string
        field:
          description: Stable field classification for the Dataprev refusal.
          examples:
            - rail
          type: string
        rule:
          description: Stable gateway classification of the Dataprev refusal.
          examples:
            - DATAPREV_412
          type: string
        source:
          description: Stable Dataprev refusal provenance.
          enum:
            - dataprev
          type: string
      required:
        - source
        - code
        - field
        - rule
        - detail
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

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