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

    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.

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

    Modè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

    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.
    X-Idempotency-KeyObligatoire

    Identité stable d’opération réutilisée avec les mêmes détails ; changer les détails avec la même clé est refusé.

    stringValidation : 16–128 [A-Za-z0-9_-].

    Requête

    NomTypeValidation
    campaign_idObligatoire

    Campagne existante dans le compte et dans tout périmètre de clé de campagne plus limité.

    stringValidation : UUID.
    ticket_idObligatoire

    Type de billet choisi de la campagne indiquée ; le serveur vérifie statut, capacité et prix.

    stringValidation : UUID.
    quantityObligatoire

    Nombre de billets demandés ; stock et limites par personne restent imposés par le serveur.

    integerValidation : 1–100.
    phone_numberObligatoire

    Téléphone du participant ; les moyens de paiement et règles peuvent exiger un numéro international valide.

    stringValidation : Numéro de téléphone valide et non vide.
    emailFacultatif

    Email de contact utilisé par le parcours configuré ; il ne donne jamais accès à lui seul.

    stringValidation : Adresse e-mail.
    discount_codeFacultatif

    Code de réduction ou invitation de campagne, revérifié par le serveur avant achat.

    stringValidation : Valeur sans espaces périphériques et non vide.
    invite_codeFacultatif

    Code de réduction ou invitation de campagne, revérifié par le serveur avant achat.

    stringValidation : Valeur sans espaces périphériques et non vide.
    luggage_quantityFacultatif

    Quantité de bagages pour un événement proposant réellement cette option configurée.

    integerValidation : >=0.
    attendee_informationFacultatif

    Réponses aux champs réels de campagne, valeurs requises et options prises en charge.

    objectValidation : Valeurs textuelles correspondant aux champs configurés.
    payment_channelFacultatif

    Préférence facultative ; seuls les moyens activés pour le pays vendeur, la devise et le marchand sont utilisables.

    enumValidation : card | mobile_money | apple_pay | bank_transfer | crypto ; disponibilité contrôlée par le serveur.
    network_codeFacultatif

    Réseau mobile configuré lorsque le moyen de paiement choisi l’exige.

    stringValidation : Réseau configuré.
    is_appFacultatif

    Contexte existant pour choisir configuration Web ou App ; aucune permission supplémentaire.

    booleanValidation : Contexte du client.
    return_pathFacultatif

    Destination relative de retour sur le site actuel vérifié après paiement centralisé.

    stringValidation : Chemin relatif sur le même domaine vérifié.
    clientIpFacultatif

    IP d’origine fournie par un backend autorisé pour les contrôles existants.

    stringValidation : 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
    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

    Réponse de succès · HTTP 200
    json
    {
      "success": true,
      "data": {
        "authorization_url": "https://checkout.sparkglim.net/gh/<SERVER_REFERENCE>",
        "reference": "<SERVER_REFERENCE>"
      },
      "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