Spend caps on the dashboard
You own a prepaid wallet, and the first question is where the ceiling lives. Some of it is platform-side — the fraud envelope the checkpoint measures your traffic against — and some of it is yours alone to raise or tighten. This page maps the two halves, then shows how the velocity-anomaly detector backs the thresholds you set, without which every cap is still a guess.1. Carrier-side envelope versus tenant-owned cap
Every outbound send is measured against a platform fraud envelope — per-channel, per-minute and per-day ceilings measured on a spend estimate, not a message count. That envelope exists so a compromised API key cannot pump toll-fraud traffic through your wallet unchecked, and it is the same envelope the velocity-anomaly detector can only ever tighten, never loosen. Your tenant-owned spend cap sits on top of that envelope. You set it one level up in Billing → Alerts as a rule overspend_percent (of your monthly budget), spend_amount, daily_spend, or balance_remaining — and when the line trips you choose notify, pause_outbound, or block_outbound. The recipient list, the action, and the cooldown are all yours to edit; no Devotel support ticket touches the change. The full rule grammar is in Spend caps, budget alerts, and auto-cutoff.
This split is why two 429s look different: the fraud envelope refusal (CHANNEL_DAILY_SPEND_CAP) disappears the moment the estimate falls, while a tenant-owned pause returns SENDING_PAUSED (HTTP 402) until you clear the alert yourself in the dashboard.
2. Alert sources and the comparator chain
Three independent evaluators watch spend, each answering a different question, and they chain rather than overlap:- Your threshold rules — fixed lines. Compared on the billing scheduler’s ten-minute tick with
gt/gte(lt/ltefor balance floors). Absolute, but blind to shape. - The velocity-anomaly detector — a 14-day UTC baseline per channel, projected against today. A channel flags only when both the $250/day floor and the 10x surge multiple hold. The tunables are platform defaults, not configuration — the model exists precisely to catch what a fixed line you picked last month cannot. The full model is on Spend alerts, burn rate, and the velocity-anomaly model.
- Escalation — a flagged channel may auto-throttle (10 per minute on
high, pause oncritical, expiring within six hours) and bridge onto an on-call incident plan when you wirePOST /api/v1/billing/spend-anomaly/escalation.
3. Usage-anomaly rules and the spend cap
The usage-anomaly rules in Usage & delivery anomaly alert rules — SMS delivery rate, outbound message volume, and spend — are read-only over your ledger. They append to your fired-event feed and ring the dashboard’s in-app Notification Center; they never pause traffic and never write to the wallet. That is the complement, not a duplicate, of the spend cap: an anomaly onspend or outbound_message_volume tells you where to look, and the spend cap enforces while you look. For a surge-shape metric the durable pairing is a hard ceiling on Billing → Alerts alongside the anomaly rule — one informs, the other enforces. Delivery-rate drops usually want the opposite: investigate the route, not clamp it.
4. Choosing the surface
- Billing → Alerts — the tenant-owned spend cap, with
pause_outboundandblock_outboundactions. - Settings → Agents — a separate daily USD ceiling on agent LLM spend; it refuses new runs with a 429 until UTC midnight or you raise it.
- Sub-account caps (resellers) — a hard monthly latch per child account that stays tripped until a new UTC month or a refund releases it.
- Usage anomaly rules — notification-only tripwires to pair with any of the above.
For the endpoint-by-endpoint reference see Spend caps, budget alerts, and auto-cutoff and the Billing API reference.