# Running a Child Panel on top of Orbit This is for **resellers** — people who want to run their *own* branded SMM panel website, where Orbit is their upstream provider (the same way Orbit itself resells from NigeriaSMM). A reseller's child panel can be any SMM panel script (including another copy of this same Orbit codebase), pointed at Orbit's Reseller API instead of a script's own database. ## How it works ``` Customer → Reseller's own panel (their brand, their prices) │ │ (Reseller API — same protocol as NigeriaSMM) ▼ Orbit (your platform) │ │ (Orbit's own provider connection) ▼ NigeriaSMM (or whichever provider you connected) ``` Orbit already speaks the exact same API protocol used by NigeriaSMM and almost every other SMM panel (`action=services|add|status|balance`), via `backend/api/v2.php`. That means **any** panel script a reseller already owns — this one, a paid script, or a custom one — can be configured to use Orbit as its "provider" with zero code changes on their end, exactly like you configured this platform to use NigeriaSMM. ## Step 1 — Turn a user into a reseller In **Admin → Users**, click into the user's detail page and hit **"Make reseller"**. This does two things: 1. Gives them **reseller pricing** everywhere they order (web UI, and the API) — set per-service in **Admin → Services** (the "Reseller price / Reseller markup %" columns), or in bulk in **Admin → Pricing Rules**. 2. Nothing else changes automatically — they still use their existing Orbit account, wallet, and API key. Reseller pricing should be **lower than your normal user pricing** but **higher than your provider cost** — that's the reseller's margin to build their own business on top of. ## Step 2 — Give them their API credentials The reseller needs two things, both on their own **API** page (`user/api.php`) once logged into their reseller account: - **API endpoint**: `https://tryorbit.ng/backend/api/v2.php` - **API key**: shown on that page, regenerate any time That's the entire "provider connection" their child panel needs — the same two fields they'd enter for any other SMM provider. ## Step 3 — Reseller connects their child panel to Orbit In *their* panel's admin area (wherever it manages providers — if it's another Orbit instance, that's **Admin → Providers** there), they enter: | Field | Value | |---|---| | API URL | `https://tryorbit.ng/backend/api/v2.php` | | API key | Their Orbit API key from Step 2 | Then they sync services, same as you did with NigeriaSMM. Every service in your catalog becomes available on their panel, priced at whatever markup **they** choose on top of the reseller price you gave them. ## What the Reseller API supports `POST https://tryorbit.ng/backend/api/v2.php` | Action | Params | Returns | |---|---|---| | `services` | `key` | Array of your active services (id, name, category, rate, min, max, refill, dripfeed) | | `add` | `key, service, link, quantity, runs?` | `{order: "#123456"}` — places a real order, debited from the reseller's wallet at their reseller rate | | `status` | `key, order` (comma-separated for bulk) | `{charge, start_count, status, remains, currency}` per order | | `balance` | `key` | `{balance, currency}` — the reseller's own Orbit wallet balance | This is the same shape documented on the reseller's own API page — if their child panel script supports "add custom provider," it needs nothing more than the URL and key above. ## Funding the chain The reseller funds their **own Orbit wallet** the same way any user does — Paystack, or any manual payment method you've configured. Every order their customers place on their child panel debits the reseller's Orbit wallet at the reseller price in real time. What they charge their own customers, and how they collect that money, is entirely between them and their customers — Orbit only ever sees the reseller's side of the transaction. ## Monitoring reseller activity **Admin → Resellers** shows real API-order activity: who's using the Reseller API, how many orders, and how much revenue it's generating — separate from regular website orders (`origin = 'api'` vs `'web'` in the orders table, if you're querying it directly). ## Limits and guardrails to be aware of - Reseller pricing is **per-service**. If you haven't set a reseller price for a given service, it falls back to the normal user price — so review pricing before onboarding a reseller if you want every service discounted for them. - There's no per-reseller rate limiting on the API beyond the login/order rate limits already in place — for a large reseller placing very high order volume, keep an eye on Admin → Analytics for cost/revenue trends. - Refunds, cancellations, and disputes from the reseller's own customers are the reseller's responsibility to handle on their end — Orbit's refund/cancel tools operate on the reseller's orders with *you*, not their downstream customers (who Orbit has no visibility into).