Type Alias: SendingStopState
SendingStopState = typeof
SendingStopState[keyof typeofSendingStopState]
Defined in: packages/sdk/src/types/generated/credit_stop_service.ts:56
Whether outbound sending is stopped for credits, and why (GRA-9085).
The credit states that must not be conflated, plus the healthy one:
OK— nothing is stopped on the credit axis.CREDITS_SUSPENDED— the hard credit gate fired:Subscription.usage_suspendedwith reasoncredit_exhaustion. The platform IS refusing operations right now (HTTP 402, the outboundcredits_suspendedpre-dispatch block).OUT_OF_CREDITS— the balance is empty but nothing has suspended the org (soft enforcement, or before a hard gate's next check persists). Sending has NOT necessarily stopped, and copy must not claim it has.OPERATOR_SUSPENSION—usage_suspendedfor any other reason (operator, dunning, dispute, cancel), including a NULL reason, which is treated as operator-controlled — the same conservative default the exhaustion UPDATE uses inlib/services/budget_enforcement_helpers.py. A top-up does NOT clear this.BILLING_UNRESOLVED— the organization has subscription history but no resolvable metered subscription. This is the case the usage gate fail-closes on:check_credits_before_operationrefuses the operation precisely when it finds no metered subscription for an org with prior subscription rows. A surface that reported this asOKwould show "sending is fine" for a workspace the gate is refusing — the exact invisibility GRA-9085 exists to remove, so the state is explicit rather than folded into health.
A provider/Twilio outage is deliberately NOT a member. credits_suspended
and the systemic-terminal provider reasons are disjoint, and the credit
surface must never attribute a message-delivery fault to billing.