API reference
Request configured OTP
Starts an account-scoped verification challenge using an enabled delivery channel and records its expiry and delivery state.
https://api.sparkglim.net/api/white-label/portal/reseller/otp/sendAccess model
- Access model
- SparkGlim session and member permissions
- Required scope
otp:send- Documented availability
- Implemented in source
Availability is verified from source, not a live production guarantee.
Use the creator-team member workflow. Reseller access never grants unrestricted database or administrator access.
Headers
| Name | Type | Validation |
|---|---|---|
AuthorizationRequiredExisting SparkGlim bearer session; server account membership and assigned capabilities still authorize each operation. | string | Validation: Bearer existing authenticated session token. |
Request
| Name | Type | Validation |
|---|---|---|
channelRequiredDelivery or integration channel supported by this operation and the account’s enabled configuration. | enum | Validation: sms | email | whatsapp. |
recipientRequiredDestination contact for the requested permitted notification or verification challenge. | string | Validation: 3–255. |
purposeRequiredSupported verification purpose, bound to the requesting account and OTP challenge. | enum | Validation: login | signup | withdrawal_approval | payment_method_verification | campaign_approval. |
memberIdOptionalExisting account-scoped relationship or review record; ownership and required capabilities are checked on the server. | string|null | Validation: UUID. |
metadataOptionalAdditional JSON metadata accepted by the documented schema; it never overrides authorization, prices or account ownership. | object | Validation: JSON object. |
Request
Examples describe the contract and are not executed. Use authorized test records; never paste a real secret into these pages.
POST /api/white-label/portal/reseller/otp/send HTTP/1.1
Host: api.sparkglim.net
Authorization: Bearer <EXISTING_SESSION_TOKEN>
Content-Type: application/json
{
"channel": "email",
"recipient": "member@example.com",
"purpose": "login"
}Response
{
"success": true,
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "pending",
"expiresAt": "2030-01-01T00:10:00.000Z",
"source": "sms_verification_codes"
}
}{
"success": false,
"error": "<ERROR_MESSAGE>"
}Validation, permissions, unavailable records and temporary service failures use the handler’s HTTP status and error payload.
Limits & retries
Default Server limit: 100 requests per IP per 60 seconds. Resource-specific controls also apply.
Source compatibility
Authorized operations require account-specific testing.
server/src/api/router.tsserver/src/api/routes/white-label.tsserver/src/white-label/reseller-service.tsserver/src/white-label/schemas.ts