Execute the FGTS guarantee for a contract
Proxies execucao-garantias-fgts (Manual 017 §3.1). THIS MOVES CASH AND CANNOT BE UNDONE — it is marked x-money-path: true in this document. The guarantee executes AT MOST ONCE per (tenant, contract). X-Idempotency is required and is never defaulted; the gateway records the request durably BEFORE calling the rail.
The four conflict cases, all 409:
- Same key, same body — the recorded outcome is REPLAYED (replayed: true) without touching the rail. This is the only non-conflict repeat.
- Same key, DIFFERENT body — refused, never served the earlier answer.
- A BRAND-NEW key for a contract that ALREADY has an execution record — REFUSED, not replayed. The stored outcome belongs to the other key, and a fresh key must not buy a second cash movement. This is a refusal, not a fault: nothing was claimed and the rail was not called.
- The first attempt’s outcome could not be established — the key is terminally unresolved. Retrying could execute the guarantee twice, and Manual 017 publishes no operation that asks the rail whether it already did, so reconciliation is an OPERATOR action, deliberately not an automatic one.
The two collateral values are Obrigatório=Não at the rail: OMIT them for a contract with no FGTS collateral. Sending 0 is refused locally with 422 — the rail reads 0 as an invalid guarantee value, and refusing early keeps the mistake from burning your idempotency key.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Client-chosen idempotency key. REQUIRED: an absent key is 422, never a generated default. The key decides what a REPEAT gets back; the CONTRACT decides what may happen at all. Same key + same body: the recorded outcome is replayed without touching the rail. Same key + different body: 409. A BRAND-NEW key for a contract that already has an execution record: 409 — a fresh key does not buy a second execution. First attempt's outcome unestablished: 409 until an operator reconciles it.
"idem-fgts-exec-2026-07-30-0001"
Body
1, 2 "1"
Worker CPF, exactly 11 digits. In the BODY, never a path or query parameter.
^[0-9]{11}$"99999999999"
1"99999999999-A"
Rail contract number.
1 - 15"99999999999AN1"
1"42422253000101"
Rescission-penalty portion pledged as collateral (decimal string, BRL). Obrigatório=Não — omit rather than send 0.
^[0-9]+(\.[0-9]{1,2})?$"100.00"
Consignable FGTS balance pledged as collateral (decimal string, BRL). Obrigatório=Não at the rail: OMIT it for a contract with no FGTS collateral. Sending 0 is not an absence — the rail reads it as an invalid guarantee value.
^[0-9]+(\.[0-9]{1,2})?$"98587.56"
Response
OK
Rail protocol number, up to 32 digits. A string so 32 digits survive without precision loss.
"12345678901234567890123456789012"
true when this response was served from the durable record of an earlier identical request under the same X-Idempotency key, without touching the rail — the guarantee was executed once, and this is the recorded outcome. false means THIS call performed the execution.
false
Forecast repasse date (yyyy-MM-dd).
"2026-07-15"

