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

# Attach the signed CCB for an accepted averbação or renegociação

> Submits incluir-informacoes-contrato-trabalhador (Manual 004 v1.6 §2.1) for a contract whose averbação Dataprev already accepted, or that a renegociação Dataprev accepted through this gateway minted (Manual 004 §1.2.1), and nothing else: it never averbates. With neither for the path's contract — no averbação sent, or one still in flight, ambiguous or rejected, and no accepted renegociação that minted it — it answers 409 AVERBACAO_NOT_ACCEPTED and nothing is sent to Dataprev. The body is the documentation alone: the signed CCB, the evidence pack and signature_evidence_ref when the averbação carried the booking block (refused when it did not), data_hora_assinatura, the instant the worker signed, which may be days after the averbação, and the §2.1.1 signature evidence. The contract's identity and terms are the averbação's and are not sent again; an optional dados_cadastrais replaces the averbação's cadastro block. A contract takes one accepted documentation, fixed under its own X-Idempotency key and payload digest: the same documentation under a new key replays, and a different one is 409 AVERBACAO_DOCUMENTATION_CONFLICT. When Dataprev refuses the documentation, the answer is 422 with Dataprev's códigos in the upstream member and the contract waits for documentation again: send it corrected under a new X-Idempotency key, or exclude the contract. Any other failure of the call (no answer in time, a Dataprev 5xx, a lost connection, an unusable receipt) also returns the contract to waiting for documentation and answers 5xx: send the same documentation again, under the same X-Idempotency key or a new one, and Dataprev replaces what it holds and returns a new receipt. The documents are retained before Dataprev is called, and the rail's hashOperacao is recorded durably so a replay is answered from the record. An accepted attachment answers confirmed and publishes consignado.averbacao.confirmed.

A contract a renegociação minted is documented with the signed CCB of the contract it replaced, whose clause allows the renegotiation on a change of employer. Its identity is the one the renegociação registered, it takes the signed CCB alone (signature_evidence_ref, the evidence pack and dados_cadastrais are refused 422), the signed CCB is retained before Dataprev is called, as an averbação's documents are, and an accepted attachment answers confirmed without contractId or averbacaoAt and publishes nothing: a renegociação disburses nothing.

THIS COMMITS MONEY, which is why it is marked x-money-path: true: its acceptance confirms an averbação's contract, which is what bills it and hands it to the Lender for booking and disbursement. The conditional signature-evidence fields are mutually exclusive §2.1.1 branches, so send the branch your signing flow used rather than the union of the per-field examples: indicador_analfabetismo, indicador_assinatura_cert_digital_icp_brasil or nsu_contrato makes the flow biometrics-exempt.

This intake accepts a bancarizador credential, a fundo credential for a contract of its own fund, or an originador credential for a contract whose proposal came from its own bid (any other contract is refused 403), and most other rail operations accept a bancarizador credential only — so do not assume the credential that reaches this route reaches the rest of the rail. A body carrying dados_cadastrais also needs the averbação's grant, fundo-contract-averbacao/post, beside this route's fundo-contract-ccb-attachment/post: without it the request is refused 403 before anything is recorded or sent to Dataprev.

Partner route: the text above describes the party's own route. Here the register id in the path names the party: it must be in the partner credential's scope and registered under the caller's tenant, and the call runs as that party, exactly as the party's own credential would.



## OpenAPI

````yaml /es/openapi/v3-current/consignado.yaml post /v1/consignado/fundos/{fundo_id}/contracts/{numero_contrato}/ccb-attachment
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/fundos/{fundo_id}/contracts/{numero_contrato}/ccb-attachment:
    post:
      tags:
        - Consignado Rail Commands
      summary: Attach the signed CCB for an accepted averbação or renegociação
      description: >-
        Submits incluir-informacoes-contrato-trabalhador (Manual 004 v1.6 §2.1)
        for a contract whose averbação Dataprev already accepted, or that a
        renegociação Dataprev accepted through this gateway minted (Manual 004
        §1.2.1), and nothing else: it never averbates. With neither for the
        path's contract — no averbação sent, or one still in flight, ambiguous
        or rejected, and no accepted renegociação that minted it — it answers
        409 AVERBACAO_NOT_ACCEPTED and nothing is sent to Dataprev. The body is
        the documentation alone: the signed CCB, the evidence pack and
        signature_evidence_ref when the averbação carried the booking block
        (refused when it did not), data_hora_assinatura, the instant the worker
        signed, which may be days after the averbação, and the §2.1.1 signature
        evidence. The contract's identity and terms are the averbação's and are
        not sent again; an optional dados_cadastrais replaces the averbação's
        cadastro block. A contract takes one accepted documentation, fixed under
        its own X-Idempotency key and payload digest: the same documentation
        under a new key replays, and a different one is 409
        AVERBACAO_DOCUMENTATION_CONFLICT. When Dataprev refuses the
        documentation, the answer is 422 with Dataprev's códigos in the upstream
        member and the contract waits for documentation again: send it corrected
        under a new X-Idempotency key, or exclude the contract. Any other
        failure of the call (no answer in time, a Dataprev 5xx, a lost
        connection, an unusable receipt) also returns the contract to waiting
        for documentation and answers 5xx: send the same documentation again,
        under the same X-Idempotency key or a new one, and Dataprev replaces
        what it holds and returns a new receipt. The documents are retained
        before Dataprev is called, and the rail's hashOperacao is recorded
        durably so a replay is answered from the record. An accepted attachment
        answers confirmed and publishes consignado.averbacao.confirmed.


        A contract a renegociação minted is documented with the signed CCB of
        the contract it replaced, whose clause allows the renegotiation on a
        change of employer. Its identity is the one the renegociação registered,
        it takes the signed CCB alone (signature_evidence_ref, the evidence pack
        and dados_cadastrais are refused 422), the signed CCB is retained before
        Dataprev is called, as an averbação's documents are, and an accepted
        attachment answers confirmed without contractId or averbacaoAt and
        publishes nothing: a renegociação disburses nothing.


        THIS COMMITS MONEY, which is why it is marked x-money-path: true: its
        acceptance confirms an averbação's contract, which is what bills it and
        hands it to the Lender for booking and disbursement. The conditional
        signature-evidence fields are mutually exclusive §2.1.1 branches, so
        send the branch your signing flow used rather than the union of the
        per-field examples: indicador_analfabetismo,
        indicador_assinatura_cert_digital_icp_brasil or nsu_contrato makes the
        flow biometrics-exempt.


        This intake accepts a bancarizador credential, a fundo credential for a
        contract of its own fund, or an originador credential for a contract
        whose proposal came from its own bid (any other contract is refused
        403), and most other rail operations accept a bancarizador credential
        only — so do not assume the credential that reaches this route reaches
        the rest of the rail. A body carrying dados_cadastrais also needs the
        averbação's grant, fundo-contract-averbacao/post, beside this route's
        fundo-contract-ccb-attachment/post: without it the request is refused
        403 before anything is recorded or sent to Dataprev.


        Partner route: the text above describes the party's own route. Here the
        register id in the path names the party: it must be in the partner
        credential's scope and registered under the caller's tenant, and the
        call runs as that party, exactly as the party's own credential would.
      operationId: attachConsignadoCCBAsFundo
      parameters:
        - description: >-
            The fund's register id, as returned in the id field of GET
            /v1/consignado/fundos. It must be in the partner credential's scope.
          in: path
          name: fundo_id
          required: true
          schema:
            description: >-
              The fund's register id, as returned in the id field of GET
              /v1/consignado/fundos. It must be in the partner credential's
              scope.
            examples:
              - 3f2504e0-4f89-41d3-9a0c-0305e82c3301
            format: uuid
            type: string
        - description: The contract whose accepted averbação this documentation is for.
          in: path
          name: numero_contrato
          required: true
          schema:
            description: The contract whose accepted averbação this documentation is for.
            examples:
              - 99999999999AN1
            type: string
        - description: >-
            Required idempotency key of the documentation, its own and not the
            averbação's. Absent is 422, never a generated default.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: >-
              Required idempotency key of the documentation, its own and not the
              averbação's. Absent is 422, never a generated default.
            examples:
              - idem-ccb-1
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CCBAttachmentRequestedCommand'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AverbacaoOperationResponse'
          description: OK
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            A conflict with the averbação or the documentation this contract
            holds; nothing was sent to Dataprev. AVERBACAO_NOT_ACCEPTED means
            Dataprev has not accepted an averbação for this contract — none was
            sent, or it is still in flight, ambiguous or rejected — nor did a
            renegociação accepted through this gateway mint it: read GET
            .../averbacao before sending the documentation again (a contract a
            renegociação minted has no averbação, and GET .../averbacao answers
            404 for it). AVERBACAO_DOCUMENTATION_CONFLICT means the contract's
            documentation is already fixed under another idempotency key with a
            different payload, or another documentation of it is on its way to
            Dataprev, or the contract was documented before documentation had
            its own record: a contract takes one accepted documentation, so
            follow the existing one. AVERBACAO_EXCLUDED means an exclusion of
            this averbação was requested and Dataprev has not rejected it, or
            the contract left the registry (a refinanciamento, renegociação or
            portability exclusion recorded here, an exit dataprev_follow_up
            observed at Dataprev, or a termination the Manual 006 report
            listed), so no documentation is accepted while it stands.
            AVERBACAO_ARTIFACT_CONFLICT means a different document is already
            retained for this contract, and a retained document is never
            replaced. AVERBACAO_DOCUMENTATION_CONFLICT and
            AVERBACAO_ARTIFACT_CONFLICT are definitive unless the documentation
            on its way fails at Dataprev, which returns GET .../averbacao to
            attachment_pending (a contract a renegociação minted then waits for
            documentation again); AVERBACAO_EXCLUDED is definitive only once GET
            .../exclusion reads confirmed, and once it reads rejected the same
            documentation goes through; for a contract that left the registry it
            is definitive unless a refinanciamento reversal returns it to ativo;
            AVERBACAO_NOT_ACCEPTED is definitive only once GET .../averbacao
            reads rejected, since an averbação in flight or ambiguous may still
            be accepted and the same documentation then goes through.
            AVERBACAO_HELD_BY_ANOTHER_SENDER means a credential of another
            nature (bancarizador, fundo or originador) sent this same request
            first and it has not reached Dataprev: only a credential of that
            nature resumes it, by sending it again. It stops once Dataprev
            answers that request. A 409 carrying NO code and the detail "an
            identical request is already in flight" is not definitive: hold this
            idempotency key and retry under it. 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.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            With the upstream member, Dataprev refused the documentation and its
            códigos are there: the contract waits for documentation again, so
            send it corrected under a new X-Idempotency key, or exclude the
            contract. Without it, the request cannot be processed as sent, and
            nothing was sent to Dataprev. IDEMPOTENCY_KEY_REUSE means the
            X-Idempotency key is spent on a different request, here or on
            another contract: send a new key. For an averbação sent with the
            booking block, FORMALIZATION_DEADLINE_EXCEEDED means
            data_hora_assinatura is after its formalization_deadline: the
            formalization window lapsed, so exclude the averbação through POST
            .../exclusion and formalize the contract again, and
            DECLARED_DATES_OUT_OF_ORDER means data_hora_assinatura is more than
            five minutes ahead of the gateway's clock. Otherwise the detail
            names the rule: the signed CCB must be a canonical base64 PDF, an
            averbação sent with the booking block requires
            signature_evidence_ref and the evidence pack while one sent without
            it takes neither, the §2.1.1 signature-evidence branch must be
            complete, and a dados_cadastrais block must agree with the
            averbação's cpf and employer kind.
        '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:
    CCBAttachmentRequestedCommand:
      additionalProperties: false
      properties:
        artifacts:
          $ref: '#/components/schemas/AverbacaoSignedArtifacts'
        base_biometrica:
          description: >-
            Identifier of the government biometric base the facial record was
            matched against. Required together with score when
            indicador_validacao_com_doc_oficial is false (§2.1.1, error BK).
            Manual 004 publishes no enumeration for it, so the value is relayed
            verbatim.
          examples:
            - SERPRO
          type: string
        dados_cadastrais:
          $ref: '#/components/schemas/DadosCadastrais'
          description: >-
            Optional cadastro block, in the averbação's shape and under its
            cross-field rules against the averbação's cpf and employer. When
            sent it replaces the averbação's block WHOLE: a field left out is
            gone, and an omitted numero_ccb means numero_contrato.
            nome_trabalhador is not part of it and stays the averbação's, as
            Dataprev received it with the M003. It belongs to this documentation
            package and its digest; without it the averbação's cadastro stands.
            The resulting cadastro is what the dados-cadastrais route serves and
            what contract.registered names by SHA-256 once the contract
            confirms. Never sent to Dataprev.
        data_hora_assinatura:
          description: >-
            Instant the worker signed the CCB, RFC 3339 UTC (Manual 004 §2.1.2,
            Obrigatório S, error GA). It may be days after the averbação. With
            the averbação's booking block, an instant after its
            formalization_deadline is refused 422
            FORMALIZATION_DEADLINE_EXCEEDED and one more than five minutes ahead
            of the gateway's clock 422 DECLARED_DATES_OUT_OF_ORDER, compared to
            the second, before Dataprev is called. Rendered to the rail's
            ddMMyyyyHHmmss by the adapter.
          examples:
            - '2026-07-30T12:00:00Z'
          format: date-time
          type: string
        dispositivo:
          description: >-
            Free-text description of the signing device, Texto 1..100 since
            Manual 004 v1.4 (§2.1.2, Obrigatório N).
          examples:
            - iPhone 15 Pro; iOS 18.4
          type: string
        documento_oficial_com_foto_frente_b64:
          description: >-
            Front face of the official photo ID, base64 JPEG. Required together
            with the verso when indicador_validacao_com_doc_oficial is true;
            each must decode to a JPEG of at least 250×250 px (§2.1.1, error
            PY). THE EXAMPLE IS TRUNCATED.
          examples:
            - /9j/4AAQSkZJRgABAQAAAQABAAD/2Q==
          type: string
        documento_oficial_com_foto_verso_b64:
          description: >-
            Back face of the official photo ID, base64 JPEG. Same requiredness
            and same 250×250 px floor as the frente (error PY). THE EXAMPLE IS
            TRUNCATED.
          examples:
            - /9j/4AAQSkZJRgABAQAAAQABAAD/2Q==
          type: string
        indicador_analfabetismo:
          description: >-
            Whether the worker is illiterate (Obrigatório S, error GA). true is
            the second §2.1.1 biometric exemption.
          examples:
            - false
          type: boolean
        indicador_assinatura_cert_digital_icp_brasil:
          description: >-
            Whether the CCB was signed with a qualified ICP-Brasil certificate
            (Obrigatório S, error GA). true is one of the three §2.1.1 biometric
            EXEMPTIONS — §6.5 states the qualified signature "substitui a
            necessidade de biometria facial" — so the biometric fields below may
            then be omitted.
          examples:
            - true
          type: boolean
        indicador_validacao_com_doc_oficial:
          description: >-
            Selects which §2.1.1 evidence branch applies: false demands the
            base_biometrica + score pair, true demands both photo-ID faces.
            false is a DECISION the rail must see and is distinguishable from
            absent, so send it explicitly rather than omitting it.
          examples:
            - false
          type: boolean
        ip:
          description: >-
            The IP the worker signed from, IPv4 or IPv6 (Manual 004 §2.1.2,
            Obrigatório S, errors GA/GB). The example uses the RFC 5737
            documentation range.
          examples:
            - 203.0.113.7
          type: string
        latitude:
          description: >-
            Signing latitude as an exact decimal string (§2.1.2, Obrigatório N).
            Crosses the rail as an unquoted Numérico and never passes through a
            float.
          examples:
            - '-23.5505'
          type: string
        longitude:
          description: >-
            Signing longitude as an exact decimal string (§2.1.2, Obrigatório
            N).
          examples:
            - '-46.6333'
          type: string
        nsu_contrato:
          description: >-
            Número Sequencial Único of a contract closed through the IF's own
            attendance network (Manual 004 §2.1.2: Numérico, Tamanho 18,
            Obrigatório N, error OT). Up to 18 digits — the column is a maximum,
            and the manual's own example for this field is 98765. Kept as digits
            end to end. PRESENT means biometrics are exempt AND
            tipo_autenticacao becomes mandatory (error NS).
          examples:
            - '1234567890'
          pattern: ^([0-9]{1,18})?$
          type: string
        registro_biometrico_facial_b64:
          description: >-
            The 2D facial-biometric record, base64 (Obrigatório N at the rail,
            but demanded by §2.1.1 for every flow that is NOT
            biometrics-exempt). THE EXAMPLE IS TRUNCATED — it shows a JPEG's
            base64 encoding, not a usable record.
          examples:
            - /9j/4AAQSkZJRgABAQAAAQABAAD/2Q==
          type: string
        score:
          description: >-
            The biometric match score as an EXACT decimal string, required
            together with base_biometrica (§2.1.1, error BK). It crosses the
            rail as an unquoted Numérico published to seven decimals and never
            passes through a float.
          examples:
            - '0.9999986'
          type: string
        signature_evidence_ref:
          description: >-
            Opaque provider evidence reference for the worker signature.
            Required when the averbação was sent with the booking block, refused
            422 when it was sent without it.
          examples:
            - signature-evidence-1
          maxLength: 128
          type: string
        tipo_autenticacao:
          description: >-
            Authentication channel used, one of the published codes 1..6 (Manual
            004 §2.1.2, error GE). Mandatory whenever nsu_contrato is informed;
            omit it, or send an empty string, when it is not.
          examples:
            - '1'
          pattern: ^([1-6])?$
          type: string
      required:
        - data_hora_assinatura
        - artifacts
        - ip
        - indicador_assinatura_cert_digital_icp_brasil
        - indicador_analfabetismo
      type: object
    AverbacaoOperationResponse:
      additionalProperties: false
      properties:
        attachmentAt:
          description: >-
            Instant the CCB attachment was recorded, RFC 3339 UTC. ABSENT until
            the attachment was recorded.
          examples:
            - '2026-07-30T12:00:09Z'
          format: date-time
          type: string
        averbacaoAt:
          description: >-
            Instant the rail's averbação response was recorded, RFC 3339 UTC.
            ABSENT until the rail has answered — absence is a state, not a zero
            timestamp.
          examples:
            - '2026-07-30T12:00:04Z'
          format: date-time
          type: string
        contractId:
          description: >-
            The client's own contract identity, echoed. Empty for a contract a
            renegociação minted, which has none.
          examples:
            - contract-1
          type: string
        hashOperacao:
          description: >-
            The rail's identity for the accepted CCB attachment (hashOperacao,
            Manual 004 §2.1). Durable, so a replay returns it without touching
            the rail.
          examples:
            - HASH-1
          type: string
        message:
          description: The rail's own response message.
          examples:
            - averbado
          type: string
        numeroContrato:
          description: The contract number the operation was addressed to.
          examples:
            - 99999999999AN1
          type: string
        responseCode:
          description: The rail's own response code for the averbação.
          examples:
            - AV
          type: string
        status:
          description: >-
            Durable operation status. attachment_pending means the averbação was
            accepted by Dataprev and the contract is waiting for its
            documentation, sent through POST .../ccb-attachment, also after an
            earlier one failed at Dataprev; this is a deliberate wait, not a
            failure. averbacao_unknown means the averbação's outcome at the rail
            is ambiguous and the operation needs reconciliation — it is not a
            failure to retry blindly. attachment_unknown is no longer produced.
          enum:
            - claimed
            - averbacao_invoking
            - averbacao_unknown
            - attachment_pending
            - attachment_invoking
            - attachment_unknown
            - confirmed
            - rejected
          examples:
            - confirmed
          type: string
      required:
        - contractId
        - numeroContrato
        - status
      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_*, CESSAO_*, 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.
          enum:
            - AUT-0033
            - AUT-1021
            - 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
            - CESSAO_CEDED_TO_OTHER_FUND
            - CESSAO_CREDIT_NOT_ACCEPTED
            - CESSAO_CREDIT_NOT_FOUND
            - CESSAO_CREDIT_NOT_WITNESSED
            - CESSAO_CREDIT_PENDING
            - CESSAO_FUNDO_NOT_ATTRIBUTED
            - CESSAO_INTERNAL
            - CESSAO_INVALID_INPUT
            - CESSAO_UNAVAILABLE
            - CESSAO_UNWIRED
            - 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
            - 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
            - 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
            - MARGIN_SNAPSHOT_INCONSISTENT
            - 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_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
            - 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
          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
    AverbacaoSignedArtifacts:
      additionalProperties: false
      properties:
        biometrics_documents_pack:
          $ref: '#/components/schemas/AverbacaoSignedArtifact'
        signed_ccb:
          $ref: '#/components/schemas/AverbacaoSignedArtifact'
      required:
        - signed_ccb
      type: object
    DadosCadastrais:
      additionalProperties: false
      properties:
        dados_bancarios:
          $ref: '#/components/schemas/DadosCadastraisBancarios'
          description: >-
            The worker's own disbursement account. When present it carries at
            least one complete set: banco + agencia + conta, or chave_pix +
            tipo_chave_pix.
        empregador:
          $ref: '#/components/schemas/DadosCadastraisEmpregador'
          description: >-
            Employer record. Required when the averbação's
            codigo_inscricao_empregador is 1 (CNPJ), refused when it is 2 (a
            person employer). The CNPJ is numero_inscricao_empregador and is not
            repeated here.
        originacao:
          $ref: '#/components/schemas/DadosCadastraisOriginacao'
        trabalhador:
          $ref: '#/components/schemas/DadosCadastraisTrabalhador'
      required:
        - trabalhador
        - originacao
      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
    AverbacaoSignedArtifact:
      additionalProperties: false
      properties:
        bytes_base64:
          description: >-
            Canonical base64 artifact bytes. The two artifacts remain distinct
            inputs.
          examples:
            - UEsDBEFDS1BBQ0s=
          maxLength: 8388608
          type: string
        content_type:
          description: Artifact media type.
          examples:
            - application/pdf
          maxLength: 128
          type: string
        file_name:
          description: Original artifact file name.
          examples:
            - contract.pdf
          maxLength: 255
          type: string
      required:
        - file_name
        - content_type
        - bytes_base64
      type: object
    DadosCadastraisBancarios:
      additionalProperties: false
      properties:
        agencia:
          description: Branch, without check digit.
          examples:
            - '1234'
          pattern: ^[0-9]{1,5}$
          type: string
        banco:
          description: COMPE bank code.
          examples:
            - '341'
          pattern: ^[0-9]{3}$
          type: string
        chave_pix:
          description: >-
            Pix key. A CPF key must equal the averbação's cpf; a TELEFONE key is
            E.164.
          examples:
            - '12345678901'
          maxLength: 77
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        conta:
          description: Account, without check digit.
          examples:
            - '56789'
          pattern: ^[0-9]{1,20}$
          type: string
        conta_digito:
          description: Account check digit.
          examples:
            - '0'
          pattern: ^[0-9X]{1,2}$
          type: string
        tipo_chave_pix:
          description: Pix key kind.
          enum:
            - CPF
            - EMAIL
            - TELEFONE
            - EVP
          examples:
            - CPF
          type: string
        tipo_conta:
          description: Account kind; absent means CORRENTE to the destination.
          enum:
            - CORRENTE
            - POUPANCA
            - PAGAMENTO
          examples:
            - CORRENTE
          type: string
      type: object
    DadosCadastraisEmpregador:
      additionalProperties: false
      properties:
        cnae_principal:
          description: Main CNAE code.
          examples:
            - '4743100'
          pattern: ^[0-9]{7}$
          type: string
        cnae_principal_descricao:
          description: Official CNAE description.
          examples:
            - Comércio varejista de vidros
          maxLength: 178
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        data_inicio_atividade:
          description: Activity start date, YYYY-MM-DD.
          examples:
            - '2013-04-01'
          format: date
          type: string
        endereco:
          $ref: '#/components/schemas/DadosCadastraisEnderecoEmpregador'
        natureza_juridica:
          description: CONCLA legal-nature code.
          examples:
            - '2062'
          pattern: ^[0-9]{4}$
          type: string
        natureza_juridica_descricao:
          description: Official CONCLA description.
          examples:
            - Sociedade Empresária Limitada
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        nome_fantasia:
          description: >-
            Trade name; when Receita has none, repeat razao_social and set
            nome_fantasia_ausente.
          examples:
            - Vidraçaria Exemplo
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        nome_fantasia_ausente:
          description: >-
            True when nome_fantasia repeats razao_social because Receita has no
            trade name.
          examples:
            - false
          type: boolean
        opcao_mei:
          description: Whether the employer opted into MEI.
          examples:
            - false
          type: boolean
        porte_receita:
          description: Receita company-size code.
          enum:
            - '00'
            - '01'
            - '03'
            - '05'
          examples:
            - '01'
          type: string
        qtd_empregados_clt:
          description: CLT headcount.
          examples:
            - 187
          format: int64
          minimum: 0
          type: integer
        razao_social:
          description: Legal name.
          examples:
            - VIDRACARIA EXEMPLO LTDA
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
      required:
        - razao_social
        - nome_fantasia
        - data_inicio_atividade
        - natureza_juridica
        - natureza_juridica_descricao
      type: object
    DadosCadastraisOriginacao:
      additionalProperties: false
      properties:
        autorizacao_consulta_scr:
          description: >-
            Whether the worker authorized an SCR (BACEN credit registry)
            inquiry.
          examples:
            - true
          type: boolean
        data_solicitacao:
          description: Request date, YYYY-MM-DD.
          examples:
            - '2026-09-04'
          format: date
          type: string
        id_contrato_interno:
          description: The client's internal contract identifier.
          examples:
            - WNG-2026-31892162
          maxLength: 64
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        id_decisao_credito:
          description: Stable identifier of the credit decision that approved the contract.
          examples:
            - CAI-DEC-2026-09-04-7f3a19
          maxLength: 64
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        lote_id:
          description: Stable batch identifier, unique per batch.
          examples:
            - CAI-2026-09-17-001
          pattern: ^[A-Za-z0-9_.-]{1,64}$
          type: string
        numero_ccb:
          description: CCB number; absent means equal to numero_contrato.
          examples:
            - DIDI2090
          maxLength: 30
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        referencias_externas:
          description: Identifiers owned by third-party systems.
          items:
            $ref: '#/components/schemas/DadosCadastraisReferenciaExterna'
          maxItems: 10
          type:
            - array
            - 'null'
      required:
        - lote_id
        - id_contrato_interno
        - id_decisao_credito
      type: object
    DadosCadastraisTrabalhador:
      additionalProperties: false
      properties:
        categoria_esocial:
          description: eSocial worker category.
          examples:
            - '101'
          pattern: ^[0-9]{3}$
          type: string
        cbo:
          description: CBO occupation code.
          examples:
            - '354815'
          pattern: ^[0-9]{6}$
          type: string
        cbo_descricao:
          description: Official CBO description.
          examples:
            - Agente de viagem
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        data_admissao:
          description: Admission date, YYYY-MM-DD.
          examples:
            - '2024-06-10'
          format: date
          type: string
        data_nascimento:
          description: Birth date, YYYY-MM-DD.
          examples:
            - '1970-09-04'
          format: date
          type: string
        email:
          description: E-mail address.
          examples:
            - fulano.de.tal@example.com
          format: email
          maxLength: 254
          type: string
        endereco:
          $ref: '#/components/schemas/DadosCadastraisEndereco'
        estado_civil:
          description: Marital status.
          enum:
            - SOLTEIRO
            - CASADO
            - DIVORCIADO
            - VIUVO
            - UNIAO_ESTAVEL
            - SEPARADO
          examples:
            - SOLTEIRO
          type: string
        nome_mae:
          description: Mother's name.
          examples:
            - Beltrana de Tal
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        renda_base:
          description: Base income, BRL decimal string with at most two places.
          examples:
            - '2201.17'
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          type: string
        rg:
          $ref: '#/components/schemas/DadosCadastraisRG'
        sexo:
          description: Sex.
          enum:
            - M
            - F
          examples:
            - M
          type: string
        telefone_celular:
          description: Mobile phone with area code, digits only.
          examples:
            - '21900000000'
          pattern: ^[0-9]{10,11}$
          type: string
        vinculo_ativo:
          description: Whether the employment relationship is active.
          examples:
            - true
          type: boolean
      required:
        - data_nascimento
        - nome_mae
        - sexo
        - estado_civil
        - renda_base
        - cbo
        - vinculo_ativo
        - endereco
      type: object
    DadosCadastraisEnderecoEmpregador:
      additionalProperties: false
      properties:
        bairro:
          description: District.
          examples:
            - Centro
          maxLength: 100
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        cep:
          description: Postal code, eight digits, no hyphen.
          examples:
            - '20040020'
          pattern: ^[0-9]{8}$
          type: string
        complemento:
          description: Address complement.
          examples:
            - sala 5
          maxLength: 100
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        logradouro:
          description: Street.
          examples:
            - Avenida Rio Branco
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        municipio:
          description: Official municipality name.
          examples:
            - Rio de Janeiro
          maxLength: 100
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        municipio_ibge:
          description: IBGE municipality code.
          examples:
            - '3304557'
          pattern: ^[0-9]{7}$
          type: string
        numero:
          description: Street number.
          examples:
            - '1'
          maxLength: 20
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        uf:
          description: State.
          examples:
            - RJ
          pattern: ^[A-Z]{2}$
          type: string
      required:
        - cep
        - logradouro
        - numero
        - bairro
        - municipio_ibge
        - municipio
        - uf
      type: object
    DadosCadastraisReferenciaExterna:
      additionalProperties: false
      properties:
        sistema:
          description: Owning system.
          examples:
            - REGISTRADORA_X
          pattern: ^[A-Z0-9_]{1,32}$
          type: string
        tipo:
          description: Identifier kind.
          examples:
            - ipoc
          maxLength: 64
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        valor:
          description: Identifier value.
          examples:
            - IPOC-000123
          maxLength: 128
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
      required:
        - sistema
        - tipo
        - valor
      type: object
    DadosCadastraisEndereco:
      additionalProperties: false
      properties:
        bairro:
          description: District.
          examples:
            - Laranjeiras
          maxLength: 100
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        cep:
          description: Postal code, eight digits, no hyphen.
          examples:
            - '22240003'
          pattern: ^[0-9]{8}$
          type: string
        cidade:
          description: City.
          examples:
            - Rio de Janeiro
          maxLength: 100
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        complemento:
          description: Address complement.
          examples:
            - apto 41
          maxLength: 100
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        logradouro:
          description: Street.
          examples:
            - Rua das Laranjeiras
          maxLength: 150
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        numero:
          description: Street number; S/N is valid.
          examples:
            - '120'
          maxLength: 20
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        uf:
          description: State.
          examples:
            - RJ
          pattern: ^[A-Z]{2}$
          type: string
      required:
        - logradouro
        - numero
        - bairro
        - cidade
        - uf
        - cep
      type: object
    DadosCadastraisRG:
      additionalProperties: false
      properties:
        data_emissao:
          description: Issue date, YYYY-MM-DD.
          examples:
            - '2010-03-15'
          format: date
          type: string
        numero:
          description: RG number.
          examples:
            - '12345678'
          maxLength: 20
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        orgao_emissor:
          description: Issuing body.
          examples:
            - DETRAN
          maxLength: 20
          minLength: 1
          pattern: ^[^\x00-\x1F\x7F-\x9F]*$
          patternDescription: free of control characters
          type: string
        uf_emissor:
          description: Issuing state.
          examples:
            - RJ
          pattern: ^[A-Z]{2}$
          type: string
      required:
        - numero
        - orgao_emissor
        - uf_emissor
      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.