B2B & wholesale
Everything related to reseller relationships, from first contact to monthly settlement.
Current state (as of April 2026)
Being honest about where we are:
- ~20 active resellers. Top 3 account for ~70% of volume. Peak month ~20,000 SIM cards.
- No single entry point. Orders come in via email, WeChat, WhatsApp, and occasionally the website. Every order requires manual handling.
- Payment is off-system. Wire transfer per order. Reconciliation is manual, monthly.
- eSIM Hub (partner portal) is in development and will become the single entry point for all reseller activity.
This page will be rewritten once eSIM Hub launches. Until then, the sections below describe the current manual process.
Current order flow
Reseller → email/WeChat/WhatsApp → Ray or team → price quote →
payment confirmation → manual order in OMS/supplier system →
eSIM/SIM delivered via email → logged in spreadsheetThis is the process we’re replacing. Every step that says “manual” is a future automation candidate.
Pricing structure (standard)
Three reseller tiers, plus quantity breaks within each tier. See Product / Pricing for the data model.
| Tier | Who qualifies | Typical discount vs retail |
|---|---|---|
| Tier 1 | Top resellers, monthly volume > 2,000 cards, strategic | Deepest |
| Tier 2 | Regular resellers, 500–2,000 cards/month | Medium |
| Tier 3 | New or small resellers, <500 cards/month | Smallest |
Specific prices per SKU live in Supabase (product_price_tiers table). Do not put prices in chat, email, or this handbook — they’re wrong the moment they’re changed somewhere else.
Customer-specific pricing (exception handling)
Some top resellers have negotiated prices that override the standard tier. These live in customer_specific_prices table and require:
- A written reason (contract number, annual commitment, strategic rationale)
- A
valid_todate (never indefinite) - Ray’s approval
Reviewed every quarter — any expired or no-longer-justified override gets removed.
Onboarding a new reseller (current manual flow)
Until eSIM Hub launches:
- Prospect reaches out via any channel
- Ray or designated person collects:
- Company name, legal entity, registration document
- Country of operation and sales channels
- Estimated monthly volume
- Primary contact details
- Assign a customer ID:
B2B-NNN(next sequential number) - Add to
customerstable in Supabase with default tier (usually tier_3) - Share the current price list for their tier
- First order is a “trial order” — small volume, expedited handling
Settlement & reconciliation
Currently monthly. Known issue: because retail, B2B, and supplier payments are commingled, we don’t have clean monthly profit-by-channel. Fixing this is Priority #1 after eSIM Hub launches.
TODO once eSIM Hub is live:
- Auto-generated monthly statement per reseller
- Auto-reconciliation against bank deposits
- Dashboard view of outstanding receivables
Related
- Product / Pricing — tier and customer-specific price data model
- Tech / Architecture — how OMS, eSIM Hub, and Shopify relate