Referencia API
Iniciar compra de entradas
Valida entrada, cantidad, comprador y protección del navegador; devuelve pago del servidor o resultado gratuito.
https://api.sparkglim.net/api/public/tickets/purchaseModelo de acceso
- Modelo de acceso
- Acceso público con validación
- Disponibilidad documentada
- Implementado en código
Disponibilidad verificada en el código, sin garantía de producción.
Abra la URL de pago devuelta. SparkGlim Server controla precios, métodos, verificación y entrega; el retorno del navegador solo navega.
Solicitud
| Nombre | Tipo | Validación |
|---|---|---|
campaign_idObligatorioCampaña existente dentro de la cuenta y del alcance más limitado de la credencial. | string | Validación: UUID. |
ticket_idObligatorioTipo de entrada elegido de la campaña indicada; el servidor comprueba estado, capacidad y precio. | string | Validación: UUID. |
quantityObligatorioNúmero de entradas; el servidor impone inventario y límites por persona. | integer | Validación: 1–100. |
phone_numberObligatorioTeléfono del participante; métodos y reglas pueden exigir número internacional válido. | string | Validación: Teléfono válido y no vacío. |
emailOpcionalCorreo de contacto usado por el flujo configurado; por sí solo no concede acceso. | string | Validación: Correo electrónico. |
discount_codeOpcionalCódigo de descuento o invitación de campaña, revalidado antes de compra. | string | Validación: Valor sin espacios en los extremos y no vacío. |
invite_codeOpcionalCódigo de descuento o invitación de campaña, revalidado antes de compra. | string | Validación: Valor sin espacios en los extremos y no vacío. |
luggage_quantityOpcionalCantidad de equipaje para evento que admite esa opción configurada. | integer | Validación: >=0. |
attendee_informationOpcionalRespuestas a campos reales de campaña, valores requeridos y opciones admitidas. | object | Validación: Valores de texto que coinciden con los campos configurados. |
payment_channelOpcionalPreferencia opcional; solo se usan métodos habilitados para país vendedor, moneda y comercio reales. | enum | Validación: card | mobile_money | apple_pay | bank_transfer | crypto; el servidor controla la disponibilidad. |
network_codeOpcionalRed móvil configurada cuando el método de pago la requiere. | string | Validación: Red configurada. |
is_appOpcionalContexto existente para elegir configuración web o app; sin permisos extra. | boolean | Validación: Contexto del cliente. |
web_abuse_contextObligatorioDatos existentes de protección del navegador requeridos antes del pago público; no sustituyen autorización del servidor. | object | Validación: Objeto estricto; JSON de device_details <=12000 caracteres. |
web_abuse_context.device_idObligatorioSeñal existente de protección del navegador admitida por esquema actual. | string | Validación: 12–160. |
web_abuse_context.device_fingerprintObligatorioSeñal existente de protección del navegador admitida por esquema actual. | string | Validación: 12–160. |
web_abuse_context.browser_signatureOpcionalSeñal existente de protección del navegador admitida por esquema actual. | string|null | Validación: 12–160. |
web_abuse_context.hardware_signatureOpcionalSeñal existente de protección del navegador admitida por esquema actual. | string|null | Validación: 12–160. |
web_abuse_context.device_detailsOpcionalSeñal existente de protección del navegador admitida por esquema actual. | object | Validación: Objeto JSON. |
web_abuse_context.client_pattern_detectedOpcionalSeñal existente de protección del navegador admitida por esquema actual. | boolean | Validación: Protección de dispositivo existente. |
client_attempt_idOpcionalIdentificador estable usado para recuperar un intento y rechazar reintentos incompatibles. | string | Validación: Identidad de operación normalizada y estable. |
return_pathOpcionalDestino relativo de retorno al sitio actual verificado tras el pago centralizado. | string | Validación: Ruta relativa del mismo origen; sin // ni barra inversa. |
Solicitud
Los ejemplos describen el contrato y no se ejecutan. Use registros de prueba autorizados; nunca pegue secretos reales aquí.
POST /api/public/tickets/purchase HTTP/1.1
Host: api.sparkglim.net
Content-Type: application/json
{
"campaign_id": "11111111-1111-4111-8111-111111111111",
"ticket_id": "22222222-2222-4222-8222-222222222222",
"quantity": 1,
"phone_number": "+233200000000",
"web_abuse_context": {
"device_id": "<EXISTING_DEVICE_ID>",
"device_fingerprint": "<EXISTING_DEVICE_FINGERPRINT>"
},
"client_attempt_id": "example_stable_attempt_0001"
}Respuesta
{
"success": true,
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "pending"
}
}{
"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/public.ts