Référence API
Démarrer le paiement des billets
Valide accès billetterie, billet et acheteur, puis crée ou réutilise le paiement central avec reçu lié au domaine.
https://api.sparkglim.net/api/white-label/v1/payments/initializeModèle d’accès
- Modèle d’accès
- HMAC Organisation côté serveur
- Portée requise
payments: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. |
X-Idempotency-KeyObligatoireIdentité stable d’opération réutilisée avec les mêmes détails ; changer les détails avec la même clé est refusé. | string | Validation : 16–128 [A-Za-z0-9_-]. |
Requête
| Nom | Type | Validation |
|---|---|---|
campaign_idObligatoireCampagne existante dans le compte et dans tout périmètre de clé de campagne plus limité. | string | Validation : UUID. |
ticket_idObligatoireType de billet choisi de la campagne indiquée ; le serveur vérifie statut, capacité et prix. | string | Validation : UUID. |
quantityObligatoireNombre de billets demandés ; stock et limites par personne restent imposés par le serveur. | integer | Validation : 1–100. |
phone_numberObligatoireTéléphone du participant ; les moyens de paiement et règles peuvent exiger un numéro international valide. | string | Validation : Numéro de téléphone valide et non vide. |
emailFacultatifEmail de contact utilisé par le parcours configuré ; il ne donne jamais accès à lui seul. | string | Validation : Adresse e-mail. |
discount_codeFacultatifCode de réduction ou invitation de campagne, revérifié par le serveur avant achat. | string | Validation : Valeur sans espaces périphériques et non vide. |
invite_codeFacultatifCode de réduction ou invitation de campagne, revérifié par le serveur avant achat. | string | Validation : Valeur sans espaces périphériques et non vide. |
luggage_quantityFacultatifQuantité de bagages pour un événement proposant réellement cette option configurée. | integer | Validation : >=0. |
attendee_informationFacultatifRéponses aux champs réels de campagne, valeurs requises et options prises en charge. | object | Validation : Valeurs textuelles correspondant aux champs configurés. |
payment_channelFacultatifPréférence facultative ; seuls les moyens activés pour le pays vendeur, la devise et le marchand sont utilisables. | enum | Validation : card | mobile_money | apple_pay | bank_transfer | crypto ; disponibilité contrôlée par le serveur. |
network_codeFacultatifRéseau mobile configuré lorsque le moyen de paiement choisi l’exige. | string | Validation : Réseau configuré. |
is_appFacultatifContexte existant pour choisir configuration Web ou App ; aucune permission supplémentaire. | boolean | Validation : Contexte du client. |
return_pathFacultatifDestination relative de retour sur le site actuel vérifié après paiement centralisé. | string | Validation : Chemin relatif sur le même domaine vérifié. |
clientIpFacultatifIP d’origine fournie par un backend autorisé pour les contrôles existants. | string | Validation : Adresse IP valide. |
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/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"
}Réponse
{
"success": true,
"data": {
"authorization_url": "https://checkout.sparkglim.net/gh/<SERVER_REFERENCE>",
"reference": "<SERVER_REFERENCE>"
},
"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