For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
WebsiteDashboardGet API key
  • Get Started
    • Welcome
    • Quickstart
    • Agent onboarding
    • Service keys
    • Core Concepts
  • Guides
    • Hosted Mode
    • Webhook Mode
    • Audio Mode
    • SMS and Conversations
    • Compliance and Consent
    • Billing and Usage
    • Voice zones
    • SMS zones
  • Reference
    • Authentication
    • API Overview
    • Errors and Testing
  • API Reference
  • Changelog
    • Cloudflare Insights CSP
    • Agent-native key management
    • Postpaid auto-charge
    • Cents-honest pricing
    • Stripe payments foundation
    • Hosted/webhook mode rename
    • Upgrading to v0.5.7.0
LogoLogo
WebsiteDashboardGet API key
On this page
  • What changed
  • Trigger conditions
  • What you need to do
Changelog

Postpaid auto-charge and low-balance modal

2026-05-06 · v0.5.5.0 · feature

Was this page helpful?
Previous

Cents-honest pricing reprice

2026-05-04 · v0.5.3 · pricing

Next
Built with

Headline. Cards on file now auto-recharge before usage stops. A new interruptive modal prompts customers who are about to be blocked.

v0.5.5.0 closes the gap between “your balance is low” and “we silently stopped your service.” Customers with a card on file are charged proactively when balance dips below the threshold. Customers without a card see a modal asking them to add one before anything fails. The number-fee tick continues to debit balance at the 30-day mark, and postpaid auto-charge then settles any negative balance against the card on file.

What changed

  • Auto-charge cron runs on a regular cadence and tops the balance back up when it falls below the threshold and a default payment method is on file. The charge uses the existing Stripe PaymentIntent path against the saved card.
  • Low-balance modal shows once per browser session when balance is under $2 and either no card is on file, or a recent usage event was blocked. Two variants:
    • No card on file: “Add a payment method to keep your number active.” Primary CTA opens Stripe-hosted Setup Checkout.
    • Charge failed: “We couldn’t charge your card.” Primary CTA goes to /billing for a payment-method update.
  • Suspension reinstate webhook restores service automatically once a card update succeeds, with no support ticket needed.
  • Number-fee mechanics unchanged. The $2.50/month per-number fee still debits balance at the 30-day mark. The difference: when balance goes negative, postpaid auto-charge picks it up instead of the line being suspended in limbo.

Trigger conditions

The modal triggers on balance < $2 AND (no card on file OR recent blocked-usage signal within 24h). Blocked-usage covers both failed calls rows and the pre-call / pre-SMS reject events (call_rejected_insufficient, sms_rejected_suspended, and so on). This catches the painful failure mode where the API rejected a 402 before any call record was written.

What you need to do

Nothing. If you have a card on file, auto-charge is already running. If you don’t, you’ll see the modal next time your balance dips below threshold. Add a card to dismiss it for good.