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

# Close a parked refinanciamento, renegociação, alteração or legado renegociação by what the Dataprev portal shows

> The bank closes a refinanciamento, renegociação, alteração de termos or legado renegociação the gateway parked in outcome_unknown, stating what the Dataprev portal shows. The close settles the contract as an accepted or refused answer would: the saldo devedor (M015) obligations move in the same commit, and a refinanciamento or renegociação also publishes the outcome fact recovery would: consignado.refinanciamento.efetivado or .recusado, consignado.renegociacao.efetivada or .recusada. An alteração or legado renegociação publishes no fact, as its live answer publishes none.

refused reads nothing at Dataprev: the row closes rejected under response_code GW-BANCO-RECUSADO. On a refinanciamento or renegociação the new contract number is free for a new command and the refusal fact carries reason_code GW-BANCO-RECUSADO (a renegociação's with refused_by dataprev); an alteração or legado renegociação publishes no fact.

accepted on an alteração de termos reads nothing: the row closes accepted under GW-BANCO-ALTERADO and the obligation moves to the terms the call claimed (installments, value and first competência); the bank's statement is not checked against Dataprev. It answers 409 RAIL_COMMAND_NOT_CLOSEABLE for an alteração parked with no claimed terms, or one a later alteração of the same contract supersedes.

accepted on a refinanciamento, renegociação or legado renegociação reads the new contract once through consultar-emprestimo-trabalhador (Manual 005 v1.16 §3.2.1), because its terms come from that read: the row closes accepted under GW-BANCO-REFINANCIADO, GW-BANCO-RENEGOCIADO or GW-BANCO-LEGADO-RENEGOCIADO, the replaced contracts' obligations end (a refinanciamento's each owe a final 0.00), and the new contract's obligation opens. The bank's statement overrides who minted the contract and when (origemAverbacao, dataHoraInclusaoEmprestimo), except a legado renegociação's read must show origemAverbacao 6 (Manual 005, "Renegociação de Empréstimo Legado"); another origem answers 409 RAIL_COMMAND_CLOSE_CONTRADICTED. A read showing the contract absent (HY), another contract, not vigente, with antecipações, or with terms the M015 report cannot carry answers 409 RAIL_COMMAND_CLOSE_CONTRADICTED and writes nothing. A Dataprev fault answers 503 or 504 and writes nothing; then only refused closes the row.

response_message keeps who closed it and what the portal showed ("Fechado pelo banco por <subject>: <portal_evidence>"), and the board shows it. Never write a worker's CPF or name in portal_evidence: evidence that is blank once trimmed, holds a control character, or holds an 11-digit run (dots and dash optional) passing the CPF check digits answers 422 and reaches nothing. A caller whose identity names no subject answers 401.

Sending the same statement again, by the same subject, answers 204 and changes nothing. Anything else on a closed row, an invoking row, a row parked under five minutes ago (a Dataprev answer may still be in flight), or a command of another kind (suspensão, reativação, antecipação de parcela, the reversal and exclusion unwinds, legado inclusão and exclusão) answers 409 RAIL_COMMAND_NOT_CLOSEABLE, including a row the recovery pass closed first. An id this tenant does not hold answers 404. The tenant comes from the validated identity, never from the request.



## OpenAPI

````yaml /es/openapi/v3-current/consignado.yaml post /v1/consignado/rail-commands/{id}/close
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/rail-commands/{id}/close:
    post:
      tags:
        - Consignado Rail Commands
      summary: >-
        Close a parked refinanciamento, renegociação, alteração or legado
        renegociação by what the Dataprev portal shows
      description: >-
        The bank closes a refinanciamento, renegociação, alteração de termos or
        legado renegociação the gateway parked in outcome_unknown, stating what
        the Dataprev portal shows. The close settles the contract as an accepted
        or refused answer would: the saldo devedor (M015) obligations move in
        the same commit, and a refinanciamento or renegociação also publishes
        the outcome fact recovery would: consignado.refinanciamento.efetivado or
        .recusado, consignado.renegociacao.efetivada or .recusada. An alteração
        or legado renegociação publishes no fact, as its live answer publishes
        none.


        refused reads nothing at Dataprev: the row closes rejected under
        response_code GW-BANCO-RECUSADO. On a refinanciamento or renegociação
        the new contract number is free for a new command and the refusal fact
        carries reason_code GW-BANCO-RECUSADO (a renegociação's with refused_by
        dataprev); an alteração or legado renegociação publishes no fact.


        accepted on an alteração de termos reads nothing: the row closes
        accepted under GW-BANCO-ALTERADO and the obligation moves to the terms
        the call claimed (installments, value and first competência); the bank's
        statement is not checked against Dataprev. It answers 409
        RAIL_COMMAND_NOT_CLOSEABLE for an alteração parked with no claimed
        terms, or one a later alteração of the same contract supersedes.


        accepted on a refinanciamento, renegociação or legado renegociação reads
        the new contract once through consultar-emprestimo-trabalhador (Manual
        005 v1.16 §3.2.1), because its terms come from that read: the row closes
        accepted under GW-BANCO-REFINANCIADO, GW-BANCO-RENEGOCIADO or
        GW-BANCO-LEGADO-RENEGOCIADO, the replaced contracts' obligations end (a
        refinanciamento's each owe a final 0.00), and the new contract's
        obligation opens. The bank's statement overrides who minted the contract
        and when (origemAverbacao, dataHoraInclusaoEmprestimo), except a legado
        renegociação's read must show origemAverbacao 6 (Manual 005,
        "Renegociação de Empréstimo Legado"); another origem answers 409
        RAIL_COMMAND_CLOSE_CONTRADICTED. A read showing the contract absent
        (HY), another contract, not vigente, with antecipações, or with terms
        the M015 report cannot carry answers 409 RAIL_COMMAND_CLOSE_CONTRADICTED
        and writes nothing. A Dataprev fault answers 503 or 504 and writes
        nothing; then only refused closes the row.


        response_message keeps who closed it and what the portal showed
        ("Fechado pelo banco por <subject>: <portal_evidence>"), and the board
        shows it. Never write a worker's CPF or name in portal_evidence:
        evidence that is blank once trimmed, holds a control character, or holds
        an 11-digit run (dots and dash optional) passing the CPF check digits
        answers 422 and reaches nothing. A caller whose identity names no
        subject answers 401.


        Sending the same statement again, by the same subject, answers 204 and
        changes nothing. Anything else on a closed row, an invoking row, a row
        parked under five minutes ago (a Dataprev answer may still be in
        flight), or a command of another kind (suspensão, reativação,
        antecipação de parcela, the reversal and exclusion unwinds, legado
        inclusão and exclusão) answers 409 RAIL_COMMAND_NOT_CLOSEABLE, including
        a row the recovery pass closed first. An id this tenant does not hold
        answers 404. The tenant comes from the validated identity, never from
        the request.
      operationId: closeConsignadoRailCommand
      parameters:
        - description: The rail command's id, as GET /v1/consignado/rail-commands lists it.
          in: path
          name: id
          required: true
          schema:
            description: >-
              The rail command's id, as GET /v1/consignado/rail-commands lists
              it.
            examples:
              - 0192f1a0-0000-7000-8000-00000000c101
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloseRailCommandBody'
        required: true
      responses:
        '204':
          description: No Content
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: This tenant holds no rail command with this id.
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            RAIL_COMMAND_NOT_CLOSEABLE means the bank cannot close the row now:
            it is invoking, parked under five minutes ago, a kind the bank does
            not close, an alteração with no claimed terms or one a later
            alteração supersedes, closed with another answer (the recovery
            pass's included), or an original it replaces is held by another live
            contract, which clears once that contract's reversal is recorded.
            RAIL_COMMAND_CLOSE_CONTRADICTED means Dataprev's read contradicts an
            accepted close and nothing was written. 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
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    CloseRailCommandBody:
      additionalProperties: false
      properties:
        outcome:
          description: >-
            What the Dataprev portal shows: accepted, the new contract exists;
            refused, it does not.
          enum:
            - accepted
            - refused
          examples:
            - accepted
          type: string
        portal_evidence:
          description: >-
            What the operator saw on the portal, 1 to 500 characters, trimmed,
            no control characters. Kept on the row; never a worker's CPF or name
            (a CPF answers 422).
          examples:
            - >-
              Portal Dataprev 28/10 14:05: contrato ativo, origem
              refinanciamento
          maxLength: 500
          minLength: 1
          pattern: \S
          type: string
      required:
        - outcome
        - portal_evidence
      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
    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.