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

# Read the FGTS guarantee execution this gateway holds for a contract

> Reads the FGTS-guarantee execution this gateway durably holds for one contract (Manual 017 §3.1).

It is a LOCAL read: it never calls Dataprev, opens no worker consent and spends none of the rail's rate budget. There is nothing out there to call — Manual 017 publishes consultar-saldo, listar-autorizados and the execution itself, and NO operation that asks the registry whether it already executed. The gateway's own row is the whole answer, which is why an unestablished outcome is reconciled by an operator rather than retried.

This exists because the execution is the one irreversible cash movement whose outcome used to be readable in exactly one place: the response to the POST that performed it. A closed tab or a dropped connection left an operator unable to tell whether the money moved.

The four statuses, and what each one means for the caller:

| Status | Meaning |
|---|---|
| executed | The rail confirmed. protocolo is the receipt and dtPrevRepasse the forecast repasse date |
| refused | The rail PROVED it executed nothing. Terminal for that idempotency key, but the contract is released: a corrected request under a NEW key may execute |
| claimed | The gateway recorded the request and the rail has not answered yet |
| unknown | The outcome could not be established. Terminal for the key, and the contract stays fenced until an operator reconciles — retrying could execute the guarantee twice |

404 means the gateway holds no execution record for this contract. It is never answered as an empty record: on a movement with no undo, "we hold nothing" and "we hold a claim nobody settled" are the two answers that must never be confused.

The idempotency key and the payload digest are not published. They are internal replay mechanics, and the digest fingerprints a body carrying the worker's CPF.



## OpenAPI

````yaml /en/openapi/v3-current/consignado.yaml get /v1/consignado/contracts/{numero_contrato}/fgts-garantia/execucao
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}/fgts-garantia/execucao:
    get:
      tags:
        - Consignado Rail
      summary: Read the FGTS guarantee execution this gateway holds for a contract
      description: >-
        Reads the FGTS-guarantee execution this gateway durably holds for one
        contract (Manual 017 §3.1).


        It is a LOCAL read: it never calls Dataprev, opens no worker consent and
        spends none of the rail's rate budget. There is nothing out there to
        call — Manual 017 publishes consultar-saldo, listar-autorizados and the
        execution itself, and NO operation that asks the registry whether it
        already executed. The gateway's own row is the whole answer, which is
        why an unestablished outcome is reconciled by an operator rather than
        retried.


        This exists because the execution is the one irreversible cash movement
        whose outcome used to be readable in exactly one place: the response to
        the POST that performed it. A closed tab or a dropped connection left an
        operator unable to tell whether the money moved.


        The four statuses, and what each one means for the caller:


        | Status | Meaning |

        |---|---|

        | executed | The rail confirmed. protocolo is the receipt and
        dtPrevRepasse the forecast repasse date |

        | refused | The rail PROVED it executed nothing. Terminal for that
        idempotency key, but the contract is released: a corrected request under
        a NEW key may execute |

        | claimed | The gateway recorded the request and the rail has not
        answered yet |

        | unknown | The outcome could not be established. Terminal for the key,
        and the contract stays fenced until an operator reconciles — retrying
        could execute the guarantee twice |


        404 means the gateway holds no execution record for this contract. It is
        never answered as an empty record: on a movement with no undo, "we hold
        nothing" and "we hold a claim nobody settled" are the two answers that
        must never be confused.


        The idempotency key and the payload digest are not published. They are
        internal replay mechanics, and the digest fingerprints a body carrying
        the worker's CPF.
      operationId: getConsignadoContractFgtsGuaranteeExecution
      parameters:
        - description: The rail contract number whose guarantee execution is read.
          in: path
          name: numero_contrato
          required: true
          schema:
            description: The rail contract number whose guarantee execution is read.
            examples:
              - 99999999999AN1
            maxLength: 15
            minLength: 1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FgtsGuaranteeExecutionRecordResponse'
          description: OK
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: The gateway holds no FGTS guarantee execution for this contract.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    FgtsGuaranteeExecutionRecordResponse:
      additionalProperties: false
      properties:
        claimedAt:
          description: >-
            Instant the gateway durably recorded the request, RFC 3339 UTC. It
            is written BEFORE the rail call, so it exists for every record here.
          examples:
            - '2026-07-30T12:00:00Z'
          format: date-time
          type: string
        dtPrevRepasse:
          description: >-
            Forecast repasse date (yyyy-MM-dd), as the rail published it. Absent
            when it published none.
          examples:
            - '2026-07-15'
          type: string
        numeroContrato:
          description: The contract the guarantee execution was addressed to.
          examples:
            - 99999999999AN1
          type: string
        protocolo:
          description: >-
            The rail's own receipt for the movement, up to 32 digits. A string
            so 32 digits survive without precision loss. Present only on an
            executed record.
          examples:
            - '12345678901234567890123456789012'
          type: string
        settledAt:
          description: >-
            Instant the record reached its terminal state, RFC 3339 UTC. ABSENT
            while the record is still claimed.
          examples:
            - '2026-07-30T12:00:04Z'
          format: date-time
          type: string
        status:
          description: >-
            Durable status. executed means the rail confirmed and the protocolo
            is the proof; refused means the rail PROVED it executed nothing,
            which releases the contract for a corrected request under a fresh
            key; claimed and unknown both mean the effect at the rail is NOT
            established, and Manual 017 publishes no operation that asks it — so
            neither is a retry, both are operator reconciliation.
          enum:
            - claimed
            - executed
            - unknown
            - refused
          examples:
            - executed
          type: string
      required:
        - numeroContrato
        - status
        - claimedAt
      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

````