# Phone numbers

> Search, buy, and manage real local numbers in-app — $10/mo each, billed as their own Stripe subscription, tagged for voice and/or texting, released cleanly on cancel.

Numbers are bought inside the app — search by area code, pick one, and it's live on the receptionist or SMS service in about a minute. Each number is **$10/mo**, billed as its own Stripe subscription.

## Buying a number

1. **Search** — In the receptionist (or SMS) service — or via the MCP tool `search_phone_numbers` — search by area code or region.
2. **Buy** — Checkout runs through Stripe. The number attaches to the business and appears in its numbers list with voice/texting tags.
3. **Assign** — Point it at a service: the receptionist answers its voice, the SMS service handles its texts. One number can do both.

## Lifecycle

| Event | What happens |
| --- | --- |
| Subscription renews | Nothing to do — the number just keeps working. |
| Payment fails | The number is marked **past due**; service continues while Stripe retries. You're warned before anything is taken away. |
| Subscription canceled | The number is **released at period end** — no manual cleanup, no zombie billing. |

> **THE BILLING CLOCK LIVES IN STRIPE:** Renewals, dunning, and release timing are all driven by Stripe's webhooks — there is no separate timer to drift out of sync with your invoice.

## Your existing number

You don't port anything to start. Keep the business's number where it is and use the `*71` missed-call redirect to roll unanswered calls to the AI number — see [AI receptionist](/docs/doors/ai-receptionist). Porting is a later decision, made after the AI has proven itself on the calls you were losing anyway.
