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é.
https://api.sparkglim.net/api/white-label/v1/campaignsModè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
| Nom | Type | Validation |
|---|---|---|
x-white-label-domainObligatoireDomaine vérifié qui résout le compte Organisation approuvé et lie cette requête. | string | Validation : Nom d’hôte HTTPS vérifié. |
x-white-label-key-idObligatoireIdentifiant extrait de la clé privée unique ; n’envoyez jamais son secret dans cet en-tête. | string | Validation : Identifiant interne de la clé privée émise. |
x-white-label-signature-versionObligatoireSélectionne le format signé lié au domaine ; les routes API restent Version 1. | string | Validation : 2. |
x-white-label-timestampObligatoireHeure de signature en millisecondes comparée à l’horloge serveur pour rejeter les requêtes périmées. | string | Validation : Millisecondes sur 13 chiffres ; dans une fenêtre de cinq minutes. |
x-white-label-nonceObligatoireValeur aléatoire fraîche enregistrée par le serveur pour empêcher la répétition d’une requête signée. | string | Validation : Valeur nouvelle : 16–128 [A-Za-z0-9_-]. |
x-white-label-signatureObligatoireHMAC-SHA256 du domaine, clé d’idempotence, clé de campagne, horodatage, nonce, méthode, chemin, requête triée et empreinte exacte du corps. | string | Validation : HMAC-SHA256 hexadécimal en minuscules. |
x-white-label-campaign-keyFacultatifClé de campagne complète facultative qui limite la requête privée à la même campagne autorisée. | string | Validation : Valeur keyId:secret complète, facultative et limitée à son périmètre. |
Requête
| Nom | Type | Validation |
|---|---|---|
titleObligatoireTitre public de campagne fourni par l’organisateur autorisé. | string | Validation : 3–255. |
descriptionObligatoireDescription de l’organisateur expliquant la campagne ou le billet. | string | Validation : 10–5000. |
campaign_typeObligatoireSélectionne billetterie, vote ou don ; ne donne pas accès à un module non autorisé. | enum | Validation : ticketing | voting | donation. |
start_dateObligatoireHorodatage d’ouverture de campagne au format ISO. | string | Validation : Date et heure au format ISO. |
end_dateObligatoireHorodatage de fermeture de campagne au format ISO. | string | Validation : Date et heure au format ISO. |
country_codeFacultatifCode du pays de vente configuré ; le serveur vérifie compte et marché. | string | Validation : ISO2. |
currency_codeFacultatifDevise autorisée de campagne ; choisir un pays n’autorise pas une nouvelle devise. | string | Validation : ISO3. |
slugFacultatifIdentifiant d’URL pour la campagne ou l’article publié existant. | string | Validation : 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. | enum | Validation : draft | pending_approval | approved | rejected | archived. |
vote_priceFacultatifValeur configurée du produit, dans la devise ou unité de capacité de la campagne. | number | Validation : >=0. |
donation_goalFacultatifValeur configurée du produit, dans la devise ou unité de capacité de la campagne. | number | Validation : >=0. |
ticket_priceFacultatifValeur configurée du produit, dans la devise ou unité de capacité de la campagne. | number | Validation : >=0. |
ticket_capacityFacultatifValeur configurée du produit, dans la devise ou unité de capacité de la campagne. | integer | Validation : >0. |
image_urlFacultatifURL de l’image fournie ; utilisez un média public autorisé. | string|null | Validation : URL. |
banner_urlFacultatifURL de couverture fournie par l’organisateur. | string|null | Validation : URL. |
categoryFacultatifCatégorie configurée de campagne ou paramètres autorisés selon la ressource. | string|null | Validation : <=120. |
locationFacultatifLieu public ou filtre de lieu ; distinct du pays de vente financier. | string|null | Validation : <=255. |
event_dateFacultatifDate et heure de l’événement, distinctes de la période de vente. | string|null | Validation : Date et heure au format ISO. |
verification_requiredFacultatifDéfinit la vérification prise en charge sans contourner les contrôles serveur. | boolean | Validation : Valeur par défaut : true. |
metadataFacultatifMétadonnées JSON supplémentaires acceptées ; elles ne remplacent jamais autorisation, prix ou propriété. | object | Validation : 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/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
{
"success": true,
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "draft"
},
"requestId": "wlapi_example"
}{
"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.tsserver/src/api/routes/white-label.tsserver/src/white-label/auth.tsserver/src/white-label/schemas.tsserver/src/white-label/organization-service.tsserver/src/white-label/service.ts