Attach the signed CCB for an accepted averbação
Submits incluir-informacoes-contrato-trabalhador (Manual 004 v1.6 §2.1) for a contract whose averbação Dataprev already accepted, and nothing else: it never averbates. With no accepted averbação for the path’s contract — none sent, or still in flight, ambiguous or rejected — 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.
THIS COMMITS MONEY, which is why it is marked x-money-path: true: its acceptance confirms the 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, consignado-rail/averbacao:write, beside this route’s consignado-rail/ccb:write: without it the request is refused 403 before anything is recorded or sent to Dataprev.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Required idempotency key of the documentation, its own and not the averbação's. Absent is 422, never a generated default.
"idem-ccb-1"
Path Parameters
The contract whose accepted averbação this documentation is for.
"99999999999AN1"
Body
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.
"2026-07-30T12:00:00Z"
Whether the worker is illiterate (Obrigatório S, error GA). true is the second §2.1.1 biometric exemption.
false
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.
true
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.
"203.0.113.7"
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.
"SERPRO"
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.
Free-text description of the signing device, Texto 1..100 since Manual 004 v1.4 (§2.1.2, Obrigatório N).
"iPhone 15 Pro; iOS 18.4"
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.
"/9j/4AAQSkZJRgABAQAAAQABAAD/2Q=="
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.
"/9j/4AAQSkZJRgABAQAAAQABAAD/2Q=="
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.
false
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.
"-23.5505"
Signing longitude as an exact decimal string (§2.1.2, Obrigatório N).
"-46.6333"
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).
^([0-9]{1,18})?$"1234567890"
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.
"/9j/4AAQSkZJRgABAQAAAQABAAD/2Q=="
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.
"0.9999986"
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.
128"signature-evidence-1"
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.
^([1-6])?$"1"
Response
OK
The client's own contract identity, echoed.
"contract-1"
The contract number the operation was addressed to.
"99999999999AN1"
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.
claimed, averbacao_invoking, averbacao_unknown, attachment_pending, attachment_invoking, attachment_unknown, confirmed, rejected "confirmed"
Instant the CCB attachment was recorded, RFC 3339 UTC. ABSENT until the attachment was recorded.
"2026-07-30T12:00:09Z"
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.
"2026-07-30T12:00:04Z"
The rail's identity for the accepted CCB attachment (hashOperacao, Manual 004 §2.1). Durable, so a replay returns it without touching the rail.
"HASH-1"
The rail's own response message.
"averbado"
The rail's own response code for the averbação.
"AV"

