Aller à la documentation
SparkGlimSparkGlim Développeurs
Rechercher dans toute la documentation

Essayez un sujet dans votre langue ou un chemin API exact.

    Référence API

    Créer une campagne

    Crée une campagne dans l’organisation approuvée avec données validées et propriété Créateur ; un brouillon n’est pas publié.

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

    Modèle d’accès

    Modèle d’accès
    HMAC Organisation côté serveur
    Portée requise
    campaigns:write
    Disponibilité documentée
    Implémenté dans le code

    La disponibilité est vérifiée dans le code, pas garantie en production.

    La signature privée reste sur votre serveur. L’API Version 1 utilise le format de signature v2 ; ce n’est pas une API v2.

    En-têtes

    NomTypeValidation
    x-white-label-domainObligatoire

    Domaine vérifié qui résout le compte Organisation approuvé et lie cette requête.

    stringValidation : Nom d’hôte HTTPS vérifié.
    x-white-label-key-idObligatoire

    Identifiant extrait de la clé privée unique ; n’envoyez jamais son secret dans cet en-tête.

    stringValidation : Identifiant interne de la clé privée émise.
    x-white-label-signature-versionObligatoire

    Sélectionne le format signé lié au domaine ; les routes API restent Version 1.

    stringValidation : 2.
    x-white-label-timestampObligatoire

    Heure de signature en millisecondes comparée à l’horloge serveur pour rejeter les requêtes périmées.

    stringValidation : Millisecondes sur 13 chiffres ; dans une fenêtre de cinq minutes.
    x-white-label-nonceObligatoire

    Valeur aléatoire fraîche enregistrée par le serveur pour empêcher la répétition d’une requête signée.

    stringValidation : Valeur nouvelle : 16–128 [A-Za-z0-9_-].
    x-white-label-signatureObligatoire

    HMAC-SHA256 du domaine, clé d’idempotence, clé de campagne, horodatage, nonce, méthode, chemin, requête triée et empreinte exacte du corps.

    stringValidation : HMAC-SHA256 hexadécimal en minuscules.
    x-white-label-campaign-keyFacultatif

    Clé de campagne complète facultative qui limite la requête privée à la même campagne autorisée.

    stringValidation : Valeur keyId:secret complète, facultative et limitée à son périmètre.

    Requête

    NomTypeValidation
    titleObligatoire

    Titre public de campagne fourni par l’organisateur autorisé.

    stringValidation : 3–255.
    descriptionObligatoire

    Description de l’organisateur expliquant la campagne ou le billet.

    stringValidation : 10–5000.
    campaign_typeObligatoire

    Sélectionne billetterie, vote ou don ; ne donne pas accès à un module non autorisé.

    enumValidation : ticketing | voting | donation.
    start_dateObligatoire

    Horodatage d’ouverture de campagne au format ISO.

    stringValidation : Date et heure au format ISO.
    end_dateObligatoire

    Horodatage de fermeture de campagne au format ISO.

    stringValidation : Date et heure au format ISO.
    country_codeFacultatif

    Code du pays de vente configuré ; le serveur vérifie compte et marché.

    stringValidation : ISO2.
    currency_codeFacultatif

    Devise autorisée de campagne ; choisir un pays n’autorise pas une nouvelle devise.

    stringValidation : ISO3.
    slugFacultatif

    Identifiant d’URL pour la campagne ou l’article publié existant.

    stringValidation : Schéma de segment URL configuré.
    statusFacultatif

    État de cycle pris en charge ; les règles d’approbation contrôlent encore publication et accès.

    enumValidation : draft | pending_approval | approved | rejected | archived.
    vote_priceFacultatif

    Valeur configurée du produit, dans la devise ou unité de capacité de la campagne.

    numberValidation : >=0.
    donation_goalFacultatif

    Valeur configurée du produit, dans la devise ou unité de capacité de la campagne.

    numberValidation : >=0.
    ticket_priceFacultatif

    Valeur configurée du produit, dans la devise ou unité de capacité de la campagne.

    numberValidation : >=0.
    ticket_capacityFacultatif

    Valeur configurée du produit, dans la devise ou unité de capacité de la campagne.

    integerValidation : >0.
    image_urlFacultatif

    URL de l’image fournie ; utilisez un média public autorisé.

    string|nullValidation : URL.
    banner_urlFacultatif

    URL de couverture fournie par l’organisateur.

    string|nullValidation : URL.
    categoryFacultatif

    Catégorie configurée de campagne ou paramètres autorisés selon la ressource.

    string|nullValidation : <=120.
    locationFacultatif

    Lieu public ou filtre de lieu ; distinct du pays de vente financier.

    string|nullValidation : <=255.
    event_dateFacultatif

    Date et heure de l’événement, distinctes de la période de vente.

    string|nullValidation : Date et heure au format ISO.
    verification_requiredFacultatif

    Définit la vérification prise en charge sans contourner les contrôles serveur.

    booleanValidation : Valeur par défaut : true.
    metadataFacultatif

    Métadonnées JSON supplémentaires acceptées ; elles ne remplacent jamais autorisation, prix ou propriété.

    objectValidation : Objet JSON.

    Requête

    Les exemples décrivent le contrat et ne sont pas exécutés. Utilisez des données de test autorisées ; ne saisissez jamais de secret réel ici.

    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"
    }

    Réponse

    Réponse de succès · HTTP 201
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "draft"
      },
      "requestId": "wlapi_example"
    }
    Réponse d’erreur · HTTP 400
    json
    {
      "success": false,
      "error": "<ERROR_MESSAGE>",
      "requestId": "wlapi_example"
    }

    Validation, permissions, données indisponibles et pannes utilisent le statut HTTP et l’erreur du gestionnaire.

    Limites et tentatives

    Limiteur Organisation : 120 requêtes par clé et 300 par IP par fenêtre ; respectez Retry-After et X-RateLimit.

    Compatibilité du code

    Les opérations autorisées nécessitent des tests propres au compte.

    • 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