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

# Reverse a refinancing within its 7 business day window

> Proxies reverter-refinanciamento-trabalhador (Manual 008 v1.10 §3.2): the new contract is excluded and every contract it quitou returns to ativo. motivoReversao is a closed set (1 Desistência, 2 Óbito, 3 Fraude). ONLY a refinanciamento this gateway itself registered can be reversed here: the contract must be backed by an accepted refinanciamento of the authenticated tenant that no accepted reversal has already excluded, and anything else is 404 before the rail is called — a refinanciamento made outside this gateway (through the Dataprev Portal, say) has to be reversed there too. The 7-business-day window is judged against the gateway's OWN record of when that refinanciamento committed, never against a date in the request, and it refuses locally only once the window has unambiguously passed; the rail remains the final judge. X-Idempotency is required.



## OpenAPI

````yaml /en/openapi/v3-current/consignado.yaml post /v1/consignado/contracts/{numero_contrato}/refinanciamento/reversao
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, disbursement confirmation, portability,
    refinancing, renegotiation, FGTS guarantees, reconciliation, funds,
    assignments, usage, throughput, and event subscriptions. Secret material is
    written to the tenant secret store and is never returned by any operation.
  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: >-
      Tenant-scoped consignado gateway usage: priced billable-unit aggregation
      per competência
    name: Consignado Usage
  - 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. Each shares its command implementation with
      the equivalent lender event trigger.
    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
paths:
  /v1/consignado/contracts/{numero_contrato}/refinanciamento/reversao:
    post:
      tags:
        - Consignado Rail
      summary: Reverse a refinancing within its 7 business day window
      description: >-
        Proxies reverter-refinanciamento-trabalhador (Manual 008 v1.10 §3.2):
        the new contract is excluded and every contract it quitou returns to
        ativo. motivoReversao is a closed set (1 Desistência, 2 Óbito, 3
        Fraude). ONLY a refinanciamento this gateway itself registered can be
        reversed here: the contract must be backed by an accepted
        refinanciamento of the authenticated tenant that no accepted reversal
        has already excluded, and anything else is 404 before the rail is called
        — a refinanciamento made outside this gateway (through the Dataprev
        Portal, say) has to be reversed there too. The 7-business-day window is
        judged against the gateway's OWN record of when that refinanciamento
        committed, never against a date in the request, and it refuses locally
        only once the window has unambiguously passed; the rail remains the
        final judge. X-Idempotency is required.
      operationId: reverterConsignadoRefinanciamento
      parameters:
        - description: The NEW contract minted by the refinanciamento this call reverses.
          in: path
          name: numero_contrato
          required: true
          schema:
            description: The NEW contract minted by the refinanciamento this call reverses.
            examples:
              - 99999999999ARN1
            maxLength: 15
            minLength: 2
            type: string
        - 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-reversao-0001
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReversaoRefinanciamentoBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReversaoRefinanciamentoOperationResponse'
          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, or this key
            already carries a different request; either way the key is spent and
            a corrected request needs a new one.
            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 NO code and the detail "an
            identical request is already in flight" is the exception and is not
            definitive: the first call is still running, so hold this
            idempotency key and retry under it. REVERSAO_WINDOW_EXPIRED means
            the 7-business-day window for reversing this refinancing has closed;
            no correction to the request can reopen it.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    ReversaoRefinanciamentoBody:
      additionalProperties: false
      properties:
        motivoReversao:
          description: >-
            Reversal reason (Manual 008 v1.10 §3.2.1, regra RG): 1 Desistência,
            2 Óbito, 3 Fraude. Closed set — no 4th value exists.
          examples:
            - 1
          format: int64
          maximum: 3
          minimum: 1
          type: integer
        parcelasContratosQuitados:
          description: >-
            Instalment amounts of every contract this refinancing quitou,
            decimal strings (BRL). Optional; enables the margemReservada notice
            on the response.
          examples:
            - - '230.00'
          items:
            type: string
          type:
            - array
            - 'null'
        valorParcelaNovoContrato:
          description: >-
            The new (now-reversed) contract's own instalment amount, decimal
            string (BRL). Optional; enables the margemReservada notice on the
            response.
          examples:
            - '310.00'
          type: string
      required:
        - motivoReversao
      type: object
    ReversaoRefinanciamentoOperationResponse:
      additionalProperties: false
      properties:
        competenciaReversao:
          description: Payroll competência the reversal took effect in, yyyyMM.
          examples:
            - '202507'
          type: string
        hashOperacao:
          description: The rail's own identity for this operation.
          examples:
            - '34006311'
          type: string
        listaContratosTrabalhadorReativados:
          description: Every quitado contract the reversal returned to ativo.
          examples:
            - - numeroContrato: 99999999999AR1
                valorParcela: '230.00'
          items:
            $ref: '#/components/schemas/ReversaoRefinanciamentoContratoReativado'
          type:
            - array
            - 'null'
        margemReservada:
          description: >-
            The margin that was held reserved during the reversal window (Manual
            008 v1.10 §3.2): the greater of the quitados' summed instalments and
            the new contract's own. Present only when the caller supplied enough
            context to compute it — a courtesy figure, not a rail field.
          examples:
            - '310.00'
          type: string
        mensagem:
          description: The rail's own message.
          examples:
            - Reversao realizada com sucesso
          type: string
        numeroContratoExcluido:
          description: The new contract, now excluded by the reversal.
          examples:
            - 99999999999ARN1
          type: string
      required:
        - mensagem
        - numeroContratoExcluido
        - competenciaReversao
        - hashOperacao
        - listaContratosTrabalhadorReativados
      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
    ReversaoRefinanciamentoContratoReativado:
      additionalProperties: false
      properties:
        numeroContrato:
          description: A quitado contract the reversal returned to ativo.
          examples:
            - 99999999999AR1
          type: string
        valorParcela:
          description: >-
            That contract's instalment amount, again active (decimal string,
            BRL).
          examples:
            - '230.00'
          type: string
      required:
        - numeroContrato
        - valorParcela
      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

````