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 pago de entradas

    Valida acceso a entradas, tipo y comprador; crea o reutiliza pago central con recibo vinculado al dominio.

    POSThttps://api.sparkglim.net/api/white-label/v1/payments/initialize

    Modelo de acceso

    Modelo de acceso
    HMAC de Organización en el servidor
    Permiso requerido
    payments:write
    Disponibilidad documentada
    Implementado en código

    Disponibilidad verificada en el código, sin garantía de producción.

    La firma privada permanece en su servidor. La API Versión 1 usa firma v2; no es una API v2.

    Encabezados

    NombreTipoValidación
    x-white-label-domainObligatorio

    Dominio verificado que resuelve la cuenta de Organización aprobada y vincula esta solicitud.

    stringValidación: Nombre de host HTTPS verificado.
    x-white-label-key-idObligatorio

    Identificador extraído de la clave privada única; nunca envíe el secreto en esta cabecera.

    stringValidación: Identificador interno de la clave privada emitida.
    x-white-label-signature-versionObligatorio

    Selecciona la firma vinculada al dominio; las rutas API siguen en Versión 1.

    stringValidación: 2.
    x-white-label-timestampObligatorio

    Momento de firma en milisegundos comparado con el reloj del servidor para rechazar solicitudes caducadas.

    stringValidación: Milisegundos de 13 dígitos; dentro de cinco minutos.
    x-white-label-nonceObligatorio

    Valor aleatorio nuevo registrado por el servidor para impedir repetir una solicitud firmada.

    stringValidación: Valor nuevo: 16–128 [A-Za-z0-9_-].
    x-white-label-signatureObligatorio

    HMAC-SHA256 de dominio, clave de idempotencia, credencial de campaña, instante, nonce, método, ruta, consulta ordenada y hash exacto del cuerpo.

    stringValidación: HMAC-SHA256 hexadecimal en minúsculas.
    x-white-label-campaign-keyOpcional

    Clave de campaña completa opcional que limita la solicitud privada a la misma campaña autorizada.

    stringValidación: Valor keyId:secret completo, opcional y limitado a su ámbito.
    X-Idempotency-KeyObligatorio

    Identidad estable de operación reutilizada con los mismos detalles; cambiar detalles con la misma clave se rechaza.

    stringValidación: 16–128 [A-Za-z0-9_-].

    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.
    return_pathOpcional

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

    stringValidación: Ruta relativa en el mismo dominio verificado.
    clientIpOpcional

    IP original enviada por servidor autorizado para controles existentes.

    stringValidación: Dirección IP válida.

    Solicitud

    Los ejemplos describen el contrato y no se ejecutan. Use registros de prueba autorizados; nunca pegue secretos reales aquí.

    POST /api/white-label/v1/payments/initialize
    http
    POST /api/white-label/v1/payments/initialize HTTP/1.1
    Host: api.sparkglim.net
    x-white-label-domain: events.example.com
    x-white-label-key-id: <ISSUED_KEY_ID>
    x-white-label-signature-version: 2
    x-white-label-timestamp: <FRESH_MILLISECONDS>
    x-white-label-nonce: <FRESH_SIGNING_NONCE>
    x-white-label-signature: <SERVER_GENERATED_SIGNATURE>
    X-Idempotency-Key: example_stable_operation_0001
    Content-Type: application/json
    
    {
      "campaign_id": "11111111-1111-4111-8111-111111111111",
      "ticket_id": "22222222-2222-4222-8222-222222222222",
      "quantity": 1,
      "phone_number": "+233200000000",
      "return_path": "/payment-return"
    }

    Respuesta

    Respuesta correcta · HTTP 200
    json
    {
      "success": true,
      "data": {
        "authorization_url": "https://checkout.sparkglim.net/gh/<SERVER_REFERENCE>",
        "reference": "<SERVER_REFERENCE>"
      },
      "requestId": "wlapi_example"
    }
    Respuesta de error · HTTP 400
    json
    {
      "success": false,
      "error": "<ERROR_MESSAGE>",
      "requestId": "wlapi_example"
    }

    Validación, permisos, registros no disponibles y fallos usan el estado HTTP y error del controlador.

    Límites y reintentos

    Organización: 120 solicitudes por clave y 300 por IP por ventana; respete Retry-After y X-RateLimit.

    Compatibilidad del código

    Las operaciones autorizadas requieren pruebas específicas de la cuenta.

    • server/src/api/router.ts
    • server/src/api/routes/white-label.ts
    • server/src/white-label/auth.ts
    • server/src/white-label/schemas.ts
    • server/src/white-label/organization-service.ts
    • server/src/white-label/service.ts