Overview
Overview
Use this API for reseller portal operations only.
Reseller-managed accounts follow the implemented member and invitation workflow.
Member workflow
Create members with /portal/reseller/members or invite them with /portal/reseller/invitations.
Members may link to userId or creatorId where already available; the docs do not invent direct creator creation.
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 member
Creates a reseller member. This is the implemented member-based workflow; there is no documented direct creator creation endpoint here.
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 user ID. |
| creatorId | body | uuid | null | No | Optional linked creator ID. |
| 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 member
Partially updates an existing reseller member.
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. |
Invitations
Create reseller invitation
Creates an invitation for a reseller member.
POST /api/white-label/portal/reseller/invitationsAuthentication
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. |
| body | email | null | No | Invitee email. | |
| phone | body | string | null | No | Invitee phone. |
| expiresAt | body | ISO datetime | Yes | Invitation expiry. |
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. |