Aperçu de l'API et authentification
QuantaPay met à votre disposition une API de type REST simple d'utilisation pour créer des paiements, interroger des transactions et gérer votre compte de manière programmatique.
QuantaPay fournit une API simple de type REST pour créer des paiements, interroger des transactions et gérer votre compte par programmation.
Point de terminaison
Toutes les requêtes API sont envoyées à un seul point de terminaison :
POST https://cloud.quantapay.app/api.php
Type de contenu
Les requêtes utilisentapplication/x-www-form-urlencoded(encodage de formulaire HTML standard).
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-balances" \
-d "api-key=YOUR_API_KEY"
Authentification
Chaque requête API doit inclure votreClé APIen tant que paramètre POST.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
api-key | string | Oui | Votre clé API. Se trouve dans Paramètres → Compte. |
function | string | Oui | Le nom de la fonction API à appeler. |
Obtenir votre clé API
- Connectez-vous àcloud.quantapay.app
- Allez dansParamètres → Compte
- Copiez votre clé API
Sécurité: Gardez votre clé API secrète. Ne l’exposez pas dans le code côté client ou dans les référentiels publics.
Signature HMAC (facultatif)
Pourcreate-checkout-session, vous pouvez ajouter une vérification de signature HMAC-SHA256 pour empêcher la falsification des requêtes.
Comment ça marche
- Construisez la chaîne de données de signature :
{price}|{currency}|{order_id}|{timestamp} - Générez HMAC-SHA256 en utilisant votreClé secrète de webhookcomme secret
- Incluez
signatureettimestampdans votre requête
Exemple (PHP)
$webhook_secret = 'your-webhook-secret-key';
$price = '49.99';
$currency = 'usd';
$order_id = 'ORD-12345';
$timestamp = time();
$sign_data = $price . '|' . $currency . '|' . $order_id . '|' . $timestamp;
$signature = hash_hmac('sha256', $sign_data, $webhook_secret);
// Include in your API request:
// signature={$signature}×tamp={$timestamp}
Exemple (Node.js)
const crypto = require('crypto');
const webhookSecret = 'your-webhook-secret-key';
const price = '49.99';
const currency = 'usd';
const orderId = 'ORD-12345';
const timestamp = Math.floor(Date.now() / 1000);
const signData = `${price}|${currency}|${orderId}|${timestamp}`;
const signature = crypto.createHmac('sha256', webhookSecret).update(signData).digest('hex');
Remarque: Le timestamp doit être à moins de 5 minutes de l'heure du serveur, sinon la requête sera rejetée avec le message "Request expired".
Format de réponse
Succès
{
"success": true,
"response": { ... }
}
Erreur
{
"success": false,
"error_code": "error-code-slug",
"message": "Human-readable error description"
}
Codes d'erreur
| Code d'erreur | Description |
|---|---|
missing-function-name | Le paramètrefunctionn'a pas été inclus dans la requête. |
function-not-found | Le nom de la fonction spécifiée n'existe pas. |
api-key-not-found | Le paramètreapi-keyLe paramètre n'a pas été inclus. |
invalid-api-key | La clé API fournie est incorrecte. |
missing-argument | Un paramètre requis est manquant pour la fonction spécifiée. |
Limites de débit
Il n'y a pas de limites de débit strictes, mais les requêtes excessives peuvent être limitées. Pour une utilisation typique (moins de 100 requêtes/minute), aucune limitation ne se produira.