Overview
Overview
Use this API for reseller portal operations only.
Reseller records are white-label relationship and oversight records. They are not a second replacement for SparkGlim creator team login.
Team and member relationship
SparkGlim creator team add-member, member login, organizer OTP, and team sessions are handled by the existing creator team system backed by organizer_teams and organizer_sessions.
Use POST /portal/reseller/members to add the member. Separate reseller invitation endpoints are not advertised; the member completes their information through the normal organizer/team flow.
Errors
Most reseller portal handler errors return 400, unauthorized returns 401, and missing/not-enabled console routes can return 404.
Implementation audit
These docs are tied to the current backend implementation.
Overview
Load reseller console
Loads reseller console data for the signed-in user.
GET /api/white-label/portal/resellerAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
Profile
Update reseller profile
Updates reseller profile settings such as status, risk level, approval requirements, public signup, and settings.
PATCH /api/white-label/portal/reseller/profileAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
| status | body | draft | enabled | suspended | disabled | No | Reseller profile status. |
| requireSubCreatorApproval | body | boolean | No | Whether sub-creator approval is required. |
| allowPublicSignup | body | boolean | No | Whether public signup is enabled. |
Members
Create reseller relationship record
Adds the member through the SparkGlim creator team flow, then stores the white-label reseller relationship link.
POST /api/white-label/portal/reseller/membersAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
| userId | body | uuid | null | No | Optional linked existing user ID. |
| creatorId | body | uuid | null | No | Creator account whose SparkGlim team should receive this member. Defaults to the reseller owner creator where available. |
| memberType | body | owner | operator | finance | support | sub_creator | No | Member type. |
| displayName | body | string | No | Display name. |
| roles | body | role[] | No | Reseller roles. |
| permissions | body | capability[] | No | Capability list. |
Update reseller relationship record
Partially updates the white-label reseller relationship and syncs the linked SparkGlim creator team member where applicable.
PATCH /api/white-label/portal/reseller/members/:memberIdAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
| memberId | path | uuid | Yes | Member ID. |
Approvals
Create approval request
Creates a reseller approval request for implemented entities such as member, campaign, withdrawal, payout, payment_method, ussd, provider, or setting.
POST /api/white-label/portal/reseller/approval-requestsAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
| entityType | body | member | campaign | withdrawal | payout | payment_method | ussd | provider | setting | Yes | Entity type. |
| reason | body | string | null | No | Reason for review. |
| requestPayload | body | object | No | Request payload. |
OTP
Send reseller OTP
Creates a reseller OTP challenge for login, signup, withdrawal approval, payment method verification, or campaign approval.
POST /api/white-label/portal/reseller/otp/sendAuthentication
Authenticated SparkGlim session
Permissions
None documented for this route
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | Bearer session token | Yes | Existing authenticated SparkGlim user session. The server reads req.auth.userId. |
| channel | body | sms | email | whatsapp | Yes | Delivery channel. |
| recipient | body | string | Yes | Recipient address or number. |
| purpose | body | login | signup | withdrawal_approval | payment_method_verification | campaign_approval | Yes | OTP purpose. |