Separating Cloudflare Accounts and Billing per Customer — Why Gmail Aliases Get Rejected and How to Mint Real Addresses with Google Workspace Aliases or Groups

Tadashi Shigeoka ·  Wed, June 3, 2026

Wanting a separate Cloudflare account per customer is a common requirement. The motivation here is concrete: I want to separate billing per customer. When accounts are split, the payment method, the invoices, and the subscriptions are all independent per customer.

The first thing that comes to mind is creating multiple logins with Gmail’s +alias (plus-addressing). You add cloudflare+customer-a@gmail.com, cloudflare+customer-b@gmail.com, and try to back a separate account with each. That is exactly where you hit this error:

A variation of this email address is already taken in our system.
Only one variation is allowed. For example, cloud.flare+alias@gmail.com
and cloudflare@gmail.com are both the same email address.

Here is the short answer: aliases (plus-addressing) cannot separate them. To create another account, you need a real email address that Cloudflare recognizes as distinct, one per account. This post covers why +alias is rejected, what creating another account actually requires, how to mint real addresses with Google Workspace aliases or Google Groups, and finally how billing separates per account.

Why Gmail Aliases Cannot Separate Accounts

Cloudflare treats Gmail subaddresses formed with + (plus-addressing) and addresses with dots (.) inserted as the same email address. On Gmail’s side these are just different ways to sort your inbox, but Cloudflare’s account-identity logic decides that “same base address means same person.”

So all of the following are considered identical:

  • cloudflare@gmail.com
  • cloud.flare@gmail.com
  • cloudflare+customer-a@gmail.com
  • cloudflare+customer-b@gmail.com

If even one account already exists under that base address, signing up with another variation is rejected. This is intended behavior, not something to work around.

Subaddressing with + is not a consumer-Gmail-only feature, either. Business-grade Google Workspace behaves the same way because it runs on Gmail, and Microsoft 365 / Exchange Online supports subaddressing by default (an organization admin can turn it off). But all of these are just different labels that land in a single inbox; they are not independent identities that can be the holder of a separate account or separate billing. The dot-ignoring trick, meanwhile, is specific to gmail.com.

In short, an address created with + is “another label for the same identity” that ultimately collapses into one inbox. If you want to separate billing, you need a genuinely different address, not a label.

Creating Another Account Requires a Real, Distinct Address

You might think you can just create an additional account on the spot from the account-switcher menu in the dashboard. I assumed that at first too. But on the regular plans, the Cloudflare dashboard has no path for an existing user to create an additional account with a single button. The official Create account procedure only describes creating a new account from the sign-up page by entering an email address and password.

In other words, every additional account means a new sign-up, and each sign-up needs one real email address that Cloudflare recognizes as distinct. And Cloudflare billing is per account: the payment method, billing address, and subscriptions are all independent per account. That is exactly why “customer = account” makes billing separate per customer for free.

As a note on day-to-day operations: if you invite a central admin user into each account’s Members as an Administrator, you can manage every account from one person, switching between them, while billing stays separated per account. Member invitations are available on Free, Pro, and Business plans.

flowchart TD
    subgraph G["Your domain (Google Workspace)"]
      A1["Group or alias<br/>customer-a@example.com"]
      A2["Group or alias<br/>customer-b@example.com"]
    end
    A1 --> C1["Cloudflare account A<br/>(billing profile A)"]
    A2 --> C2["Cloudflare account B<br/>(billing profile B)"]
    C1 --> Z1["zone: customer-a.com"]
    C2 --> Z2["zone: customer-b.com"]

Minting Real, Distinct Addresses with Google Workspace

What you need is one “real, deliverable address that Cloudflare sees as distinct” per customer. If your company uses Google Workspace, the recommended approach is to use Google Group addresses. Aliases can work too, but as noted below they have a per-user cap and more management overhead, so they do not suit an operation that keeps adding customers.

Create a Google Group per customer and sign up for the account with that group’s email address.

customer-a@example.com   (group)
customer-b@example.com   (group)

Mail to a group is delivered to all its members, so billing and recovery notifications can reach several people. The account is not orphaned when one person leaves, and you can create as many as you need without worrying about a cap. It is the closest match to the “alias or distribution list” that Cloudflare itself recommends, and the most natural choice for sustained operations.

There is a catch: by default a group does not accept mail from outside your organization. Cloudflare’s verification email comes from outside, so in the organization-wide group policies you need to allow external posting (receiving), or configure the specific group to accept external mail. Miss this and the verification email never arrives, so the sign-up cannot complete.

Aliases Also Work (for a Few)

If you have just a handful of customers and only want to try it quickly, you can also mint real addresses with Google Workspace’s alternate email address (alias) feature instead of Gmail’s +. But there is a limit of 30 per user, and they get harder to manage as they grow, so they do not suit ongoing operations. Aliases are also not independent Google Accounts, so you cannot use “Sign in with Google” and must use the normal email-and-password sign-up.

Separating Billing per Account

Once accounts are split, billing separates automatically. A Cloudflare billing profile holds the payment methods (up to two per account), the billing address, and the subscriptions per account. Since the first paid purchase sets that account’s billing cycle, the billing date and line items for customer A and customer B never get mixed together.

Requirements like wanting a separate payment card per customer, or showing a customer their own line items directly, are also easy to satisfy once the accounts are split.

Alternative: Let the Customer Own the Account

Instead of minting real addresses yourself, you can have the customer create their own Cloudflare account and invite your team members as Administrators. For contract development or ongoing operations, this gives you:

  • The customer is the contract and payment holder.
  • Billing is already separated on the customer’s side.
  • Handover is easy, with no vendor lock-in.

For the goal of separating billing, this is the cleanest option of all. If you do not need to front the payments yourself, it is reasonable to make this your first choice.

Summary

The key points:

  • Gmail +alias and . are treated as the same address, so you cannot create separate accounts with them. Google Workspace / Microsoft 365 subaddressing is the same idea: a different label for one inbox.
  • The regular-plan dashboard has no “add account” path for an existing user. Each additional account is a separate sign-up that needs one real, distinct address.
  • Google Group addresses are the sustainable way to mint those addresses. As a distribution list they reach several people, with no per-user alias cap (30) or management overhead. Aliases work too for a few.
  • Cloudflare billing is per account. Make customer = account and billing separates naturally.
  • If you do not need to hold it yourself, letting the customer own the account is the most straightforward way to separate billing.

The starting point for “a separate account per customer” is not multiplying addresses with +, but preparing a real, distinct address and signing up as a separate account. Get that right and everything, including billing separation, falls into place.

References