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

# Census this tenant's outbox event delivery by status

> Censuses this tenant's transactional outbox by status: five buckets, always five, one per value of the database enum.

It answers whether the facts this gateway WROTE actually left it, which no other surface reports. A fact recorded in a local table and never published is invisible to every read beside this one: the operation books show what the gateway did, and this shows whether the world was told.

ALL FIVE BUCKETS ARE ALWAYS PRESENT, at count zero included. A bucket that vanished when it emptied would make "nothing is stuck" and "nothing was ever written" render identically.

'oldest_created_at' is the number to act on, and it is null exactly when the bucket is at zero. A PENDING bucket whose oldest row is hours old is a dispatcher that stopped; a PENDING bucket of the same count whose oldest row is seconds old is a healthy queue.

The status labels are the Postgres enum's own, verbatim and UPPERCASE. This is the one read here that does not use lowercase vocabulary, deliberately: inventing a lowercase alias would give one fact two spellings, and an operator would read one on the screen and the other in every query they run against the database while acting on it.

INVALID is terminal. Those facts will never be published, and switching a relay on afterwards recovers nothing. GET /v1/consignado/event-delivery/invalid is the row-by-row read of that bucket.

It answers from a LOCAL table and never reaches the Dataprev rail, so it cannot answer 501. It takes no parameter of any kind, neither filter nor page: the whole answer is five numbers, and there is nothing for a caller to narrow. The tenant is derived from the validated identity and is never read from the request.



## OpenAPI

````yaml /en/openapi/v3-current/consignado.yaml get /v1/consignado/event-delivery
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/event-delivery:
    get:
      tags:
        - Consignado Event Delivery
      summary: Census this tenant's outbox event delivery by status
      description: >-
        Censuses this tenant's transactional outbox by status: five buckets,
        always five, one per value of the database enum.


        It answers whether the facts this gateway WROTE actually left it, which
        no other surface reports. A fact recorded in a local table and never
        published is invisible to every read beside this one: the operation
        books show what the gateway did, and this shows whether the world was
        told.


        ALL FIVE BUCKETS ARE ALWAYS PRESENT, at count zero included. A bucket
        that vanished when it emptied would make "nothing is stuck" and "nothing
        was ever written" render identically.


        'oldest_created_at' is the number to act on, and it is null exactly when
        the bucket is at zero. A PENDING bucket whose oldest row is hours old is
        a dispatcher that stopped; a PENDING bucket of the same count whose
        oldest row is seconds old is a healthy queue.


        The status labels are the Postgres enum's own, verbatim and UPPERCASE.
        This is the one read here that does not use lowercase vocabulary,
        deliberately: inventing a lowercase alias would give one fact two
        spellings, and an operator would read one on the screen and the other in
        every query they run against the database while acting on it.


        INVALID is terminal. Those facts will never be published, and switching
        a relay on afterwards recovers nothing. GET
        /v1/consignado/event-delivery/invalid is the row-by-row read of that
        bucket.


        It answers from a LOCAL table and never reaches the Dataprev rail, so it
        cannot answer 501. It takes no parameter of any kind, neither filter nor
        page: the whole answer is five numbers, and there is nothing for a
        caller to narrow. The tenant is derived from the validated identity and
        is never read from the request.
      operationId: getConsignadoEventDelivery
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventDeliverySummary'
          description: OK
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Forbidden
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
      security:
        - BearerAuth: []
components:
  schemas:
    EventDeliverySummary:
      additionalProperties: false
      properties:
        buckets:
          items:
            $ref: '#/components/schemas/EventDeliveryBucket'
          type: array
      required:
        - buckets
      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
    EventDeliveryBucket:
      additionalProperties: false
      properties:
        count:
          description: How many events stand in this status.
          examples:
            - 3
          format: int64
          type: integer
        oldest_created_at:
          description: >-
            Creation instant of the oldest event in this status, in UTC. Null
            exactly when the count is zero.
          examples:
            - '2026-08-14T09:12:33Z'
          format: date-time
          type:
            - string
            - 'null'
        status:
          description: >-
            The outbox_event_status label, carried verbatim from the database
            enum.
          enum:
            - PENDING
            - PROCESSING
            - PUBLISHED
            - FAILED
            - INVALID
          examples:
            - PENDING
          type: string
      required:
        - status
        - count
        - oldest_created_at
      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

````