Referencia API
Solicitar OTP configurado
Inicia desafío de cuenta con canal habilitado y registra caducidad y entrega.
https://api.sparkglim.net/api/white-label/portal/reseller/otp/sendModelo de acceso
- Modelo de acceso
- Sesión SparkGlim y permisos de miembro
- Permiso requerido
otp:send- Disponibilidad documentada
- Implementado en código
Disponibilidad verificada en el código, sin garantía de producción.
Use el flujo de miembros del equipo creador. La reventa no concede acceso ilimitado a base de datos o administración.
Encabezados
| Nombre | Tipo | Validación |
|---|---|---|
AuthorizationObligatorioSesión Bearer SparkGlim existente; la membresía y capacidades asignadas autorizan cada operación en servidor. | string | Validación: Token Bearer de una sesión autenticada existente. |
Solicitud
| Nombre | Tipo | Validación |
|---|---|---|
channelObligatorioCanal de entrega o integración admitido por operación y configuración habilitada. | enum | Validación: sms | email | whatsapp. |
recipientObligatorioContacto destinatario de notificación permitida o desafío de verificación. | string | Validación: 3–255. |
purposeObligatorioPropósito de verificación admitido, vinculado a cuenta y desafío OTP. | enum | Validación: login | signup | withdrawal_approval | payment_method_verification | campaign_approval. |
memberIdOpcionalRelación o revisión existente de cuenta; propiedad y capacidades se comprueban en servidor. | string|null | Validación: UUID. |
metadataOpcionalMetadatos JSON admitidos; nunca sustituyen autorización, precios o propiedad. | object | Validación: Objeto JSON. |
Solicitud
Los ejemplos describen el contrato y no se ejecutan. Use registros de prueba autorizados; nunca pegue secretos reales aquí.
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"
}Respuesta
{
"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>"
}Validación, permisos, registros no disponibles y fallos usan el estado HTTP y error del controlador.
Límites y reintentos
Límite predeterminado: 100 solicitudes por IP en 60 segundos. También se aplican controles específicos.
Compatibilidad del código
Las operaciones autorizadas requieren pruebas específicas de la cuenta.
server/src/api/router.tsserver/src/api/routes/white-label.tsserver/src/white-label/reseller-service.tsserver/src/white-label/schemas.ts