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

# Registrar un préstamo preexistente (legado)

> Esta operación actúa como proxy de incluir-emprestimo-legado-trabalhador (Manual 007 v1.4 §3.1): registra un contrato que el tenant celebró antes de que existiera el modelo de esta red. El trabajador deja de ser elegible para una nueva contratación en esta red hasta que el contrato legado sea excluido o renegociado. Dataprev no realiza validación documental de los contratos legados (§2.2.1.3); la veracidad de lo enviado es responsabilidad de la institución. Cuando codigoTipoContrato es 2 (folha), codigoInscricaoEmpregador, numeroInscricaoEmpregador y matricula pasan a ser obligatorios; esta pasarela demuestra esa condición antes de llamar a la red, ya que ni la red ni el Swagger oficial la aplican. Se requiere X-Idempotency. Una solicitud reintentada que llega al propio HX de la red ("empréstimo já cadastrado") responde correctamente en lugar de rechazarla.



## OpenAPI

````yaml es/openapi/v3-current/consignado.yaml post /v1/consignado/legacy-contracts
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:
    post:
      tags:
        - Consignado Rail
      summary: Registrar un préstamo preexistente (legado)
      description: >-
        Esta operación actúa como proxy de incluir-emprestimo-legado-trabalhador
        (Manual 007 v1.4 §3.1): registra un contrato que el tenant celebró antes
        de que existiera el modelo de esta red. El trabajador deja de ser
        elegible para una nueva contratación en esta red hasta que el contrato
        legado sea excluido o renegociado. Dataprev no realiza validación
        documental de los contratos legados (§2.2.1.3); la veracidad de lo
        enviado es responsabilidad de la institución. Cuando codigoTipoContrato
        es 2 (folha), codigoInscricaoEmpregador, numeroInscricaoEmpregador y
        matricula pasan a ser obligatorios; esta pasarela demuestra esa
        condición antes de llamar a la red, ya que ni la red ni el Swagger
        oficial la aplican. Se requiere X-Idempotency. Una solicitud reintentada
        que llega al propio HX de la red ("empréstimo já cadastrado") responde
        correctamente en lugar de rechazarla.
      operationId: incluirConsignadoEmprestimoLegado
      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-incluir-0001
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegadoIncluirBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegadoOperationResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    LegadoIncluirBody:
      additionalProperties: false
      properties:
        codigoInscricaoEmpregador:
          description: >-
            Employer inscription type: 1 CNPJ, 2 CPF. Required when
            codigoTipoContrato is 2 (folha).
          enum:
            - '1'
            - '2'
          examples:
            - '1'
          type: string
        codigoTipoContrato:
          description: >-
            1 = empréstimo não consignado sem garantia; 2 = empréstimo com
            descontos em folha de pagamento. When 2, codigoInscricaoEmpregador,
            numeroInscricaoEmpregador and matricula become required (§3.1.1, a
            condition the official Swagger does not express).
          enum:
            - 1
            - 2
          examples:
            - 2
          format: int64
          type: integer
        cpfTrabalhador:
          description: Worker CPF, exactly 11 digits.
          examples:
            - '99999999999'
          pattern: ^[0-9]{11}$
          type: string
        dataFimContrato:
          description: End date of the legado contract, RFC 3339 UTC.
          examples:
            - '2025-12-23T00:00:00Z'
          format: date-time
          type: string
        dataInicioContrato:
          description: Start date of the legado contract, RFC 3339 UTC.
          examples:
            - '2024-09-03T00:00:00Z'
          format: date-time
          type: string
        matricula:
          description: >-
            Matrícula assigned to the worker by the employer. Required when
            codigoTipoContrato is 2 (folha).
          examples:
            - 99999999999-A
          maxLength: 30
          type: string
        numeroContrato:
          description: Number of the legado contract, freely chosen by the institution.
          examples:
            - 99999999999AL1
          maxLength: 20
          minLength: 1
          type: string
        numeroInscricaoEmpregador:
          description: >-
            Employer inscription number: 14 digits for CNPJ, 11 for CPF
            (matching codigoInscricaoEmpregador; §3.1.1's own '15 algarismos' is
            a stale maximum, see ports.ValidateNumeroInscricaoEmpregador).
            Required when codigoTipoContrato is 2 (folha).
          examples:
            - '42422253000101'
          pattern: ^[0-9]{11,14}$
          type: string
        numeroParcelas:
          description: Total number of instalments of the legado loan.
          examples:
            - 15
          format: int64
          maximum: 999
          minimum: 1
          type: integer
        qtdParcelasPagas:
          description: Number of instalments already paid.
          examples:
            - 7
          format: int64
          maximum: 999
          minimum: 0
          type: integer
        valorCETMensal:
          description: >-
            valorCETMensal — Custo Efetivo Total, monthly percent decimal
            string.
          examples:
            - '0.5'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorEmprestimo:
          description: valorEmprestimo — the legado loan's principal (decimal string, BRL).
          examples:
            - '12000.00'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorParcela:
          description: >-
            valorParcela — the legado loan's instalment amount (decimal string,
            BRL).
          examples:
            - '831.34'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorSaldoDevedor:
          description: >-
            valorSaldoDevedor — present value of the remaining instalments, base
            date the day of the request (Manual 007 §3.1.1's OWN definition, not
            Manual 015's — decimal string, BRL).
          examples:
            - '6512.46'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        valorTaxaMensal:
          description: valorTaxaMensal — monthly interest rate, percent decimal string.
          examples:
            - '0.5'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
      required:
        - cpfTrabalhador
        - codigoTipoContrato
        - numeroContrato
        - dataInicioContrato
        - dataFimContrato
        - numeroParcelas
        - qtdParcelasPagas
        - valorEmprestimo
        - valorParcela
        - valorSaldoDevedor
        - valorTaxaMensal
        - valorCETMensal
      type: object
    LegadoOperationResponse:
      additionalProperties: false
      properties:
        idempotent:
          description: >-
            True when the rail answered its own HX (incluir)/HY (excluir)
            idempotency code rather than fresh confirmation. On excluir (HY)
            this means the contract is confirmed gone, which is sound. On
            incluir (HX) it means ONLY that this numeroContrato is already
            registered on the rail — the values THIS request carried
            (valorEmprestimo, valorParcela, etc.) were NOT compared against what
            is stored. To correct a legado registered with wrong values, exclude
            it (motivo 9) and include it again; do not rely on idempotent:true
            as proof the stored values match.
          examples:
            - false
          type: boolean
        mensagem:
          description: The rail's own message.
          examples:
            - Emprestimo legado incluido com sucesso
          type: string
        numeroContrato:
          description: The contract number the rail confirmed the operation against.
          examples:
            - 99999999999AL1
          type: string
      required:
        - mensagem
        - numeroContrato
        - idempotent
      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
    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

````