Extra numbers & On Demand
Buy an extra WhatsApp number via the public API with a tenant-scoped key. Pricing follows the On Demand model: you pay a monthly price per connected number (set per-tenant by the Pilot Status team) and get unlimited messages on every number.Number-scoped keys get 403 — use the tenant-scoped key (dashboard Profile → API).
GET /v1/subscription/extra-numbers — Preview (dry-run)
POST /v1/subscription/extra-numbers — Buy
- Free → On Demand conversion. If you are on the Free plan, buying an extra number moves you to On Demand: your current (formerly free, 200-message-limited) number becomes a paid, unlimited number and the new number is billed too. So buying 1 extra while Free bills you for 2 numbers. Because this changes what you pay, the
POSTreturns 409CONFIRMATION_REQUIRED(with the preview) unless you sendconfirm: true. - Already On Demand / paid. Buying increments your number count; messages stay unlimited.
- Payment. If a card is saved (dashboard Plans → Cartão), it is charged immediately and the slot is unlocked. Otherwise the response is
{ "success": true, "charged": false, "checkoutUrl": "https://…" }— open it to pay; once paid, the slot unlocks (webhook) and you can create the number withPOST /v1/numbers. - Stripe only. On Demand billing is card-based (no PIX).
Save a card first (so API purchases charge instantly) in the dashboard under Plans → Cartão.
POST /v1/billing/checkout — Wallet top-up / add a card
Generates a hosted checkout URL for billing actions:purpose: "wallet_topup"— top up the prepaid wallet.purpose: "add_card"— save a card for future On Demand charges.
checkoutUrl to open in the browser.