Sell business email under your own price
Add AuruMail business email to what you already sell, such as domains or hosting. You choose the price, your platform provisions the customer through our API, and we settle your share every week.
Partner sign-in
Reseller accounts are by invitation.
How it works
You control the price
Each plan has a wholesale price set for your account. You choose the retail price at or above it, under Your prices or through the API. Your customer pays that price, and your share is the difference. For example, with a wholesale price of 8.00 and a retail price of 12.00, you earn 4.00 every month the customer pays.
A new price applies to new subscriptions. Existing customers keep the price they signed up at.
How customers buy
Today the API is the only channel: your site shows your prices and calls our API. A ready-made shop page you can link to is planned.
- Create the customer with the domain they bought or already own.
- Publish the DNS records we return. If you run their DNS, as a registrar does, you can do this automatically so the customer never edits a record.
- Ask us to verify the domain.
- Create a subscription and send the customer the payment link. We collect the payment at your price.
- The customer sets their own password from an email we send. You never handle their password.
Weekly settlement
Your share is recorded when a payment is actually received, and again on every monthly renewal for as long as the customer stays. Weeks run Monday to Sunday, UTC. Each week your registered email receives your total share. Refunds reduce your share, and if a week ends negative the balance carries into the next one.
Connect with OAuth 2.0
Generate a client ID and secret under API keys, then exchange them for a one-hour access token:
curl https://reseller.aurumail.com/oauth/token \ -u "$CLIENT_ID:$CLIENT_SECRET" \ -d grant_type=client_credentials
Create a customer:
curl https://reseller.aurumail.com/api/reseller/v1/customers \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"external_id":"order-1001","company_name":"Example Ltd",
"domain":"example.com","admin_name":"Sam Lee",
"admin_username":"sam","contact_email":"sam@gmail.com"}'
Then sell it a plan, which returns the payment_url:
curl https://reseller.aurumail.com/api/reseller/v1/customers/$ID/subscription \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"plan":"standard"}'
All endpoints, under /api/reseller/v1
| Call | Purpose | Scope |
|---|---|---|
GET /plans | List, wholesale and retail prices | billing:read |
PUT /prices/{plan} | Set retail_price | prices:write |
GET /availability | Check ?domain= and ?slug= | customers:read |
POST /customers | Create; safe to repeat with the same external_id | customers:write |
GET /customers, GET /customers/{id} | State and DNS records | customers:read |
POST /customers/{id}/dns/verify | Check the domain now | customers:write |
POST /customers/{id}/activation/resend | Resend the password email | customers:write |
POST, DELETE /customers/{id}/subscription | Start a subscription; stop renewing | customers:write |
GET /statements, GET /statements/{id} | Weekly statements | billing:read |
PUT /webhook, POST /webhook/test | Set and test your webhook | webhooks:write |
Webhooks
Events: customer.created, domain.verified, subscription.activated, subscription.cancelled, payment.received, payment.refunded, statement.issued, webhook.test. Failed deliveries are retried with growing delays.
Verify each one: compute HMAC-SHA256 of <X-AuruMail-Timestamp>.<raw body> with your webhook secret, compare it with X-AuruMail-Signature (v1=<hex>), and reject old timestamps. Deliveries can repeat or arrive out of order, so de-duplicate on X-AuruMail-Delivery, and read the current state from the API when in doubt.