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

# Exclude a contract from this institution because the worker ported it out

> Proxies excluir-portabilidade-trabalhador (Manual 008 v1.10 §4.1), the ORIGIN institution's write: the contract named in the path stops being consigned here because the worker moved it to the institution named by codigoProponente. codigoOrigem is never accepted from the caller — it is the authenticated tenant's own COMPE/CBC. The contract must be an averbação of the authenticated tenant that the rail acknowledged; anything else is 404 before the rail is called. The call is claimed durably before it departs and closed durably after the answer lands, so a retry under the same X-Idempotency key is answered from the retained rail answer instead of excluding a second time, and a call whose outcome nobody established is reconciled against the registry rather than lost. Success publishes consignado.portabilidade.efetivada and a published refusal publishes consignado.portabilidade.rejeitada. A portability the client performs OUTSIDE this gateway publishes nothing: Manual 008 §5.4's consulta is proponente-only, so the origin institution has no discovery path. X-Idempotency is required.



## OpenAPI

````yaml en/openapi/v3-current/consignado.yaml post /v1/consignado/contracts/{numero_contrato}/portabilidade/exclusao
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}/portabilidade/exclusao:
    post:
      tags:
        - Consignado Rail
      summary: >-
        Exclude a contract from this institution because the worker ported it
        out
      description: >-
        Proxies excluir-portabilidade-trabalhador (Manual 008 v1.10 §4.1), the
        ORIGIN institution's write: the contract named in the path stops being
        consigned here because the worker moved it to the institution named by
        codigoProponente. codigoOrigem is never accepted from the caller — it is
        the authenticated tenant's own COMPE/CBC. The contract must be an
        averbação of the authenticated tenant that the rail acknowledged;
        anything else is 404 before the rail is called. The call is claimed
        durably before it departs and closed durably after the answer lands, so
        a retry under the same X-Idempotency key is answered from the retained
        rail answer instead of excluding a second time, and a call whose outcome
        nobody established is reconciled against the registry rather than lost.
        Success publishes consignado.portabilidade.efetivada and a published
        refusal publishes consignado.portabilidade.rejeitada. A portability the
        client performs OUTSIDE this gateway publishes nothing: Manual 008
        §5.4's consulta is proponente-only, so the origin institution has no
        discovery path. X-Idempotency is required.
      operationId: excluirConsignadoPortabilidade
      parameters:
        - description: >-
            The contract leaving this institution. Must be an averbação of the
            authenticated tenant that the rail acknowledged.
          in: path
          name: numero_contrato
          required: true
          schema:
            description: >-
              The contract leaving this institution. Must be an averbação of the
              authenticated tenant that the rail acknowledged.
            examples:
              - 99999999999AP1
            maxLength: 15
            minLength: 2
            type: string
        - description: >-
            Client-chosen idempotency key. REQUIRED: an absent key is 422, never
            a generated default. It is the durable replay identity of this
            command.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: >-
              Client-chosen idempotency key. REQUIRED: an absent key is 422,
              never a generated default. It is the durable replay identity of
              this command.
            examples:
              - idem-exclusao-portabilidade-0001
            maxLength: 128
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExclusaoPortabilidadeBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExclusaoPortabilidadeResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    ExclusaoPortabilidadeBody:
      additionalProperties: false
      properties:
        codigoInscricaoEmpregador:
          description: 'Employer inscription type: 1 CNPJ, 2 CPF.'
          examples:
            - '1'
          pattern: ^[12]$
          type: string
        codigoProponente:
          description: >-
            COMPE/CBC of the DESTINATION institution taking the contract. Caller
            input, because this gateway cannot know it.
          examples:
            - '994'
          maxLength: 3
          minLength: 1
          pattern: ^[0-9]{1,3}$
          type: string
        cpfTrabalhador:
          description: Worker CPF, 11 digits.
          examples:
            - '99999999999'
          maxLength: 11
          minLength: 11
          pattern: ^[0-9]{11}$
          type: string
        matricula:
          description: Matrícula assigned to the worker by the employer.
          examples:
            - 99999999999-A
          maxLength: 30
          minLength: 1
          type: string
        numeroInscricaoEmpregador:
          description: >-
            Employer inscription number, Texto per the manual (the mirrored
            Swagger still types this int64).
          examples:
            - '99999999999881'
          maxLength: 14
          minLength: 1
          type: string
        numeroUnico:
          description: >-
            Número único identificador da portabilidade (NSU oriundo da CIP). A
            digit STRING: Manual 008 publishes exactly 21 algarismos, which
            overflows every conventional numeric type, so it stays text end to
            end.
          examples:
            - '123456789012345678901'
          maxLength: 21
          minLength: 21
          pattern: ^[0-9]{21}$
          type: string
        ultimaParcelaPaga:
          description: >-
            Last instalment already paid on the contract being excluded.
            Optional; omit it rather than sending 0 when unknown.
          examples:
            - 5
          format: int64
          maximum: 999
          minimum: 0
          type: integer
      required:
        - numeroUnico
        - codigoProponente
        - cpfTrabalhador
        - matricula
        - codigoInscricaoEmpregador
        - numeroInscricaoEmpregador
      type: object
    ExclusaoPortabilidadeResponse:
      additionalProperties: false
      properties:
        codigoSucesso:
          description: The rail's own success code.
          examples:
            - '00'
          type: string
        competenciaExclusao:
          description: Payroll competência in which the exclusion takes effect, yyyyMM.
          examples:
            - 202609
          format: int64
          type: integer
        hashOperacao:
          description: >-
            The rail's own identity for this operation. Texto on this operation,
            unlike the other exclusion operations where the same field name is
            Número.
          examples:
            - '34006311'
          type: string
        mensagem:
          description: The rail's own message.
          examples:
            - Exclusao realizada com sucesso
          type: string
        numeroContrato:
          description: The contract this exclusion removed from the origin institution.
          examples:
            - 99999999999AP1
          type: string
        submittedAt:
          description: When this gateway durably authorized the rail call, RFC 3339 UTC.
          examples:
            - '2026-08-29T12:00:00Z'
          format: date-time
          type: string
        ultimaParcelaPaga:
          description: >-
            Last instalment the rail reports as paid on the excluded contract.
            Omitted when the acknowledgement carries no entry for the commanded
            contract: 0 is a live value (exclusion before any instalment was
            paid), so absence must not fabricate it.
          examples:
            - 5
          format: int64
          type: integer
      required:
        - numeroContrato
        - submittedAt
        - codigoSucesso
        - mensagem
        - competenciaExclusao
        - hashOperacao
      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

````