Attach the signed CCB for an already-averbado contract
Submits incluir-informacoes-contrato-trabalhador (Manual 004 v1.6 §2.1) for a contract whose averbação the rail already accepted, and records the rail’s hashOperacao durably so a replay is answered from the record instead of re-attaching. It drives the SAME command as the averbação route: the durable state machine decides which provider mutation is still owed, so this route resumes an operation rather than starting a second one. It therefore takes the SAME body — the payload digest is the replay authority, and a different payload is a different operation, refused rather than silently served the first answer.
THIS CAN COMMIT MONEY, which is why it is marked x-money-path: true. Because the state machine resumes at whichever mutation is still owed, calling this route for a contract that has NO prior operation performs the AVERBAÇÃO — it does not merely attach a document. Treat it as the averbação’s equal, not as a follow-up.
This intake accepts a bancarizador credential, a fundo credential, or a third party acting for a fundo, and every other rail operation accepts a bancarizador credential only — so do not assume the credential that reaches this route reaches the rest of the rail.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Required idempotency key. Absent is 422, never a generated default. Values beginning with event: are reserved for deterministic event-driven commands.
"idem-1"
Path Parameters
The contract number, minted by the CLIENT — the rail mints nothing here. Must equal the numero_contrato in the body.
"NC-000001"
Body
valorTaxaAnual as a PERCENT-per-year decimal string. "23.87" is 23.87 %/year — the effective compounding of monthly_rate 1.80.
"23.87"
valorCETAnual — Custo Efetivo Total as a PERCENT-per-year decimal string (the effective compounding of cet_monthly).
"25.34"
valorCETMensal — Custo Efetivo Total as a PERCENT-per-month decimal string. Sits above monthly_rate because it absorbs IOF and fees.
"1.90"
Employer inscription TYPE code. Manual 003 §3.1.1 p.10 publishes exactly two: 1 = CNPJ, 2 = CPF. REQUIRED on the wire (Obrigatório Sim, error SG); a value outside the enumeration is refused 422 before the rail is called.
1, 2 "1"
The CLIENT's own contract identity, echoed back on the response and used to correlate the emitted confirmed/rejected fact. Never minted here.
"contract-1"
Worker CPF, exactly 11 digits — a CPF is eleven digits by definition (Manual 002 v1.15 §3.1.1 p.8 types the request field Número, 11 algarismos). In the BODY, never a path or query parameter.
^[0-9]{11}$"12345678901"
Contract end date, RFC 3339 UTC.
"2027-07-30T00:00:00Z"
Instant the worker signed the CCB, RFC 3339 UTC (Obrigatório S, error GA). Rendered to the rail's ddMMyyyyHHmmss by the adapter.
"2026-07-30T12:00:00Z"
Contract start date, RFC 3339 UTC.
"2026-07-30T00:00:00Z"
Date of the first payroll deduction, RFC 3339 UTC.
"2026-08-30T00:00:00Z"
Expected loan disbursement date in YYYY-MM-DD. Required for every booking, including originations without numero_proposta.
10"2026-08-01"
Payroll competência of the first deduction, yyyyMM.
"202608"
UTC deadline by which the accepted contract must complete formalization.
"2026-08-02T12: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
valorParcela — the instalment amount (decimal string, BRL).
"201.75"
totalParcelas — the number of instalments.
12
valorIOF — the IOF charged (decimal string, BRL).
"10.00"
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"
valorLiberado — "o valor líquido repassado ao trabalhador após descontos" (Manual 003 §3.1.1 p.9, Obrigatório Sim, errors BL/BQ), also required on the winning proposta (Manual 001 §3.1.2 p.10). DISTINCT from principal_amount and NOT derivable from it: the Manual 001 p.13 example quotes valorEmprestimo 2160.00 / valorIOF 10.00 with valorLiberado 2000.00. Never computed here.
"2000.00"
Immutable version of the loan product whose terms governed this contract.
128"product-version-1"
The worker's payroll registration at the employer (Texto 1..30, errors OT/SI). REQUIRED on the wire: Manual 004 v1.6 §2.1.2 marks it Obrigatório S on the CCB attach and the attach reuses this one value.
"M-1"
The rail contract number, minted by the CLIENT. It MUST equal the numero_contrato path parameter — a mismatch is refused 422 so a caller cannot address one contract and averbar another.
"NC-000001"
Employer inscription NUMBER matching codigo_inscricao_empregador (Texto 14 since Manual 004 v1.6, error SH). REQUIRED on the wire.
"12345678000199"
valorEmprestimo — the amount lent (decimal string, BRL). DISTINCT from liberated_amount and not derivable from it: the Manual 001 §3.1.2 p.13 example quotes valorEmprestimo 2160.00 / valorIOF 10.00 with valorLiberado 2000.00.
"2160.00"
Opaque provider evidence reference for the worker signature.
128"signature-evidence-1"
Whether the contract pledges FGTS collateral. REQUIRED — it is the gate the three collateral values below are conditional on, and false is an authoritative "no collateral" rather than an absence.
true
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"
CNPJ of the operator responsible for the operation — banking correspondent, cooperado or similar (Manual 003 §3.1.1 p.9, Obrigatório NÃO). An absent value is a legitimate "no intermediary operator": the adapter drops the field rather than sending an empty string.
"98765432000188"
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=="
Mandatory opaque UTF-8 fund reference, bounded to 128 bytes. It is preserved byte-for-byte without trimming, case folding, normalization, parsing, or a local character whitelist. NOT a rail field — the fund has no relationship with the rail, so it never crosses the wire; it is persisted and published unchanged.
VERIFIED against your credential. A fund, or a third party acting for one, may only name the fund its own credential carries: a different value is refused before the rail is called, and an omitted value is filled in from the credential. The comparison is exact bytes, so padding, letter case and accent composition are part of the fund's identity — send the reference exactly as it was issued to you. A bancarizador carries no fund of its own and names one here; its value is taken as given, unchanged. It must also name a fund the tenant has registered and that still accepts new credit.
128" Fundo: Árvore/Classe A — série № 7 "
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"
valorTaxaMensal as a PERCENT-per-month decimal string. "1.80" is 1.80 %/month, NOT the fraction 0.018.
"1.80"
The worker's full name as it appears on the contract.
"MARIA DA SILVA"
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 optional proposal identifier this gateway minted for the winning bid. Absent means the origination did not pass through this gateway's auction. Present values are matched exactly: leading or trailing whitespace is refused, never normalized into another identity.
20"12345678901234567890"
Percentage of the rescission verbas pledged as collateral (decimal string, PERCENT). This rides the SEPARATE employer verba-rescisória track, not the FGTS-guarantee execution API.
"10.00"
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"
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"
Rescission-penalty portion pledged as collateral (decimal string, BRL). Conditional on tem_garantias; omit rather than send 0.
"400.25"
Consignable FGTS balance pledged as collateral (decimal string, BRL). Conditional on tem_garantias. OMIT it when there is no FGTS collateral: the rail reads a sent 0 as an invalid guarantee value.
"1000.50"
Response
OK
The client's own contract identity, echoed.
"contract-1"
The contract number the operation was addressed to.
"NC-000001"
Durable operation status. attachment_pending means the averbação was accepted and the signed CCB still has to be attached; averbacao_unknown and attachment_unknown mean the rail's outcome is ambiguous and the operation needs reconciliation — NEITHER is a failure to retry blindly.
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"

