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

# Renegociar um ou mais empréstimos legados em um novo contrato

> Atua como proxy de renegociar-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.3) e consolida os contratos indicados em contratosLegados em um novo contrato. codigoTipoRenegociacao seleciona o fluxo padrão (1) ou portabilidade (2). Antes de chamar a rede, o gateway valida a estrutura da portabilidade: numeroUnico só pode aparecer nesse fluxo, ao menos um item deve informá-lo e dois itens não podem compartilhar o mesmo valor. A Dataprev continua responsável por validar titularidade, presença de contrato de folha e redução da taxa. Na portabilidade, o contrato portado não é excluído automaticamente; isso cabe ao banco de origem. Os contratos da instituição solicitante sem numeroUnico são excluídos após a conclusão, e só pode haver troco quando todos os contratos envolvidos estiverem liquidados. Uma resposta bem-sucedida contém codigo SUCESSO e numeroContrato não vazio; errosContratosPortados pode relatar falhas por contrato mesmo com o novo contrato averbado. Outros códigos retornam 422 com o código da rede. X-Idempotency é obrigatório.



## 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: >-
    Superfície OpenAPI 3.1 para Lerian Consignado — Dataprev. o API cobre
    credenciais tenant e configuração de rede, margem do trabalhador, leilões e
    licitações de empréstimos, registro e ciclo de vida do contrato, confirmação
    de desembolso, portabilidade, refinanciamento, renegociação, garantias FGTS,
    reconciliação, fundos, atribuições, uso, rendimento e assinaturas de
    eventos. o material secreto é gravado no armazenamento secreto tenant e
    nunca é devolvido por nenhuma operação.
  license:
    name: Lerian Studio General License
  title: Lerian Consignado API
  version: v1.0.0
servers:
  - url: https://consignado.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Custódia de credenciais do Dataprev e configuração pública do rail por
      tenant (upload, status, rotação, revogação, código do solicitante e URL
      base do portal do trabalhador)
    name: Credentials
  - description: >-
      Uso do gateway consignado no escopo do tenant: agregação de unidades
      faturáveis ​​com preço por competência
    name: Consignado Usage
  - description: >-
      Per-tenant plano de controle de assinatura do streaming-hub (listar,
      criar, obter, girar, revogar e testar a entrega)
    name: Subscriptions
  - description: >-
      Superfície folha de pagamento da rail Dataprev: leituras de saldo e
      autorização FGTS, execução de garantias FGTS, suspensão de contrato,
      reativação e alteração de prazo, documentos contratuais próprios da rede e
      leituras sob demanda de transações, escriturações, repasses e rescisões
      trabalhistas
    name: Consignado Rail
  - description: >-
      Superfície de comando da rede síncrona: as operações que um bancarizador
      sem o credor realizam sobre HTTP. cada um compartilha sua implementação de
      comando com o gatilho de evento de credor equivalente.
    name: Consignado Rail Commands
  - description: >-
      Confirmação de desembolso de propriedade do gateway: um banco cliente
      registrando o dinheiro que ALREADY pagou a um trabalhador. ele não cruza
      nenhuma fronteira governamental e não representa nenhuma operação
      Dataprev.
    name: Consignado Disbursement
  - description: >
      Taxa de transferência da rail Dataprev de saída de autoatendimento
      per-tenant: leia e defina o próprio requests-per-second deste tenant,
      incluindo uma pausa deliberada em zero
    name: Consignado Throughput
paths:
  /v1/consignado/legacy-contracts/renegociacao:
    post:
      tags:
        - Consignado Rail
      summary: Renegociar um ou mais empréstimos legados em um novo contrato
      description: >-
        Atua como proxy de renegociar-emprestimo-legado-trabalhador (Manual 007
        v1.4 §3.3) e consolida os contratos indicados em contratosLegados em um
        novo contrato. codigoTipoRenegociacao seleciona o fluxo padrão (1) ou
        portabilidade (2). Antes de chamar a rede, o gateway valida a estrutura
        da portabilidade: numeroUnico só pode aparecer nesse fluxo, ao menos um
        item deve informá-lo e dois itens não podem compartilhar o mesmo valor.
        A Dataprev continua responsável por validar titularidade, presença de
        contrato de folha e redução da taxa. Na portabilidade, o contrato
        portado não é excluído automaticamente; isso cabe ao banco de origem. Os
        contratos da instituição solicitante sem numeroUnico são excluídos após
        a conclusão, e só pode haver troco quando todos os contratos envolvidos
        estiverem liquidados. Uma resposta bem-sucedida contém codigo SUCESSO e
        numeroContrato não vazio; errosContratosPortados pode relatar falhas por
        contrato mesmo com o novo contrato averbado. Outros códigos retornam 422
        com o código da rede. X-Idempotency é obrigatório.
      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
            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
        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. 1 to 15
            alphanumeric characters, no diacritics (§3.3.1 + its footnote 3).
          examples:
            - 99999999999AN1
          maxLength: 15
          minLength: 1
          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: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          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

````