Plans and bills
Each app chooses its own plan, uses its own resource quotas, and has its own plan funds and audio/video minutes account. Bills still summarize every app's costs per tenant; a combined summary doesn't mean balances are shared. This page covers plans, bills and settlement; for call and RTC channel prices and how to top up, see Audio/video billing.
| You want to | Where |
|---|---|
| Choose a plan for an app, check its plan balance or top it up | Select the app at the top → Plans |
| Check the call and RTC balance, standard minutes and top-up history | Select the app at the top → Audio/video billing |
| See the tenant's combined bills, historical account, transactions and usage | Billing center |
| See the app's quotas, change history and daily stats | App details → Plan and usage |
| Finance approval, recording payments, adjusting prices | Platform admin → Billing |
Billing rules
- Plans are per app: each app uses one plan on any given day, with its own quotas; test and production apps can choose different plans.
- Plan funds settle per app: bills under the new model allocate amounts per app and only charge that app's plan account. App A's balance can't pay for app B.
- Prepaid audio/video minutes: calls and standalone channels share the app's standard audio/video minutes and aren't paid directly from the plan balance. From the switch-over date on, standard media minutes aren't also counted in the plan's usage-based bill.
- Billing period: the calendar month in the statistics time zone, Beijing time by default. When a plan starts, changes or ends mid-month, the monthly fee is prorated by day, and each day uses one plan.
- Issuing bills: each month's bill is generated early the next month and issued after checking, usually within 3 days; it settles against whichever account model applies. Historical bills keep their original settlement account.
- Start and end: new apps use the platform's default plan and are billed from the day they're created; the day an app is deleted or a tenant closure takes effect is the last billing day. Resources are kept while disabled or suspended, and plan fees still apply.
- Currency: RMB, shown in yuan, precise to the fen. Bills don't list tax separately; contact the platform for invoices.
Change plan
In "Plans", select the app first, then see its current subscription, available plans and request history. Purchase requests take effect after platform finance verifies and processes them; submitting a purchase request, a top-up arriving, and the subscription taking effect are separate states to check.
The platform can also change plans immediately or on a schedule. An immediate change can take effect on any date this month, but not before the app's first billing day; a scheduled change can be up to a year ahead. Before it takes effect, contact the platform to change or cancel it. Plans for last month and earlier aren't rewritten directly; they're corrected with later adjustments.
Quotas update with the plan in effect, and clients receive the runtime config change. Adjusting an app's quota separately only changes that app's quota, not the plan price, and is kept when the plan changes.
Shortening message retention deletes messages
Messages beyond the new retention period are hidden and gradually deleted, and setting it back can't restore them. Lowering other quotas usually only stops new data, without deleting what exists. Changes that shorten retention are checked by the platform and need identity verification.
What a plan includes
A plan includes resource quotas, a monthly fee and optional usage-based prices. Shown prices, included amounts and resource limits follow what the platform publishes and what the app actually subscribes to. Standard audio/video minutes are topped up separately, so a plan with no monthly fee doesn't mean audio/video is free.
Quotas
| Quota | What happens at the limit |
|---|---|
| Registered users | No new users; returns limit_exceeded |
| Concurrent connections | New connections are refused; existing ones aren't affected |
| Total groups, members per group, groups per user | Creating, joining or inviting is refused |
| Message retention days | Messages past it are hidden and cleaned up |
| Storage (when the platform enables it) | No more uploads; existing files can still be downloaded with permission |
| Concurrent calls | Calls and active channel media share this quota; resources being reclaimed may also hold it briefly |
| Chat rooms | No new chat rooms |
| Audio/video availability | Before the switch-over, the plan's switch applies; under the new model, admission is based on the app's audio/video balance, and app policies, the media service and other conditions must still be met |
A numeric quota of 0 usually means unlimited, but check each API's description. Members per group, groups per user and message retention are also limited by app policies; storage, chat rooms and others are also limited by platform protective quotas. The client's runtime config reflects the values in effect. See Rate limits and app status.
Metered items
| Item | How it's counted and charged |
|---|---|
| Messages | One-to-one and group business messages; group messages aren't counted once per member, and system notices don't count |
| Daily and monthly active users | Users who successfully opened a persistent connection, counted once each; HTTP-only calls don't count |
| Peak concurrent connections | The daily maximum of per-minute samples |
| Storage | Sampled in GB when the storage quota is enabled; 1 GB = 2³⁰ bytes |
| Chat room messages and peak connections | Accepted business messages and the daily connection peak, respectively |
| Content moderation checks | Checks by the platform's accounts; cache hits and your own moderation accounts don't count toward platform moderation fees |
| Registered users | For display only, not charged by usage |
| Daily call and channel minutes | Kept for history and reports; from the switch-over date on, no longer the basis for charging the media balance |
| Standard audio/video minutes | Collected by the media service from actual received resolution, charged monthly per app against the separate minutes balance |
Ordinary plan usage is collected daily, and recent data may be filled in or corrected; data not yet collected shows as missing, which doesn't mean zero. Standard audio/video minutes are reported back by the media servers and aren't charged only after the next day's plan collection. For the full rules, see Audio/video billing.
How usage-based charges are calculated
Plan bills are calculated per app, per plan and per active period within the month, with each line rounded to the fen.
| Item | Calculation |
|---|---|
| Monthly fee | Monthly fee × days in the period ÷ days in the month |
| Messages, chat room messages, moderation checks | Total usage in the period minus the included amount prorated by day; the excess × unit price |
| Daily active users | The sum of each day's users above the daily included amount, × unit price |
| Peak connections, chat room peak, storage | The period's maximum minus the included amount, × unit price, prorated by days in the period |
| Monthly active users | Using the plan on the month's last billing day, the excess over the included amount for the whole month |
| Historical call and channel usage before the switch-over date | Calculated with the plan prices and counting rules at the time |
| Media minutes from the switch-over date on | Excluded from plan charges and charged to the app's standard audio/video minutes balance instead |
For example, an app with a 299-yuan monthly fee, 5 million messages included per month and 1 yuan per 10,000 messages over that starts on October 5, so 27 of 31 days are billed, and sends 6 million messages: the monthly fee is 260.42 yuan, the prorated included amount is 4354838 messages, and the excess costs 164.52 yuan. This example only covers plan fees, not separately topped-up audio/video.
In the console
Available plans
In "Plans", select an app to see its current plan, public plans and custom plans visible to that app. Read the monthly fee, resource quotas, included amounts, usage prices and request status; "Requesting" doesn't mean it's in effect. For a business quote or special quotas, contact the platform.
The app's plan and usage
App details show the current plan, when it took effect, the first billing day, quotas in effect, scheduled changes, the subscription history for the last 12 months, and daily stats. Daily stats default to this month up to yesterday, and to last month on the 1st; up to 93 days at a time, for this month and the 13 months before.
Voice, video and channel minutes in daily stats are report data. To see actual media charges, open "Audio/video billing" and check this month's standard minutes, minutes charged and transactions; don't add the two kinds of minutes together.
Account and this month's cost estimate
The "Billing center" has combined bills, the historical tenant account and this month's plan cost estimate. The estimate uses the full monthly fee and usage collected so far, excludes adjustments, and is cached for up to 10 minutes; it isn't a live audio/video balance or the final amount due.
An app's plan balance and unpaid amount are in that app's "Plans". The historical tenant balance is kept, isn't allocated to apps automatically, and isn't converted into audio/video minutes automatically.
Bills
Each tenant gets one combined bill a month, listing each app's monthly fee, usage charges and adjustments. Bill numbers look like {org_name}-{year-month}, with a suffix such as -2 when voided and reissued.
| Status | Meaning |
|---|---|
| Issued | Confirmed as due; may be unpaid or partly paid |
| Settled | Fully paid, including bills of zero or covered by the balance when issued |
| Void | The original record and reason are kept, and it's no longer collected; amounts already charged go back to the original account |
The list can be filtered by status and overdue. Details include the period, due date, charges, adjustments, amount due, paid, unpaid, and a breakdown per app. For bills on app accounts, an app's share can only be settled by topping up that app; other apps' balances are never used. Voided amounts go back to the app's plan account. Bills already issued keep their original tenant account, so you can't tell the settlement model just from when you look.
When a bill is wrong, the platform voids and reissues it or adjusts a later bill, rather than editing an issued amount. Bills the platform generated despite missing data are marked "Incomplete data".
Export details
owner and admin can export a UTF-8 (with BOM) CSV from bill details. Each row has the bill, period, app, type, metered item, plan, start and end dates, days, usage, included amount, billed quantity, pricing unit, unit price, amount and notes. Exported bill details and media minute transactions are different records, so check them separately.
Transactions
- App plan account: top-ups and transfers, bill settlements, refunds from voided bills, and the balance after each.
- App audio/video account: minutes topped up, usage charges, refunds from corrections, and the balance; amounts and standard minutes are shown separately.
- Historical tenant account: the billing center keeps the original records of payments, charges, refunds, credits, reversals and so on; transfers to apps have their own vouchers and aren't counted as new income again.
Records keep the time, type, amount or minutes, balance after, voucher and notes. Errors are fixed by adding correction records, never by deleting history to make the balance "look right".
Usage summary
Shows each app's plan stats by month, last month by default, with this month and the 13 months before available. Messages and moderation checks are totals, daily active users can be shown as user-days and the daily maximum, monthly active users is the month's value, and connections and storage are their peaks. For new audio/video charges, the monthly total in the separate minutes account is authoritative.
Payment
First decide the target app and account, then create a top-up order and choose WeChat Pay or bank transfer. A plan top-up adds RMB; an audio/video top-up converts to standard minutes at the price locked in the order. WeChat Pay is credited automatically once verified, and bank transfers once their arrival is confirmed; see How to top up.
Under the new model, a plan top-up only settles that app's issued unpaid charges, and the rest stays with that app. Historical bills are still settled by the historical account for their periods. Once a top-up order has arrived, don't also have finance record the same bank receipt as a separate direct payment. For refunds, extensions or transfers of historical balances, contact platform finance.
Billing contacts and notifications
owner and admin can set up to 5 billing emails under the account in the billing center; with an empty list, the tenant's owner and admins are notified instead. Leading and trailing spaces are removed and addresses are lowercased; ownership isn't verified, so check before entering them. On a version conflict, reload and edit again.
The platform can send bill and payment reminders; the historical tenant debt model also has read-only, suspension and restoration notifications. Bills already settled aren't chased based on outdated status. For notification language, email and SMS template settings, and what happens when a variant is missing, see Languages and localization.
Overdue and unpaid bills
Tell these three cases apart:
| Case | Current behavior |
|---|---|
| An app's plan bill is unpaid | The app's amount due is kept; standalone app bills don't trigger the old tenant-wide debt restrictions |
| An app's audio/video balance is zero or negative | New media admission is refused; existing calls keep settling, and minutes may go negative |
| A historical tenant bill is overdue | The original tenant-level debt rules still apply and may affect all apps |
Under the historical model, a reminder goes out by default on day 1 after the due date, the tenant becomes read-only on day 15 and is suspended on day 30, with a warning 3 days before each restriction; the platform's configuration and your agreement decide the actual timing. Read-only allows queries but blocks restricted writes; suspension affects tokens and connections. See App and tenant status. These historical restrictions aren't how bills for new apps work today.
Restore service
For audio/video, confirm the top-up order has arrived and the balance is positive after covering negative minutes, then check app policies, channel switches, concurrent quotas and the media service. Once all historical tenant bills are settled, the system lifts the financial restrictions; suspensions the platform set for other reasons aren't lifted by this. If it still doesn't work, give the platform the app identifier, order or voucher number, and request ID.
Permissions
| Action | owner | admin | developer |
|---|---|---|---|
| View the app's plan, quotas, subscription history and daily stats | ✓ | ✓ | ✓ |
| View the app's wallet balance | ✓ | ✓ | ✓ |
| Create app top-up orders, view orders and transactions | ✓ | ✓ | — |
| View combined bills, cost estimates and the historical account, export | ✓ | ✓ | — |
| Change billing contacts | ✓ | ✓ | — |
Platform finance confirms payments, processes top-up orders and sets rates. For operation permissions and account details, see Audio/video billing.
Standalone channel usage and automatic corrections
rtc_channel_audio_minutes and rtc_channel_video_minutes are still summed per app and statistics day from each participant's actual time online with media, and rounded, for historical bills and stats. Both publishers and subscribers count, and reservations without a connection don't; the field category comes from the channel's media, and turning off the camera doesn't change it.
This differs from new media charging, which goes "actual received resolution → standard seconds → monthly total per app". From the switch-over date on, daily channel stats and automatic corrections don't produce extra plan media charges. Late reports and corrections of standard minutes are handled through media receipts; see Rounding. For when reports are final, versions and what confirmation means, see Channel usage and corrections.
Audio/video billing and separate app balances
The default RTC price is 7 yuan per 1000 standard minutes, with default multipliers of 1, 4, 9, 16 and 36 for the five tiers, adjustable by admins. The full resolution table, multi-party examples, top-up flow, historical migration and troubleshooting are all in Audio/video billing.
