Skip to content
Docs

Client billing questions answered

Every question we hear from agencies about billing clients for minutes and chats, with a short answer and a link to the full guide. New to client billing? Start with the quick start: it takes you from switching it on to your first client’s bill.

Client billing lets you sell each client a monthly plan of call minutes and chats, plus minute and chat packs when they need more. Voice AI Portal counts every call and chat across the client’s agents, from the client’s own ElevenLabs, Retell AI or Vapi account, every minute. It warns you and the client as minutes or chats run low, collects payment the way you choose, and can stop new calls or chats when they run out: outbound straight away, and inbound once our team turns on provider changes, on request, for each client.

Full guide: Client billing overview.

  1. The agency owner turns on Client billing in Client billing, Settings, and saves the defaults.
  2. Create a plan in Client billing, Plans.
  3. Open the client’s Client settings and, under Users with access, turn on Billing contact for the people who should get the bills. Do this first: switching billing on with a paid plan sends the first payment email straight away.
  4. Under Client billing, choose Track only in Billing for this client. In the Switch billing on dialog, pick the plan (or No plan: minute packs only) and select Switch on.
  5. Turn on Show billing to the client, and add any Billing email addresses, such as an accounts inbox.

Full guide: Client billing quick start.

ElevenLabs, Retell AI and Vapi. Each client keeps its own provider account, and your agents, numbers and prompts stay where you built them. Usage is read from each provider’s own call and chat records.

Do I need to change anything in my provider account?

Section titled “Do I need to change anything in my provider account?”

Not to count usage: the portal reads calls and chats from the API key you already connected. To stop inbound calls and text on Track and enforce, the portal changes settings on the client’s numbers or agents while they are blocked, such as the inbound webhook on a Retell AI number, and restores them exactly afterwards. These provider changes are off until our team turns them on, on request, for each client. Until then, inbound calls and text are counted, and outbound calls and campaigns still stop.

Full guide: Provider changes: does our team need to turn them on?

Role What they can do
Agency owner Everything, including the agency’s Client billing switch, the Settings tab and connecting Stripe
Agency admin Plans, packs, payments due, and each client’s Billing page and billing settings
Agency member No billing pages

Full guide: Team members and roles.

Yes. Put the client on Track only: usage is counted and the usage emails go out, but calls are never stopped. You see real usage against the plan before anything depends on it, then move to Track and enforce if you want limits. Client billing works during your 14-day free trial too.

Will it bill calls from before I switched it on?

Section titled “Will it bill calls from before I switched it on?”

No. Billing counts calls and chats from the moment you switch it on for a client. Calls that never connected and ElevenLabs dashboard test conversations are never billed.

No. Each agent belongs to one billed client, so no call is counted twice. If an agent is selected for two clients, the portal names the other client and asks you to remove the agent from one of them before you switch billing on.

No. Client billing is included on every Voice AI Portal plan. Your own plan is priced by clients and seats, from $29 a month, never by your clients’ minutes. See Pricing.

Do you take a share of what my clients pay?

Section titled “Do you take a share of what my clients pay?”

No. With Stripe, your clients pay into your own Stripe account, Stripe’s fees are charged to that account, and Voice AI Portal adds no fee of its own. With manual payments, clients pay you directly. Voice AI Portal never holds your clients’ money.

A monthly price, included minutes, optional overflow minutes (a free buffer or priced per minute), rounding, a rule for unused minutes, optional trial minutes for new clients, and the plan’s chats. You can create a plan for each price you sell.

Full guide: Create client plans.

Price the plan on what the agent is worth to the client, then check the plan’s worst month: included plus overflow minutes, times your own all-in cost per minute. For example, a fictional Starter 200 plan at £49 with 30 overflow minutes can cost you at most 230 × £0.12 = £27.60 at a cost of £0.12 a minute. Set any overflow price above your own cost per minute.

Full guide, with three example plans: Create client plans.

Every month, on the day their plan started, in the client’s time zone. A plan assigned on the 14th renews on the 14th. Priced overflow minutes and extra chats are billed at renewal.

Yes, with minute packs. A client can request a pack, buy one by card once your Stripe account is taking payments, or turn on auto top-up so a pack is bought when minutes run low, never more than 5 times in a calendar month. Packs expire after the time you choose, from 30 days to never.

Full guide: Create minute and chat packs.

You choose for each plan: Expire at renewal, Roll over for one period, or Keep rolling over, up to a cap. A cap matters, because every carried minute is one you pay your provider for when it is used.

Only connected call time counts, rounded up for each call by the plan’s Rounding: Per second, Per 6 seconds, Per 30 seconds or Per started minute. A call connected for 61 seconds bills 61 seconds, 66 seconds, 90 seconds or 2 minutes. Put the rounding in your client agreement.

Yes. Plans and packs can be priced in any of 44 currencies, including GBP, EUR and USD. Each client is billed in one currency, and a plan’s currency is fixed once clients are on it. To bill another currency, create a plan in that currency.

Yes. Select Change plan on the client’s Billing page. A bigger plan starts today, with unused minutes added on top. A smaller plan starts at the next renewal.

Full guide: Bill a client.

Yes. In a client’s Client settings you can set its own overflow minutes, its own chat allowance, unlimited overflow or unlimited extra chats for clients you trust, and which emails and stop options apply. Prices come from the plan, so give a client a different price with a plan of its own.

Client billing covers recurring plans, packs, overflow and extra chats. Bill one-off work, such as a set-up fee, the way you invoice it today, for example from your own Stripe Dashboard or accounting tool.

No. Web chat, WhatsApp and SMS chats have their own allowance, packs and warnings, and never use minutes. On a plan with a chat allowance, a client whose minutes run out keeps chatting while it has chats left, and the other way round.

On ElevenLabs, a web chat or WhatsApp conversation counts as a chat when ElevenLabs records it as text only, as it does for a chat-only agent. Otherwise it is billed as minutes, so give each client’s chats their own chat-only agent.

Full guide: Bill your clients for chats.

Should I bill per conversation or per message?

Section titled “Should I bill per conversation or per message?”

You choose for each plan under Bill chats by. A WhatsApp chat where the customer sends 5 messages and the agent replies 5 times counts as:

Plan setting Counted
Conversation 1 chat conversation
Message, Customer and agent messages 10 chat messages
Message, Agent replies only 5 chat messages

Per conversation is the simplest to explain. Per message suits clients whose chats vary a lot in length. Tool calls and empty entries never count.

No. One chat is one conversation as the provider records it, however long it lasts. On ElevenLabs WhatsApp, a conversation closes 15 minutes after the agent’s last reply with no new message, so a customer who writes again later starts a new chat. The only 24-hour rule is Meta’s WhatsApp customer service window, which has nothing to do with billing.

Yes. One plan holds both: included minutes for calls, and a chat allowance for web chat, WhatsApp and SMS, with a price for extra chats if you like. Under Channels that count, choose which chat channels the allowance covers. For ElevenLabs clients, answer chats with a chat-only agent, so each conversation counts as a chat rather than as minutes.

Full guide, with priced examples: Sell voice, WhatsApp and web chat bundles.

Your client owns their WhatsApp Business account, and Meta bills the business directly for WhatsApp fees. ElevenLabs bills for agent usage, as it does for calls. What you charge the client for chats is set by their plan.

Full guide: Connect WhatsApp to a workspace.

Yes. Chat packs work like minute packs: by request, by card, or with chat auto top-up on the same saved card. A chat pack holds chat messages or chat conversations, and is offered to clients whose plan bills chats the same way.

On Track only, chats keep going and are counted. On Track and enforce with Stop text channels too on, new chats stop on Retell AI SMS, ElevenLabs WhatsApp and ElevenLabs chat-only agents until chats are added or the period renews. Other chats keep going and count as extra chats, billed at renewal when the plan prices them. Calls are never affected by chats. Inbound calls and text are refused once our team turns on provider changes, on request, for each client. Until then they are counted. See when minutes run out.

No. With manual payments, every bill carries your bank details, a reference and a link to a payment page your client opens without logging in. Reminders go out on the schedule you set, and you mark payments paid when the money arrives. Connect Stripe when you want card payments, Stripe invoices, packs bought by card or auto top-up.

Full guide: Manual payments or Stripe: which should you use?

Manual payments or Stripe: which should I choose?

Section titled “Manual payments or Stripe: which should I choose?”

You choose for each client, and can change later.

How the client pays Choose it when
Manual payments Your clients pay by bank transfer, or you are not using Stripe yet
Stripe invoices The client’s accounts team wants a numbered invoice by email
Card (automatic) The client wants it to just work: a card saved once and charged each period

Full guide: Manual payments or Stripe: which should you use?

Yes, with your existing Stripe login. The owner opens Client billing, Stripe, where the Already use Stripe box shows how to connect it.

Full guide: Connect Stripe.

Creating the account takes a few minutes: Stripe asks for your business details, the person who represents the business and a bank account for payouts. Stripe may then review your details. The Stripe tab shows Taking payments once you can charge clients.

Stripe’s own fees, at Stripe’s rates (opens in a new tab), charged to your Stripe account. Voice AI Portal adds no fee on top.

With Stripe, payments land in your own Stripe account and are paid out to your bank on your Stripe payout schedule. With manual payments, clients pay straight into your bank account.

Can clients pay a Stripe invoice by bank transfer?

Section titled “Can clients pay a Stripe invoice by bank transfer?”

Yes, when the owner turns on Let clients pay Stripe invoices by bank transfer. Stripe shows its bank details on the invoice, and transfers are matched and marked paid automatically. It works for invoices in your Stripe account’s local currency, in the countries the setting lists.

Stripe retries the card, and calls continue for the Days to fix a failed card payment you set: 7 days unless you change it, up to 30. Your team is emailed and a banner shows on the client’s pages. If the days pass unpaid, calls stop for clients on Track and enforce until the client pays, then resume. Inbound calls stop once our team has turned on provider changes, on request, for each client.

Yes. Refund a pack bought by card from the client’s Billing page, in full or in part: the refunded share of its unused minutes or chats is taken back. Refund plan invoices, or issue a credit note, in your Stripe Dashboard, and the portal takes back that share of the period’s minutes and chats. On manual payments, undo a payment marked paid by mistake, or void a payment request.

You do, in your own Stripe Dashboard, because clients pay into your Stripe account.

Only if you allow it. With Clients can cancel their plan themselves on, clients on Stripe can cancel from Stripe’s customer portal, at the end of the period. It is off unless you turn it on, so cancellations come to you.

Yes. For clients on manual payments, turn on Issue invoices from the portal and set your Tax name (for example VAT), your VAT number, the rate and whether Your prices include or exclude it. Add the client’s company name and VAT number under Invoice to. Clients paying through Stripe get Stripe’s invoices and receipts, with the business name, address, logo and tax ID from your Stripe account. Check how tax applies to your business with your accountant.

Full guide: Get paid without Stripe.

Are invoices issued in my business’s name?

Section titled “Are invoices issued in my business’s name?”

Yes. Portal invoices carry your legal name, address and company number. Stripe invoices carry the business details in your Stripe account.

Yes. Portal invoices and credit notes each have a prefix you choose, such as INV- and CN-, and numbers run in order and are never reused. Stripe numbers its own invoices.

Can I send billing to Xero or QuickBooks Online?

Section titled “Can I send billing to Xero or QuickBooks Online?”

Yes. Export the invoices the portal issues as a CSV file in the import format of Xero (with credit notes) or QuickBooks Online, and your payments as a separate CSV.

Can a client’s accounts team get the bills without logging in?

Section titled “Can a client’s accounts team get the bills without logging in?”

Yes. Add up to 3 Billing email addresses in the client’s Client settings. They get the payment emails with a link to pay, and no login is needed.

What happens when a client runs out of minutes?

Section titled “What happens when a client runs out of minutes?”

You choose for each client. Both of you are warned first: at 80% of plan minutes unless you change it, and again when overflow starts. With Track only, minutes keep counting and calls never stop. With Track and enforce, campaigns pause and new outbound calls stop once plan, pack and overflow minutes are used, and they start again within a minute of minutes being added. Inbound calls and text are refused once our team turns on provider changes, on request, for each client. Until then they are counted. See when minutes run out.

Full guide: When minutes run out.

Not by default. Calls in progress finish, and the extra time is carried over. With Track and enforce, a new call is refused when less than a minute is left, so a call does not start only to be cut short. For inbound calls this applies once our team turns on provider changes, on request, for each client. If you want calls to end at the limit, turn on End calls in progress.

Can a trusted client keep calling past the limit?

Section titled “Can a trusted client keep calling past the limit?”

Yes. Turn on Unlimited overflow for the client. Calls never stop for minutes, and every overflow minute is billed at renewal at the plan’s overflow price, so it needs a plan with an overflow price. You get an email as the overflow grows.

How do I avoid paying provider bills for a client who does not pay?

Section titled “How do I avoid paying provider bills for a client who does not pay?”

Use the settings that suit the client:

  • Monthly minutes are added: When you mark the payment paid, so each month’s minutes arrive only once you are paid.
  • When a payment is overdue: Also pause calls automatically, for clients on Track and enforce. The client is warned 2 days before calls pause.
  • Card (automatic), so Stripe charges the card each period, with the grace days you set.
  • No plan: minute packs only, so the client pays before it uses any minutes.

When calls pause or stop, outbound calls stop straight away. Inbound calls and text are refused once our team turns on provider changes, on request, for each client. Until then they are counted.

Yes. Select Pause calls on the client’s Billing page and choose a reason. On Track and enforce, new outbound calls stop straight away. Inbound calls are refused within a minute once our team turns on provider changes, on request, for each client; until then they are counted. Select Resume calls to start them again.

Only the people you choose. A client user sees a Billing page when Show billing to the client is on for that client and their Billing contact switch is on. Other client users see no billing. Select View as client to check the page exactly as a billing contact sees it.

Full guide: Client billing for your clients.

Their plan and renewal date, minutes and chats used and left, payments due with how to pay, invoices and receipts, and usage by day, agent and channel. When you offer packs, they see Need more minutes? and Need more chats?, with Buy now once your Stripe account is taking payments.

Do clients see my provider or what it costs me?

Section titled “Do clients see my provider or what it costs me?”

No. The Billing page shows your plan, your prices and the client’s usage, never what the provider charges you. Your provider account and your provider bill stay between you and your provider.

Yes. Payment pages show your agency name and logo. Billing emails go out from your own email domain once you set up your email sender. Stripe invoices and receipts use the branding in your Stripe account.

Does billing store what was said on calls?

Section titled “Does billing store what was said on calls?”

No. Billing keeps only IDs, times, durations, message counts, channels and money. It never stores recordings, transcripts, summaries, messages, caller names or phone numbers. Payment notes cannot contain bank account or card numbers.

Clients enter their card in Stripe’s own checkout, and the card details are kept by Stripe, not by Voice AI Portal.

Usage for each call is kept for 24 months, then rolled up into monthly totals. Grants of minutes and chats, payment requests and monthly totals are kept for 7 years. A client’s billing account is removed 90 days after the client is deleted or disabled.

Problem What to do
Billed minutes don’t match the provider’s figures Check the plan’s Rounding: it rounds up every call, so billed minutes can be higher than connected time. Billing also skips calls that never connected, test conversations and anything before billing was switched on. Download Statement CSV on the client’s Usage card to see every billed call.
A client can’t see Billing Check that the agency switch is on, the client is on Track only or Track and enforce, Show billing to the client is on, and the user’s Billing contact switch is on.
A banner reads Usage can’t be read from the voice provider The portal could not read the client’s provider account several times in a row, and minutes aren’t counted until it can. Check the client’s API key. See Update a provider API key.
Inbound calls kept going after the minutes ran out Check the client is on Track and enforce, not Track only, that Unlimited overflow is off, and that Stop inbound calls is on. Inbound calls and text are refused once our team turns on provider changes, on request, for each client; until then they are counted. Email hello@voiceaiportal.com to ask.
Stripe invoices and Card (automatic) can’t be chosen Your Stripe account is not taking payments yet. Finish setup from the Stripe tab.
A client doesn’t see Need more minutes? or Need more chats? Check Client can request packs is on for the client, and that you have an active pack in its currency. For chats, the pack must hold the kind of chats the plan bills.
A client says they paid, but the payment is still open I’ve paid pauses reminders for 5 days while you check. Mark the payment paid, or match it from a bank statement CSV.
Billing emails don’t reach the client Check Billing emails to the client is on, the client has a billing contact or billing email address, and your email sender is set up.
Switching billing on says an agent belongs to another client Remove the agent from one of the two clients first.