Ir a la documentación
SparkGlimSparkGlim Desarrolladores
Buscar en toda la documentación

Prueba un tema en tu idioma o una ruta API exacta.

    Referencia API

    Iniciar compra de entradas

    Valida entrada, cantidad, comprador y protección del navegador; devuelve pago del servidor o resultado gratuito.

    POSThttps://api.sparkglim.net/api/public/tickets/purchase

    Modelo 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

    NombreTipoValidación
    campaign_idObligatorio

    Campaña existente dentro de la cuenta y del alcance más limitado de la credencial.

    stringValidación: UUID.
    ticket_idObligatorio

    Tipo de entrada elegido de la campaña indicada; el servidor comprueba estado, capacidad y precio.

    stringValidación: UUID.
    quantityObligatorio

    Número de entradas; el servidor impone inventario y límites por persona.

    integerValidación: 1–100.
    phone_numberObligatorio

    Teléfono del participante; métodos y reglas pueden exigir número internacional válido.

    stringValidación: Teléfono válido y no vacío.
    emailOpcional

    Correo de contacto usado por el flujo configurado; por sí solo no concede acceso.

    stringValidación: Correo electrónico.
    discount_codeOpcional

    Código de descuento o invitación de campaña, revalidado antes de compra.

    stringValidación: Valor sin espacios en los extremos y no vacío.
    invite_codeOpcional

    Código de descuento o invitación de campaña, revalidado antes de compra.

    stringValidación: Valor sin espacios en los extremos y no vacío.
    luggage_quantityOpcional

    Cantidad de equipaje para evento que admite esa opción configurada.

    integerValidación: >=0.
    attendee_informationOpcional

    Respuestas a campos reales de campaña, valores requeridos y opciones admitidas.

    objectValidación: Valores de texto que coinciden con los campos configurados.
    payment_channelOpcional

    Preferencia opcional; solo se usan métodos habilitados para país vendedor, moneda y comercio reales.

    enumValidación: card | mobile_money | apple_pay | bank_transfer | crypto; el servidor controla la disponibilidad.
    network_codeOpcional

    Red móvil configurada cuando el método de pago la requiere.

    stringValidación: Red configurada.
    is_appOpcional

    Contexto existente para elegir configuración web o app; sin permisos extra.

    booleanValidación: Contexto del cliente.
    web_abuse_contextObligatorio

    Datos existentes de protección del navegador requeridos antes del pago público; no sustituyen autorización del servidor.

    objectValidación: Objeto estricto; JSON de device_details <=12000 caracteres.
    web_abuse_context.device_idObligatorio

    Señal existente de protección del navegador admitida por esquema actual.

    stringValidación: 12–160.
    web_abuse_context.device_fingerprintObligatorio

    Señal existente de protección del navegador admitida por esquema actual.

    stringValidación: 12–160.
    web_abuse_context.browser_signatureOpcional

    Señal existente de protección del navegador admitida por esquema actual.

    string|nullValidación: 12–160.
    web_abuse_context.hardware_signatureOpcional

    Señal existente de protección del navegador admitida por esquema actual.

    string|nullValidación: 12–160.
    web_abuse_context.device_detailsOpcional

    Señal existente de protección del navegador admitida por esquema actual.

    objectValidación: Objeto JSON.
    web_abuse_context.client_pattern_detectedOpcional

    Señal existente de protección del navegador admitida por esquema actual.

    booleanValidación: Protección de dispositivo existente.
    client_attempt_idOpcional

    Identificador estable usado para recuperar un intento y rechazar reintentos incompatibles.

    stringValidación: Identidad de operación normalizada y estable.
    return_pathOpcional

    Destino relativo de retorno al sitio actual verificado tras el pago centralizado.

    stringValidació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
    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

    Respuesta correcta · HTTP 200
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "pending"
      }
    }
    Respuesta de error · HTTP 400
    json
    {
      "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.ts
    • server/src/api/routes/public.ts