---
title: Billing and usage
description: Plans, how monthly active users are counted, what happens at a limit, and how invoices work.
---

**Billing & usage** shows your plan, this period's usage, your limits and your
invoices. Owners and admins can see it; only the owner can change the plan or
the billing details.

## Plans

| | Free | Pro | Business | Enterprise |
| --- | --- | --- | --- | --- |
| Monthly active users included | 10,000 | 50,000 | 250,000 | Agreed |
| Beyond that | New users wait for next month | ₦3 per user | ₦2 per user | Agreed |
| Projects | 2 | 10 | Unlimited | Unlimited |
| Team seats | 3 | 10 | Unlimited | Unlimited |
| Image storage | 500 MB | 10 GB | 100 GB | Unlimited |
| Log retention | 7 days | 30 days | 90 days | Agreed |
| Remove ZevAuth branding | | ✓ | ✓ | ✓ |
| Custom email sender | | ✓ | ✓ | ✓ |

Prices are on the Billing page, monthly or yearly. Enterprise is arranged with
us directly.

> **Note:**
> Plans and limits can change. The Billing page always shows what your workspace
> has right now.

## Monthly active users

A monthly active user is a person who signed in to one of your **production**
apps during the calendar month, or whose session was renewed during it. Each
person counts once a month, however often they sign in, across all your
production environments.

Development environments are never billed. They have their own cap of 100
users each.

People who signed up but did not come back that month are not counted.

## Reaching the free allowance

On the free plan, when your production apps reach 10,000 active users in a
month:

- People **already active this month** keep signing in as normal.
- **Anyone new** cannot sign in to your production apps until the month ends,
  or until you upgrade. Their sign-in fails with code `mau_limit_reached`
  (see [Errors](/api/errors)).
- Owners and admins get a notification at **80%** and again at **100%**, so
  there is time to act before anyone is turned away.

Paid plans are never stopped: each user beyond the allowance is billed at the
plan's overage rate.

## Other limits

| Limit | When you reach it | Error code |
| --- | --- | --- |
| Projects | Creating another project is refused. | `plan_limit_projects` |
| Team seats | Inviting another person is refused. Pending invitations count. | `plan_limit_seats` |
| Custom email sender | Setting one up is refused on plans that do not include it. | `plan_feature_unavailable` |
| Image storage | New uploads are refused. The limit covers the whole workspace. | |

After a downgrade nothing is deleted. You keep what you have but cannot add
more until you are under the new limits. If your new plan does not include a
custom sender, your emails are sent from ZevAuth's address instead, so they
keep arriving.

## Changing plan

Only the workspace owner can change the plan. A paid plan needs billing details
with a billing email first, so invoices can reach you.

- **Upgrades** apply immediately.
- **Downgrades, switching between monthly and yearly, and cancelling** apply at
  the end of the current period. You keep what you paid for until then.

## Invoices

Each period is invoiced when it ends: the plan's price plus any overage. A
yearly plan's overage is worked out month by month, each month against the
monthly allowance.

Invoices are due **14 days** after they are issued and can be paid from the
link on the invoice.

### If an invoice is not paid

1. On the due date, the workspace is marked **past due** and owners are
   notified. Upgrades are paused until it is paid.
2. **14 days after the due date**, if it is still unpaid, the workspace moves to
   the **Free** plan and owners are notified again. The invoice is still owed.

Your apps keep working throughout. A workspace is never suspended for an unpaid
invoice, so your users can always sign in.

Questions about an invoice go to ZevAuth support.
