> ## 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.

# Renegotiate one or more legado loans into a new contract

> Proxies renegociar-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.3): folds every contract named in contratosLegados into a single new Plataforma contract. codigoTipoRenegociacao selects Padrão (1) or Portabilidade (2); this gateway proves the structural half of the Portabilidade rules before the rail is called — numeroUnico populated only under Portabilidade, at least one item carrying it, and no two items sharing the same one — while whether the requester actually holds each legado contract, whether an existing folha (tipoContrato=2) contract was included, and whether the new rate undercuts the original are left to the rail's own judgment (Dataprev performs no documental validation of legado contracts, §2.2.1.3). On Portabilidade (§2.2.1.3): the ported contract itself is NOT excluded automatically — exclusion is the origin bank's own responsibility; every contract of the REQUESTER that carries no numeroUnico is excluded automatically once the operation completes; and any troco (change) is only permitted when every contract INVOLVED in the operation — including the ported one itself — is fully settled (§2.2.1.3). A SUCCESSFUL round trip is codigo SUCESSO with a non-empty numeroContrato: read codigo and errosContratosPortados in the response body — the rail can report per-legado-contract failures inside that same 200 while the new contract still averbates; any other codigo means no new contract was minted and surfaces as a 422 naming the rail's own code. X-Idempotency is required; this operation names no idempotency pair of its own, so a retry is refused by the rail on its own terms.



## OpenAPI

````yaml /pt/openapi/v3-current/consignado.yaml post /v1/consignado/legacy-contracts/renegociacao
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: >-
      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/legacy-contracts/renegociacao:
    post:
      tags:
        - Consignado Rail
      summary: Renegotiate one or more legado loans into a new contract
      description: >-
        Proxies renegociar-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.3):
        folds every contract named in contratosLegados into a single new
        Plataforma contract. codigoTipoRenegociacao selects Padrão (1) or
        Portabilidade (2); this gateway proves the structural half of the
        Portabilidade rules before the rail is called — numeroUnico populated
        only under Portabilidade, at least one item carrying it, and no two
        items sharing the same one — while whether the requester actually holds
        each legado contract, whether an existing folha (tipoContrato=2)
        contract was included, and whether the new rate undercuts the original
        are left to the rail's own judgment (Dataprev performs no documental
        validation of legado contracts, §2.2.1.3). On Portabilidade (§2.2.1.3):
        the ported contract itself is NOT excluded automatically — exclusion is
        the origin bank's own responsibility; every contract of the REQUESTER
        that carries no numeroUnico is excluded automatically once the operation
        completes; and any troco (change) is only permitted when every contract
        INVOLVED in the operation — including the ported one itself — is fully
        settled (§2.2.1.3). A SUCCESSFUL round trip is codigo SUCESSO with a
        non-empty numeroContrato: read codigo and errosContratosPortados in the
        response body — the rail can report per-legado-contract failures inside
        that same 200 while the new contract still averbates; any other codigo
        means no new contract was minted and surfaces as a 422 naming the rail's
        own code. X-Idempotency is required; this operation names no idempotency
        pair of its own, so a retry is refused by the rail on its own terms.
      operationId: renegociarConsignadoEmprestimoLegado
      parameters:
        - description: >-
            Client-chosen idempotency key. REQUIRED: an absent key is 422, never
            a generated default.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: >-
              Client-chosen idempotency key. REQUIRED: an absent key is 422,
              never a generated default.
            examples:
              - idem-legado-renegociar-0001
            maxLength: 255
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegadoRenegociarBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegadoRenegociarResponse'
          description: OK
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            A conflict with the durable command this contract already carries.
            RAIL_COMMAND_CLAIM_CONFLICT means the contract already holds a
            command of this kind under another idempotency key; follow that
            claim. RAIL_COMMAND_PAYLOAD_MISMATCH means this key already holds a
            different command; resend the original under it, or use a new key
            for a different command. RAIL_COMMAND_ALREADY_REFUSED means the
            command under this key ended refused (by Dataprev, or by the gateway
            when its call never left or M005 showed it never ran), so a
            corrected request needs a new key. RAIL_COMMAND_OUTCOME_UNRESOLVED
            means the command under this key has no known outcome yet; read GET
            /v1/consignado/rail-commands and never send it under a new key.
            RAIL_COMMAND_ANSWER_NOT_RETAINED means the command committed but its
            original answer was not kept, so read the contract's current state
            instead of resending. A 409 carrying CLT-0007 and the detail "an
            identical request is already in flight" is not definitive: the first
            call is still running, so 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:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            OUTCOME_UNKNOWN: Dataprev answered with a code that settles the
            command neither way, did not answer in time, or answered without its
            envelope, so it is parked with its outcome unknown; never resend it
            under a new key, read GET /v1/consignado/rail-commands.
            DATAPREV_UNAVAILABLE: Dataprev could not take the command. When
            nothing executed (an OZ competência turnover, or a call that never
            left the gateway) the command closed refused and the detail says so:
            a resend takes a new X-Idempotency key.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    LegadoRenegociarBody:
      additionalProperties: false
      properties:
        cnpjOperador:
          description: >-
            CNPJ of the operator (correspondente, cooperado or similar)
            responsible for the operation, exactly 14 digits, unpunctuated.
            Optional (§3.3.1) — omitted entirely rather than sent malformed;
            competenciaInicioDesconto below is the other optional field on this
            body. Dataprev performs no documental validation of legado data
            (§2.2.1.3), so this shape guard is the only one the CNPJ gets before
            the rail is spent.
          examples:
            - '99999999999962'
          pattern: ^[0-9]{14}$
          type: string
        codigoInscricaoEmpregador:
          description: 'Employer inscription type: 1 CNPJ, 2 CPF.'
          enum:
            - '1'
            - '2'
          examples:
            - '1'
          type: string
        codigoTipoRenegociacao:
          description: >-
            1 = Padrão; 2 = Portabilidade. Portabilidade requires at least one
            contratoLegado carrying numeroUnico; Padrão forbids numeroUnico on
            every item.
          enum:
            - 1
            - 2
          examples:
            - 1
          format: int64
          type: integer
        competenciaInicioDesconto:
          description: >-
            Payroll competência of the first deduction, yyyyMM. Optional; the
            rail assumes the current competência when omitted.
          examples:
            - '202504'
          pattern: ^[0-9]{6}$
          type: string
        contratosLegados:
          description: >-
            Every legado contract folded into this renegociação (§3.3.1,
            Obrigatório=Sim).
          examples:
            - - codigoIF: '999'
                numeroContrato: 99999999999AL1
          items:
            $ref: '#/components/schemas/LegadoContratoRenegociacao'
          minItems: 1
          type:
            - array
            - 'null'
        cpfTrabalhador:
          description: Worker CPF, exactly 11 digits.
          examples:
            - '99999999999'
          pattern: ^[0-9]{11}$
          type: string
        dataFimContrato:
          description: End date of the NEW consignado contract, RFC 3339 UTC.
          examples:
            - '2026-06-23T00:00:00Z'
          format: date-time
          type: string
        dataInicioContrato:
          description: Start date of the NEW consignado contract, RFC 3339 UTC.
          examples:
            - '2025-04-03T00:00:00Z'
          format: date-time
          type: string
        dataPrimeiroDesconto:
          description: >-
            Date of the first payroll deduction of the NEW contract, RFC 3339
            UTC.
          examples:
            - '2025-04-23T00:00:00Z'
          format: date-time
          type: string
        matricula:
          description: >-
            Matrícula assigned to the worker by the employer. Cannot be blank or
            whitespace-only.
          examples:
            - 99999999999-A
          maxLength: 30
          pattern: ^\S(.*\S)?$
          type: string
        nomeTrabalhador:
          description: >-
            Worker's full name (Manual 007 §3.3.1 publishes 90 characters — the
            mirrored Swagger's 100 is not the bound this gateway enforces).
            Cannot be blank or whitespace-only.
          examples:
            - Trabalhador 99999999999
          maxLength: 90
          pattern: ^\S(.*\S)?$
          type: string
        numeroContrato:
          description: >-
            The NEW contract's number, minted by the CLIENT: 2 to 15 letters or
            digits, without spaces, accents or symbols.
          examples:
            - 99999999999AN1
          maxLength: 15
          minLength: 2
          pattern: ^[A-Za-z0-9]+$
          type: string
        numeroInscricaoEmpregador:
          description: >-
            Employer inscription number: 14 digits for CNPJ, 11 for CPF
            (matching codigoInscricaoEmpregador; §3.3.1's own '15 algarismos' is
            a stale maximum, see ports.ValidateNumeroInscricaoEmpregador).
          examples:
            - '42422253000101'
          pattern: ^[0-9]{11,14}$
          type: string
        numeroParcelas:
          description: Total number of instalments of the NEW contract.
          examples:
            - 15
          format: int64
          maximum: 999
          minimum: 1
          type: integer
        valorCETAnual:
          description: valorCETAnual — Custo Efetivo Total, annual percent decimal string.
          examples:
            - '4.91'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorCETMensal:
          description: >-
            valorCETMensal — Custo Efetivo Total, monthly percent decimal
            string.
          examples:
            - '0.4'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorEmprestimo:
          description: >-
            valorEmprestimo — the new contract's principal (decimal string,
            BRL).
          examples:
            - '12000.00'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorIOF:
          description: >-
            valorIOF — the IOF charged, in reais (decimal string, BRL). Required
            by the manual despite the mirrored Swagger's required list omitting
            it.
          examples:
            - '0.00'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorLiberado:
          description: >-
            valorLiberado — amount delivered to the worker (decimal string,
            BRL). Required by the manual despite the mirrored Swagger's required
            list omitting it.
          examples:
            - '12000.00'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorParcela:
          description: >-
            valorParcela — the new contract's instalment amount (decimal string,
            BRL).
          examples:
            - '825.10'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorTaxaAnual:
          description: >-
            valorTaxaAnual — annual interest rate, percent decimal string. Must
            stay below the original legado contract's own rate — a comparison
            this gateway holds no local record of and leaves to the rail.
          examples:
            - '4.91'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorTaxaMensal:
          description: valorTaxaMensal — monthly interest rate, percent decimal string.
          examples:
            - '0.4'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
      required:
        - codigoInscricaoEmpregador
        - cpfTrabalhador
        - dataFimContrato
        - dataInicioContrato
        - dataPrimeiroDesconto
        - matricula
        - nomeTrabalhador
        - numeroContrato
        - numeroInscricaoEmpregador
        - numeroParcelas
        - codigoTipoRenegociacao
        - contratosLegados
        - valorCETAnual
        - valorCETMensal
        - valorEmprestimo
        - valorIOF
        - valorLiberado
        - valorParcela
        - valorTaxaAnual
        - valorTaxaMensal
      type: object
    LegadoRenegociarResponse:
      additionalProperties: false
      properties:
        codigo:
          description: >-
            The rail's own outcome code — a closed enum of roughly 290 values
            including SUCESSO. NOT redundant with the 200 status: read this
            field.
          examples:
            - SUCESSO
          type: string
        competenciaInicioDesconto:
          description: Payroll competência of the first deduction, yyyyMM.
          examples:
            - '202504'
          type: string
        erros:
          description: Top-level errors, if any.
          items:
            $ref: '#/components/schemas/LegadoRenegociarErro'
          type:
            - array
            - 'null'
        errosContratosPortados:
          description: >-
            Per-legado-contract failures, if any. A non-empty list here does NOT
            mean the new contract failed to averbate.
          items:
            $ref: '#/components/schemas/LegadoRenegociarContratoErro'
          type:
            - array
            - 'null'
        mensagem:
          description: The rail's own message.
          examples:
            - Renegociacao efetuada com sucesso
          type: string
        numeroContrato:
          description: The new contract's number, as confirmed by the rail.
          examples:
            - 99999999999AN1
          type: string
      required:
        - codigo
        - mensagem
        - numeroContrato
        - competenciaInicioDesconto
      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; and the Access
            Manager's AUT-1022 (403): the partner credential holds more than one
            originador, so name it in the path.
          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_NO_PROPOSTA_LEFT
            - BID_ORIGINADOR_INACTIVE
            - BID_ORIGINADOR_UNKNOWN
            - BID_PROPOSAL_SLOT_TAKEN
            - 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
            - 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_INTERNAL
            - FUNDO_INVALID_ID
            - FUNDO_INVALID_INPUT
            - FUNDO_NOT_FOUND
            - FUNDO_NOT_REGISTERED
            - 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_INTERNAL
            - ORIGINADOR_INVALID_ID
            - ORIGINADOR_INVALID_INPUT
            - ORIGINADOR_NOT_FOUND
            - ORIGINADOR_REF_CONFLICT
            - ORIGINADOR_UNAVAILABLE
            - OUTCOME_UNKNOWN
            - PORTABILIDADE_WINDOW_EXPIRED
            - 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_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
    LegadoContratoRenegociacao:
      additionalProperties: false
      properties:
        codigoIF:
          description: >-
            COMPE/CBC of the institution that holds this legado contract, 1 to 3
            digits (§3.3.1).
          examples:
            - '999'
          maxLength: 3
          pattern: ^[0-9]{1,3}$
          type: string
        numeroContrato:
          description: >-
            The legado contract's own number: 1 to 20 characters, livre escolha
            da instituição. This is not the new-contract 15-character
            alphanumeric-only field and cannot be blank or whitespace-only.
          examples:
            - 99999999999AL1
          maxLength: 20
          minLength: 1
          pattern: ^\S(.*\S)?$
          type: string
        numeroUnico:
          description: >-
            NU de portabilidade. Populated ONLY when codigoTipoRenegociacao is 2
            (Portabilidade) — the manual's own §3.3.1: 'Preenchido somente em
            caso de Portabilidade'. Modelled as a decimal string: at 21 digits
            it overflows an int64.
          examples:
            - '123456'
          pattern: ^[0-9]{1,21}$
          type: string
      required:
        - codigoIF
        - numeroContrato
      type: object
    LegadoRenegociarErro:
      additionalProperties: false
      properties:
        codigo:
          description: The rail's own error code.
          examples:
            - RC
          type: string
        mensagem:
          description: The rail's own error message.
          examples:
            - Vinculo nao permite renegociacao de legado
          type: string
      required:
        - codigo
        - mensagem
      type: object
    LegadoRenegociarContratoErro:
      additionalProperties: false
      properties:
        codigoIF:
          description: COMPE/CBC of the legado contract that failed.
          examples:
            - '999'
          type: string
        erros:
          description: Why this specific legado contract failed.
          items:
            $ref: '#/components/schemas/LegadoRenegociarErro'
          type:
            - array
            - 'null'
        numeroContrato:
          description: Number of the legado contract that failed.
          examples:
            - 99999999999AL1
          type: string
      required:
        - codigoIF
        - numeroContrato
        - erros
      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
  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.