> ## 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 uno o más préstamos de legado en un nuevo contrato.

> Esta operación actúa como proxy de renegociar-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.3): integra cada contrato nombrado en contratosLegados en un único contrato de plataforma nuevo. CodigoTipoRenegociacao selecciona padrão (1) o portabilidade (2); esta gateway demuestra la mitad estructural de las reglas de portabilidade antes de que se llame a la red (numeroUnico se completa solo bajo portabilidade, al menos un elemento que lo lleva, y no hay dos elementos que compartan el mismo), mientras que si el solicitante realmente posee cada contrato de legado, si se incluyó un contrato folha existente (tipoContrato=2) y si la nueva tarifa socava la original se dejan a criterio de la red. (Dataprev no realiza validación documental de contratos de legado, §2.2.1.3). Sobre portabilidade (§2.2.1.3): el contrato transferido en sí no se excluye automáticamente; la exclusión es responsabilidad del banco de origen; todo contrato del SOLICITANTE que no lleve numeroUnico se excluye automáticamente una vez finalizada la operación; y cualquier troco (cambio) solo se permite cuando todos los contratos involucrados de la operación, incluido el propio transferido, estén completamente liquidados (§2.2.1.3). Un viaje de ida y vuelta correcta es el código SUCESSO con un numeroContrato no vacío: lea el código y errosContratosPortados en el cuerpo de la respuesta: la red puede informar fallas per-legado-contract dentro de ese mismo 200 mientras el nuevo contrato aún se mantiene vigente; cualquier otro código significa que no se acuñó ningún nuevo contrato y aparece como un 422 nombrando el propio código de la red. Se requiere X-Idempotency; esta operación no nombra ningún par de idempotencia propio, por lo que la red rechaza un reintento en sus propios términos.



## OpenAPI

````yaml es/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: >-
    Superficie OpenAPI 3.1 para Lerian Consignado — Dataprev. API cubre las
    credenciales y la configuración de red de tenant, el margen de los
    trabajadores, las subastas y ofertas de préstamos, el registro y el ciclo de
    vida de los contratos, la confirmación de desembolsos, la portabilidad, la
    refinanciación, la renegociación, las garantías de FGTS, la conciliación,
    los fondos, las asignaciones, el uso, el rendimiento y las suscripciones a
    eventos. El material secreto se escribe en el almacén secreto tenant y
    ninguna operación lo devuelve nunca.
  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: >-
      Custodia de credenciales de Dataprev y configuración pública del rail por
      tenant (carga, estado, rotación, revocación, código del solicitante y URL
      base del portal del trabajador)
    name: Credentials
  - description: >-
      Uso de la gateway del consignado en el ámbito del tenant: agregación de
      unidades facturables con precio por competencia
    name: Consignado Usage
  - description: >-
      Plano de control de suscripción al hub de streaming per-tenant (enumerar,
      crear, obtener, rotar, revocar y probar la entrega)
    name: Subscriptions
  - description: >-
      Superficie de rail de nómina Dataprev: lecturas de saldo y autorización
      FGTS, ejecución de garantía FGTS, suspensión de contrato, reactivación y
      cambios de términos, documentos de contrato propios de la red y lecturas
      bajo demanda de leilão solicitações, escriturações, repasses y
      terminaciones de empleo.
    name: Consignado Rail
  - description: >-
      Superficie de comando de red síncrona: las operaciones de un bancarizador
      sin que el prestamista conduzca sobre HTTP. Cada uno comparte su
      implementación de comando con el activador de evento de prestamista
      equivalente.
    name: Consignado Rail Commands
  - description: >-
      Confirmación de desembolso propiedad de la gateway: un banco cliente que
      registra el dinero que ya pagó a un trabajador. No cruza ninguna frontera
      gubernamental y no representa ninguna operación Dataprev.
    name: Consignado Disbursement
  - description: >
      Rendimiento de red Dataprev saliente de autoservicio per-tenant: lea y
      configure el requests-per-second propio de este tenant, incluida una pausa
      deliberada en cero
    name: Consignado Throughput
paths:
  /v1/consignado/legacy-contracts/renegociacao:
    post:
      tags:
        - Consignado Rail
      summary: Renegociar uno o más préstamos de legado en un nuevo contrato.
      description: >-
        Esta operación actúa como proxy de
        renegociar-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.3): integra
        cada contrato nombrado en contratosLegados en un único contrato de
        plataforma nuevo. CodigoTipoRenegociacao selecciona padrão (1) o
        portabilidade (2); esta gateway demuestra la mitad estructural de las
        reglas de portabilidade antes de que se llame a la red (numeroUnico se
        completa solo bajo portabilidade, al menos un elemento que lo lleva, y
        no hay dos elementos que compartan el mismo), mientras que si el
        solicitante realmente posee cada contrato de legado, si se incluyó un
        contrato folha existente (tipoContrato=2) y si la nueva tarifa socava la
        original se dejan a criterio de la red. (Dataprev no realiza validación
        documental de contratos de legado, §2.2.1.3). Sobre portabilidade
        (§2.2.1.3): el contrato transferido en sí no se excluye automáticamente;
        la exclusión es responsabilidad del banco de origen; todo contrato del
        SOLICITANTE que no lleve numeroUnico se excluye automáticamente una vez
        finalizada la operación; y cualquier troco (cambio) solo se permite
        cuando todos los contratos involucrados de la operación, incluido el
        propio transferido, estén completamente liquidados (§2.2.1.3). Un viaje
        de ida y vuelta correcta es el código SUCESSO con un numeroContrato no
        vacío: lea el código y errosContratosPortados en el cuerpo de la
        respuesta: la red puede informar fallas per-legado-contract dentro de
        ese mismo 200 mientras el nuevo contrato aún se mantiene vigente;
        cualquier otro código significa que no se acuñó ningún nuevo contrato y
        aparece como un 422 nombrando el propio código de la red. Se requiere
        X-Idempotency; esta operación no nombra ningún par de idempotencia
        propio, por lo que la red rechaza un reintento en sus propios términos.
      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

````