Members: managing your reseller customers
Invite customers to your white-label brand, grant them credit from your balance, set your margin, and track what each one earns you.
Updated August 17, 2026
Members are your customers on your white-label brand. This page is where you see them, fund them, and track what each one earns you.
If you do not resell, you have no members and this page stays empty. See white-label for how a reseller brand is set up.
Where to find it
Members in the sidebar, under Reseller. It only appears once you have at least one member.
Four tabs:
| Tab | What it shows |
|---|---|
| Overview | Totals and a 30-day earnings/spend chart |
| Members | The customer list, sortable and searchable |
| Invites | Pending invitations |
| Pricing | Your profit margin |
How someone becomes your member
Three routes:
They sign up on your domain. Anyone registering at your custom domain is attached to you automatically — no action needed on your side. This is the common case.
You invite them. Invites → Invite member: enter an email and an optional starting credit. We send a branded link that carries your identity, so it works from any address the recipient opens it on. They set a password and land in the panel already attached to you.
Invites expire after 14 days and can be revoked while still pending. If the email already has an account anywhere on the platform, the invite is refused — accounts cannot be transferred between resellers.
You send a quick login link. No signup form, no password, no email verification — see below.
Quick login links
A quick login link drops a customer straight into the panel. You give us an email address, we hand you a single-use URL. When they click it, they are signed in.
If no account exists for that email, one is created and attached to you. If they are already your member, you simply get a fresh link. Either way the URL points at your own domain, so they see your panel and your logo — the platform never appears.
curl -X POST https://api.call2me.app/v1/auth/quick-login \
-H "Authorization: Bearer $CALL2ME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"full_name": "Alex Chen",
"expires_hours": 24
}'
{
"url": "https://panel.yourbrand.com/auth/quick-login?token=...",
"expires_at": "2026-08-18T12:00:00",
"user_id": "...",
"is_new_user": true
}
The link is single-use and expires in 24 hours by default (7 days
maximum, via expires_hours). Once clicked it will not work again — if a
customer needs back in, generate another. Anyone holding the link can enter
that account, so send it over a private channel.
| Invite | Quick login link | |
|---|---|---|
| Who sends the email | Platform, automatically | You — we return the URL |
| Customer sets a password | Yes | No |
| Starting credit | Set on the invite | None — grant credit afterwards |
| Lifetime | 14 days | 24 hours (7 days max) |
| Best for | Ordinary customer signup | Bulk migration, demos, your own CRM |
If the email belongs to another reseller's member, or to someone who
signed up independently, no link is issued (409). That is deliberate:
nobody can absorb someone else's customer.
Granting credit
Your members do not buy credit from the platform. You fund them from your own balance:
- One member — open their row, Grant credit, enter an amount.
- Several at once — tick the checkboxes, then Grant credit. The same amount goes to each; the total is checked against your balance before anything moves.
This is a transfer, not a top-up: the amount leaves your wallet and arrives in theirs, in a single transaction. If your balance is short, nothing moves.
Credit you have granted is spent — you cannot claw it back. Grant in amounts that match how you invoice.
Your margin
Pricing tab. Enter one number: a profit margin percentage.
Margin 200% (a 3x multiplier)
Scenario List price Member pays You earn
Web call $0.10 $0.30 $0.20
Phone call $0.11 $0.33 $0.22
Interpreter $0.26 $0.78 $0.52
The list price varies by call type, which is why the margin is a percentage rather than a fixed rate — a flat "$0.30/min" would earn you $0.20 on a web call and lose money on a realtime one.
At 0 (the default) your members pay list price and you earn nothing.
The margin applies to voice calls only today. Chat, SMS, WhatsApp and number rental are billed at list price.
When you get paid
The moment a member's call ends. Their balance is debited at your price, the list amount is what you owe the platform, and the difference is credited to your balance immediately — usable straight away for granting more credit.
If a member's balance was too low to cover the call, nothing is billed and no margin is created. You never earn on money that was not collected.
Reading a member's detail
Click any row. You get their balance, calls this month, what they have earned you, their agent count, their last 20 calls and their credit history — plus a Grant credit button.
You do not get transcripts, recordings or message contents. Usage totals are yours to see; your customer's conversations are theirs.
Sorting and searching
Column headers sort server-side — click Earnings to find your most valuable customer across the whole list, not just the page you are looking at. Click again to reverse. Search matches email and name.
API
The same operations are available programmatically with your API key, so you can drive member management from your own CRM:
# List members (supports page, per_page, search, sort, order)
curl https://api.call2me.app/v1/users/me/tenant/members \
-H "Authorization: Bearer $CALL2ME_API_KEY"
# One member's detail
curl https://api.call2me.app/v1/users/me/tenant/members/$MEMBER_ID \
-H "Authorization: Bearer $CALL2ME_API_KEY"
# Grant credit
curl -X POST https://api.call2me.app/v1/users/me/tenant/members/credit \
-H "Authorization: Bearer $CALL2ME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"member_id":"...","amount_usd":25.00,"note":"August top-up"}'
# Invite someone
curl -X POST https://api.call2me.app/v1/users/me/tenant/invites \
-H "Authorization: Bearer $CALL2ME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","initial_credit_usd":10.00}'
# Read or set your margin
curl https://api.call2me.app/v1/users/me/tenant/pricing \
-H "Authorization: Bearer $CALL2ME_API_KEY"
# Issue a quick login link
curl -X POST https://api.call2me.app/v1/auth/quick-login \
-H "Authorization: Bearer $CALL2ME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","expires_hours":24}'
The /tenant/ endpoints require that you already have at least one member
— the platform derives "reseller" from that, not from a flag. Calling them
without members returns 403. Quick login is the exception: it lives under
/auth/ and creates the member, so it works from a standing start.
What's next
- White-label — branding, custom domain, tenant routing
- Wallet and billing — how the platform bills you
- Pricing — the list rates you mark up
Frequently asked
Q.Who is a member?
A customer of yours, on your white-label brand. They sign in at your domain, see your name and logo, and are funded by you rather than by the platform. Members only exist if you resell — a normal account has none.
Q.How do my members pay?
They pay you, outside the platform, however you invoice them. Every platform payment route is closed to them: no checkout, no card, no auto-charge. You fund their balance from yours.
Q.What happens when a member runs out of credit?
Their calls stop connecting, the same as any account at zero balance. The call is not billed and no margin is created for you. Grant more credit to restore service.
Q.Can a member see that Call2Me is behind the product?
No. Their panel carries your brand throughout, our documentation and payment pages are hidden from them, and the in-app assistant introduces itself with your name.
Q.Can I remove a member?
Not from the panel today. Members are accounts owned by the people who hold them, not seats you allocate — deleting one would destroy their data. Stop granting credit to end the relationship; contact support for a permanent removal.