Legal

Privacy Policy

What personal data ResellerHQ collects, why, who receives it, how long it is kept, and the rights you have.

ResellerHQ is a platform that lets resellers sell domains, phone numbers and Google mailboxes to their own customers, under their own brand. This policy explains what personal data we collect, why, who receives it, how long we keep it, and the rights you have.

ResellerHQ is a product of Magnitude Labs Inc ("ResellerHQ", "we", "us"). For anything about privacy, email privacy@resellerhq.com.

Who this policy covers, and our role

We handle personal data in two roles, and different rules apply to each.

Whose dataOur roleWhat applies
Visitors to resellerhq.com, and the people who sign up for and use a reseller accountController: we decide why and how the data is usedThis policy
A reseller's own customers, and the people who use the domains, numbers and mailboxes a reseller buys for themProcessor: we act only on the reseller's instructionsThe reseller's own privacy policy, and our Data Processing Agreement with the reseller

If you bought something from a company that uses ResellerHQ, that company is responsible for your data. Its customer portal links to its own privacy policy. Send requests about your data to that company; we help it answer them.

What we collect

When you visit our website

  • Attribution cookies. Two first-party cookies, rhq_attribution_first and rhq_attribution_last, record the page you landed on and the campaign link that brought you, for up to 90 days. They are only ever sent to our own servers.
  • Analytics, only with your consent. If you accept the cookie banner, PostHog records page views, session replays and feature flags on the marketing site, blog, docs and the sign-up and sign-in pages. Every input on a recorded page is masked. If you reject the banner, the PostHog script never loads. "Cookie settings" in the footer changes your choice at any time.
  • Server logs. Our servers log each request (IP address, browser, the page asked for, the time) to keep the service running and secure.
  • Bot protection. Some forms use Cloudflare Turnstile to tell people from bots.

When you create and use a reseller account

  • Account details: your name, email address, password (stored only as a one-way hash) or the sign-in provider you chose (Google, GitHub or Microsoft), passkeys and two-step verification settings.
  • Billing details: your company's legal name, address, tax ID and billing email, and your wallet balance and its history. Card payments for wallet top-ups are handled by Stripe; we never see or store your full card number.
  • What you do in the account: orders, invoices, price lists, API keys (we keep only a hash, never the key itself), the activity trail of changes, and the AI assistant or MCP client you connected, if any.
  • Product analytics, only with your consent. If you accept the cookie banner, PostHog records how you use the dashboard. All text is masked by default: amounts, balances, customer names, addresses, domains, phone numbers, API keys and anything you type are never recorded. You can turn this off in Settings → Session recording.
  • Messages with us: emails and support conversations.

When you set a password, we check it against a public list of breached passwords by sending only the first five characters of its hash. The password itself never leaves our servers.

What resellers put into ResellerHQ about their customers

On a reseller's behalf, and only as its processor, we hold:

  • Customer records: name, email, billing address, tax ID and the reseller's own reference.
  • Domain contacts: the registrant, admin, tech and billing contact (name, organisation, email, phone, postal address). Domain registration rules require these to be passed to the registrar and the registry for each name.
  • Phone numbers: the numbers rented, and the SMS messages they receive (sender and text). Calls arrive as text transcripts.
  • Mailboxes: each mailbox's first and last name, email address and setup status, and its sign-in details (password, app password and two-step verification secret), which we keep encrypted. We do not read the contents of mailboxes; Google hosts them.

Why we use it

PurposeLegal basis
Providing the service: your account, and buying and managing domains, numbers and mailboxesPerforming our contract with you
Billing, invoices, tax records and fraud preventionContract; legal obligation; legitimate interests
Security: sign-in protection, breached-password checks, bot protection, logsLegitimate interests in keeping accounts and the service safe
Service emails: confirmations, receipts, security alerts, renewal noticesContract
Knowing which campaigns bring sign-ups (attribution cookies)Legitimate interests
Product analytics and session replay (PostHog)Consent, which you can withdraw at any time
Processing a reseller's customer dataThe reseller's instructions, under our DPA

We do not sell personal data, share it with data brokers, or use it for advertising. We never use a reseller's customer data for our own purposes.

Who receives it

We use a small number of service providers ("subprocessors"), each of which receives only what it needs for its job. Their categories, what each receives and where they are, are listed at resellerhq.com/legal/subprocessors. Customers who have accepted our DPA can ask for the names. We tell resellers before we add a new one.

We also share data:

  • with domain registries, and the public WHOIS/RDAP record, where registration rules require it (WHOIS privacy keeps contact details off the public record where the domain ending allows it);
  • with Google, which hosts the mailboxes you order;
  • with the AI assistant or MCP client you connect to your account (for example ChatGPT), for the request you make through it;
  • when the law requires it, or to protect our rights, our users or the public;
  • with a buyer or successor if ResellerHQ is sold or merged, under the same protections.

Where your data is stored

Our servers are in the United States (Michigan). Some service providers process data in other countries, as listed on the subprocessors page. When we transfer personal data out of the European Economic Area, the UK or Switzerland, we use the European Commission's Standard Contractual Clauses (with the UK Addendum where needed), or rely on the EU–US Data Privacy Framework where the provider is certified.

How long we keep it

DataKept for
Account and customer records, orders, domains, numbers, mailboxesUntil you ask us to delete them, or delete them yourself. We then delete them within 30 days
Mailbox sign-in detailsErased when the mailbox's domain is deleted from the account
Invoices and payment recordsAs long as tax and accounting law requires, even after the rest is deleted
Request logs and traces15 days
Database backups (encrypted)Daily copies for 35 days and one monthly copy for 400 days
Attribution cookies90 days

A deleted record stays in encrypted backups until that backup expires, and is never restored except to recover from a disaster.

How we protect it

Data travels over HTTPS only. Mailbox sign-in details are encrypted at rest. Backups are encrypted before they leave our database servers, so our backup storage provider only ever holds encrypted files. Staff accounts require two-step verification, and only a few named people can reach our servers. Customers can ask for our full security measures at security@resellerhq.com.

Your rights

Depending on where you live (for example under the GDPR, the UK GDPR or the CCPA), you can ask us to: see the data we hold about you; correct it; delete it; restrict or object to how we use it; and receive it in a portable format. You can withdraw consent to analytics at any time through "Cookie settings". You can also complain to your data protection authority.

To use these rights, email privacy@resellerhq.com. We answer within one month. If a reseller gave us your data, we pass your request to that reseller, because it decides what happens to the data.

California residents: we do not sell or "share" personal information as the CCPA defines those words, and we do not use sensitive personal information to infer anything about you.

Children

ResellerHQ is a business service, not meant for anyone under 18. We do not knowingly collect children's data.

Security issues

Report a vulnerability or a suspected breach to security@resellerhq.com.

Changes to this policy

If we make a material change, we update the effective date and email account owners before it takes effect. Earlier versions are available on request.

Contact

Magnitude Labs Inc. Email: privacy@resellerhq.com.

Adapted from the Basecamp open-source policies (github.com/basecamp/policies), licensed CC BY 4.0.

The ChatGPT and MCP plugin

Connecting an assistant to ResellerHQ (an OAuth sign-in, or an API key pasted into an MCP client) gives it a set of tools, each scoped to your own account. Every field below is what one of those tools can return or take in, grouped by what the tools do. Nothing here is collected beyond what the tool itself needs to answer the call it was given.

Account and wallet

Tools: get_account, get_wallet

Returns: your account name, environment (sandbox or live), status, which product lines are open, your wallet's available and held balance and its recent movements, and the billing defaults a new invoice falls back to (legal name, address, tax id, billing email).

Why: So an assistant can check there is enough in the wallet before it previews a purchase, and can fill an invoice's defaults correctly.

Who receives it: The assistant and the host you are using (ChatGPT, or another MCP client), for the one request that asked. ResellerHQ's own servers see it to serve the call, the same as any other API request to your account. Nobody else.

Kept for: This is a live read of your own account's existing records; ResellerHQ stores nothing extra because a tool was called. The call itself - which tool, whether it succeeded, how long it took - is logged the same as every other API request; the fields it returned are never written to that log.

Customers

Tools: list_customers, get_customer, create_customer, update_customer, assign_price_list

Returns or takes in: a customer's email, name and billing address, your own reference for them, their tax id, and which price list they are on.

Why: To look a customer up before quoting, buying or invoicing for them, and to record one you add through the assistant.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers to serve it. Nobody else - a customer's details are never sold, shared with a data broker, or forwarded anywhere outside your account.

Kept for: As long as the customer record itself exists in your account, exactly as it does today through the dashboard and the REST API. Marked as untrusted text in the tool's own result, since a customer chose those words, not you.

Your controls: Change or remove a customer's details from the dashboard or the API; both change what the plugin reads immediately, since it reads the same record.

Domains

Tools: search_domains, list_domains, get_domain, prepare_domain_registration, prepare_domain_renewal, confirm_purchase, update_domain

Returns or takes in: domain names, their status and nameservers, and the registrant/admin/tech/billing contact on file - name, organization, email, phone, address, city, state, postal code and country.

Why: To check availability and price before registering, to show what you already hold, and to change a domain's nameservers, lock or contacts when you ask the assistant to.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers, and the domain registry when a name is actually checked or registered - the same registrar call the dashboard makes. Nobody else.

Kept for: As long as the domain is registered through your account. Every contact field is marked as untrusted text in the tool's own result, since it was written by whoever set the contact, not by you.

Your controls: Change a domain's contacts or nameservers from the dashboard, the API, or the assistant itself; WHOIS privacy, where the ending offers it, keeps the contact off the public WHOIS record the same way it does today.

Phone numbers

Tools: find_numbers, list_numbers, get_number, read_messages, prepare_number_purchase, prepare_number_renewal, confirm_purchase, cancel_number

Returns: the numbers you hold, their status and rental details, and the SMS they have received - the sender and the message body.

Why: To buy, renew or cancel a rental, and to read messages a customer or a verification service sent to a number you hold.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers, and the carrier that routes the number. Nobody else.

Kept for: As long as the rental and its messages exist in your account, the same retention the dashboard shows them under. Every message's sender and body are marked as untrusted text, since whoever texted the number wrote them, not you - an assistant is told to treat that text as data to report, never as instructions to follow.

Your controls: Cancel a rental shortly after buying it, from the dashboard, the API or the assistant, and nothing further is charged or received.

Mailbox licences

Tools: list_licence_plans, list_licences, get_licence, list_licence_users

Returns or takes in: which plans are on offer, the licences you hold - plan, vendor, domain, seat count and status - each mailbox on a licence, with its first and last name, email address and provisioning status, and, when you buy licences, the admin mailbox's email and the organisation name set on the vendor account. Nothing about any mailbox's own contents.

Why: To buy mailbox licences on a domain, change a seat count, or see who the seats on a licence belong to, when you ask the assistant to.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers, and the mailbox vendor (Google or Microsoft) when seats are actually provisioned - the same provisioning call the dashboard makes. Nobody else.

Kept for: As long as the licence exists in your account.

Mailboxes

Tools: get_mailbox_price, connect_mailbox_domain, list_mailbox_domains, get_mailbox_domain, list_mailboxes, get_mailbox, get_mailbox_credentials, delete_mailbox_domain, prepare_mailbox_order

Returns or takes in: the domains you have connected for mailboxes - domain, nameservers and status - and each mailbox on them, with its first and last name, email address and setup status. When you ask for them, a mailbox's sign-in details: its password, app password and two-step verification secret. Nothing about any mailbox's own contents.

Why: To connect a domain, order mailboxes on it, hand over their sign-in details or delete them, when you ask the assistant to.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers, where sign-in details are kept encrypted; and, when mailboxes are actually set up, the provider that sets them up for us and Google, which hosts them - the same calls the dashboard makes. Nobody else.

Kept for: As long as the domain is connected in your account. Sign-in details are erased when it is deleted.

Sending tools

Tools: list_sequencer_platforms, list_sequencer_connections, get_sequencer_connection, export_mailboxes_to_sequencer, list_sequencer_exports, get_sequencer_export, retry_sequencer_exports, remove_sequencer_export

Returns or takes in: the accounts you have connected at sending tools such as Instantly, Smartlead, EmailBison and SendKit - their name, tool, workspace and settings - and each mailbox exported to them, with its email address and where the export has got to. Never an account's API key or password: connecting one is not something the assistant can do.

Why: To put mailboxes into a sending tool, follow them there, retry a failed one or take one out again, when you ask the assistant to.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers; and, when a mailbox is exported, the provider that sets it up for us and the sending tool you connected - the same calls the dashboard makes. Nobody else.

Kept for: As long as the connection exists in your account. Removing a connection forgets its keys.

Sales, invoices, orders and price lists

Tools: quote, list_sales, sales_summary, list_orders, get_order, list_invoices, get_invoice, create_invoice, issue_invoice, mark_invoice_paid, void_invoice, share_invoice, create_price_list, update_price_list

Returns or takes in: what a customer is quoted or charged, your margin, invoice line items and totals, a note shown on an invoice, the price rules a price list is built from, and an order's own status and dates -list_orders and get_order return the same domain, number or licence order details already covered above, not a new category. share_invoice creates a public, read-only link to one invoice.

Why: To price something for a named customer, bill them for what they bought, and record that they paid - ResellerHQ takes no payment itself; you collect it however you already do and record that here.

Who receives it: The assistant and host, for that one call; ResellerHQ's own servers. A shared invoice's link is readable by anyone holding it, exactly as the dashboard's own "share" feature already makes it. Nobody else.

Kept for: As long as the sale, invoice or price list exists in your account. An invoice's own note is marked as untrusted text.

No payment data: No card number, bank detail or payment-processor credential is ever read or written through this surface - only the wholesale cost, the price charged, and the resulting order or invoice id, the same figures the dashboard already shows you.

Cookies and analytics

Tools: rhq_attribution_first, rhq_attribution_last, posthog-js

First-party attribution: two cookies, rhq_attribution_first and rhq_attribution_last, record which page you landed on and which campaign link (if any) brought you, for up to 90 days. They are set on every visit to the marketing site, whatever you choose below - they are strictly about how an account arrived, never sent anywhere but our own servers, and the one thing the sign-up form reads to credit a campaign.

Processor: PostHog (PostHog Inc., US region) sees pageviews, session replay on the marketing site, blog, docs and the sign-up and sign-in pages, and feature flags - but only after you accept the cookie banner on your first visit. Before that, and if you reject it, posthog-js is never loaded and nothing is sent to PostHog. Requests go through our own domain (/ingest), so they are first-party; PostHog's own data is kept in your browser's local storage, never a cookie, and every input on every recorded page is masked.

Inside the dashboard: once you have accepted the cookie banner, your own use of the dashboard is recorded the same way, with every piece of text masked by default as well - only navigation, headings and the odd status badge are shown; wallet balances, every amount, customer names, addresses, domains, phone numbers, API keys and anything typed never are. This is off for every account flagged internal, and any reseller can switch it off for their own account in Settings → Session recording.

Withdraw consent: "Cookie settings" in the footer reopens the banner at any time, on any page, and switches PostHog on or off immediately - no reload, and no partial state left behind either way.

Docs

Tools: search_docs

Returns: the matching page from ResellerHQ's own public docs site, as Markdown.

Why: So an assistant can answer a question from the docs instead of guessing.

Who receives it: The assistant and host, for that one call. The docs are public pages with no personal data in them; nothing about your account is sent to fetch them.

Kept for: Not applicable - no account data is involved.

Every tool call is logged the same way any other API request is - which tool, the outcome and how long it took, against the account and the key or connection that made it - never the arguments sent or the data returned. A tool that changes your account (a purchase, an edit) additionally writes one line to your account's own activity trail, visible in the dashboard, the same as a change made there directly.