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

    Crear campaña

    Crea una campaña bajo la organización aprobada con datos validados y propiedad del creador; un borrador no se publica.

    POSThttps://api.sparkglim.net/api/white-label/v1/campaigns

    Modelo de acceso

    Modelo de acceso
    HMAC de Organización en el servidor
    Permiso requerido
    campaigns: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.

    Solicitud

    NombreTipoValidación
    titleObligatorio

    Título público de campaña del organizador autorizado.

    stringValidación: 3–255.
    descriptionObligatorio

    Descripción del organizador que explica campaña o entrada.

    stringValidación: 10–5000.
    campaign_typeObligatorio

    Selecciona entradas, votación o donativos; no concede módulos no autorizados.

    enumValidación: ticketing | voting | donation.
    start_dateObligatorio

    Fecha de apertura de campaña en formato ISO.

    stringValidación: Fecha y hora en formato ISO.
    end_dateObligatorio

    Fecha de cierre de campaña en formato ISO.

    stringValidación: Fecha y hora en formato ISO.
    country_codeOpcional

    Código del país vendedor configurado; servidor comprueba cuenta y mercado.

    stringValidación: ISO2.
    currency_codeOpcional

    Moneda permitida de campaña; elegir país no autoriza moneda nueva.

    stringValidación: ISO3.
    slugOpcional

    Identificador de URL para campaña o artículo publicado existente.

    stringValidación: Esquema configurado del identificador URL.
    statusOpcional

    Estado admitido solicitado; aprobación controla publicación y acceso.

    enumValidación: draft | pending_approval | approved | rejected | archived.
    vote_priceOpcional

    Valor configurado del producto en moneda o unidad de capacidad de campaña.

    numberValidación: >=0.
    donation_goalOpcional

    Valor configurado del producto en moneda o unidad de capacidad de campaña.

    numberValidación: >=0.
    ticket_priceOpcional

    Valor configurado del producto en moneda o unidad de capacidad de campaña.

    numberValidación: >=0.
    ticket_capacityOpcional

    Valor configurado del producto en moneda o unidad de capacidad de campaña.

    integerValidación: >0.
    image_urlOpcional

    URL de imagen proporcionada; use medios públicos autorizados.

    string|nullValidación: URL.
    banner_urlOpcional

    URL de portada proporcionada por el organizador.

    string|nullValidación: URL.
    categoryOpcional

    Categoría de campaña o configuración aprobada según recurso.

    string|nullValidación: <=120.
    locationOpcional

    Ubicación pública o filtro; separado del país vendedor financiero.

    string|nullValidación: <=255.
    event_dateOpcional

    Fecha y hora del evento, distintas del período de venta.

    string|nullValidación: Fecha y hora en formato ISO.
    verification_requiredOpcional

    Define verificación admitida sin eludir controles del servidor.

    booleanValidación: Valor predeterminado: true.
    metadataOpcional

    Metadatos JSON admitidos; nunca sustituyen autorización, precios o propiedad.

    objectValidació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/v1/campaigns
    http
    POST /api/white-label/v1/campaigns 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>
    Content-Type: application/json
    
    {
      "title": "Example campaign",
      "description": "An illustrative campaign description.",
      "campaign_type": "ticketing",
      "start_date": "2030-06-01T09:00:00.000Z",
      "end_date": "2030-06-02T18:00:00.000Z"
    }

    Respuesta

    Respuesta correcta · HTTP 201
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "draft"
      },
      "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