Get a subscription's delivery health
Rolls one subscription’s delivery record into a single non-secret view: outcome counts over the hub’s window and over the last 24 hours, dead-lettered and poison-event counts, the auto-disable verdict, the success rate and the consumer lag.
It answers the question none of the other subscription reads can: whether the events this tenant subscribed to are ACTUALLY ARRIVING. Listing a subscription proves it is registered and enabled; only this shows whether the endpoint behind it has been accepting deliveries.
‘auto_disabled’ and ‘success_rate’ are NULLABLE and null is not the zero value of either. A null ‘auto_disabled’ means the hub holds no endpoint-health row yet, which is not the same fact as false (“checked, and healthy”). A null ‘success_rate’ means no delivery attempt has reached a terminal outcome yet, which is not the same fact as 0.0 (“every attempt failed”). A client that reads either null as its zero value reports a healthy endpoint as broken, or a broken one as fine.
‘disabled_reason’, ‘last_success_at’ and ‘last_failure_at’ are null when there is nothing to report, and the key is always present.
‘status’ and ‘verification_state’ are FREE strings carried through from the hub, not a closed vocabulary this gateway pins. The hub may add a value, and a client should render an unrecognized one by its identifier rather than refuse the response.
This is a FORWARD, not a local read: the gateway owns no subscription storage. The hub answers an unknown subscription and another tenant’s subscription with the SAME 404, publishing no existence oracle, and that 404 reaches the caller unchanged. This gateway does not reinterpret it, because splitting it into “no such subscription” and “not yours” would state something the hub deliberately refused to state.
The tenant is derived from the validated identity and is never read from the request.
Partner route: the text above describes the tenant’s own route. Here the register id in the path names the fund or originador the partner acts for: it must be in the partner credential’s scope and registered under the caller’s tenant. The partner sees and manages only the subscriptions it created through this register’s routes: the party’s own subscriptions and any other partner’s answer 404, as a missing one does. A fundo the bancarizador deactivated is refused 403 FUNDO_PARTNER_DEACTIVATED until it is reactivated.
Authorizations
JWT bearer token issued by the identity provider.
Headers
Bearer token. A tenant route relays it to the streaming-hub as server-to-server auth.
"Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJvcHMifQ.signature"
Path Parameters
The fund's register id, as returned in the id field of GET /v1/consignado/fundos. It must be in the partner credential's scope.
"3f2504e0-4f89-41d3-9a0c-0305e82c3301"
Subscription id.
"0192f1a0-0000-7000-8000-0000000000ff"
Response
OK
Endpoint-health auto-disable verdict: null when the hub has no health row yet, false when healthy, true when tripped. Null is never false.
false
Process consumer lag behind the high watermark, in milliseconds.
120
Count of dead-lettered delivery attempts in the window.
2
Delivery-attempt outcome counts over the hub's configured window, keyed by outcome.
Fixed, secret-free auto-disable verdict token; null when the subscription was not auto-disabled.
"consecutive_failures"
Whether any events were dropped or quarantined for this tenant.
false
Whether delivery is enabled (manual operator toggle).
true
Instant of the last failed delivery; null when there has never been one.
"2026-01-15T09:29:00Z"
Instant of the last successful delivery; null when there has never been one.
"2026-01-15T09:30:00Z"
Count of quarantined poison events for this tenant.
0
Last-24h delivery-outcome breakdown, keyed by outcome.
Rolled-up operator status (Healthy, Degraded, Down). A free string, not a closed vocabulary.
"Healthy"
The subscription this health view is for.
"0192f1a0-0000-7000-8000-0000000000ff"
Share of terminal delivery attempts that succeeded, in [0.0, 1.0]; null when no terminal attempt has happened yet. Null is never zero.
0.98
Position in the destination verification state machine (pending_verification, active, degraded, disabled). A free string, not a closed vocabulary.
"active"

