> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kapso.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# How billing works

> Managed billing for your customers' WhatsApp accounts, pricing, eligibility, and limits

With managed billing, Kapso attaches its credit line to a customer's WhatsApp Business Account (WABA), pays Meta for that account's paid messages, and deducts the fees from your project's Kapso credits. How much you charge your customer is up to you.

Managed billing is available for WABAs connected with [Kapso's Meta app](/docs/platform/setup-links/create-and-configure#meta-billing-policy) or through an active [Multi-partner Solution](/docs/platform/tech-providers/multi-partner-solutions). A standalone custom Meta app is not eligible.

## Kapso credits

Meta fees are deducted from your project's prepaid Kapso credits, always in USD.

* You can connect managed billing with a zero balance and add credits later.
* Multi-partner Solutions require the minimum prepaid balance shown in the project.
* Billing applies to the whole WABA, including every number in it.

## Pricing

| Messages run through | WABA currency | What Kapso deducts |
| - | - | - |
| Kapso | USD | Meta's published USD price |
| Kapso | Enabled non-USD currency | Meta's price plus the FX margin shown in Kapso |
| Your infrastructure (MPS) | USD | Meta's published USD list rate plus a 5% managed billing fee |
| Your infrastructure (MPS) | Enabled non-USD currency | The above plus the FX margin |

The FX margin is 5% at launch; your account's exact margin is shown on the WhatsApp billing card in project settings. Marketing Lite is billed at Meta's published marketing rate; max-price bidding above that rate is not supported.

Your Kapso plan's message allowance is separate: a message can count toward your allowance and also have a Meta fee. See [WhatsApp pricing](/docs/whatsapp/pricing-faq).

## Confirm funding

A successful WhatsApp connection does not confirm that managed billing was attached. Check it before sending paid messages:

* **Kapso infrastructure:** check the billing result returned by the setup flow, or the account's funding status.
* **Your infrastructure:** open **Tenants > Multi-partner solution** and confirm the WABA shows funding as **verified**.

You can also read funding status with the [Funding API](/docs/platform/whatsapp-funding).

## When funding can't be attached

* **The WABA already has a Meta payment method.** Meta rejects the Kapso credit line and the WABA stays on direct Meta billing. Setup completes and sends are not paused.
* **The WABA's currency isn't enabled yet.** Kapso enables non-USD currencies one at a time. Connecting is blocked with `unsupported_currency` and the WABA stays on direct Meta billing.
* **Meta changes the WABA's currency later.** Potentially paid sends pause until the change is reviewed. Free messages are unaffected.

## Low balance

* **Kapso infrastructure:** potentially paid sends pause when the project doesn't have enough credits.
* **Your infrastructure:** Kapso doesn't control the send path and can't pause your sends. Usage is deducted after Meta reports it through Pricing Analytics, about every five minutes. Keep enough balance to cover usage between checks.

## Leaving managed billing

Meta doesn't support switching an existing WABA from a partner credit line back to a card, even after the credit allocation is revoked. To have a customer pay Meta directly, plan a new WABA and a number migration. See [Payment issues](/docs/whatsapp/payment-method-troubleshooting#switching-from-kapso-credits-to-a-meta-card).

Moving a WABA with managed billing to another Kapso project requires support.

## WhatsApp Calling

Managed billing for WhatsApp Calling is available for eligible USD WABAs. User-initiated calls are free. Meta charges business-initiated calls by duration and destination, and Kapso deducts the aggregate cost from your credits.

* **Kapso infrastructure:** Kapso checks billing health and balance before starting a business-initiated call.
* **Your infrastructure:** Kapso checks Meta Call Analytics about every five minutes and can't block calls made through your integration.

Calling fees are reported as aggregate usage. Kapso doesn't show the exact Meta fee for an individual call.
