API de transactions
L'API Transactions couvre l'ensemble du cycle de vie des paiements : création de sessions de paiement, interrogation de l'état des transactions et vérification des confirmations de la blockchain.
L'API Transactions couvre l'ensemble du cycle de vie des paiements : création de sessions de paiement, interrogation de l'état des transactions et vérification des confirmations de la blockchain.
Aperçu du flux de paiement
┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐
│ Your Server │───>│ Create │───>│ Customer │───>│ Blockchain │
│ │ │ Checkout │ │ Pays on │ │ Confirms │
│ POST api.php│ │ Session │ │ Payment Page │ │ Transaction │
└─────────────┘ └──────────────┘ └──────────────┘ └───────────────┘
│ │
│ payment_url │
▼ ▼
┌──────────────┐ ┌───────────────┐
│ Redirect │ │ Webhook POST │
│ Customer │ │ to Your Server│
│ to pay.php │ │ │
└──────────────┘ └───────────────┘
- Votre serveurappelle
create-checkout-sessionavec le montant et la devise du paiement. - Vous recevez une
payment_urlet y redirigez le client. - Le client sélectionne une crypto-monnaie, scanne le code QR et envoie le paiement.
- QuantaPay surveille la blockchain et attend les confirmations.
- Une fois confirmé, QuantaPay envoie unwebhookà votre serveur et/ou redirige le client.
create-checkout-session
Créez une nouvelle session de paiement. Renvoie une URL de paiement vers laquelle rediriger votre client.
Requête
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=create-checkout-session" \
-d "api-key=YOUR_API_KEY" \
-d "price=49.99" \
-d "currency=USD"
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
price | number | Oui | Montant du paiement dans la devise spécifiée. |
currency | string | Oui | Code de devise ISO 4217 (par exemple,USD, EUR, GBP). |
order_id | string | Non | Votre ID de commande interne pour référence. |
redirect | string | Non | URL vers laquelle rediriger le client après un paiement réussi. |
cancel_url | string | Non | URL vers laquelle rediriger le client s'il annule. |
note | string | Non | Note interne associée à la transaction. |
items | Chaîne JSON | Non | Tableau des éléments de ligne (voir ci-dessous). |
customer | Chaîne JSON | Non | Objet contenant les informations du client. |
signature | string | Non | Signature HMAC-SHA256 pour la protection contre les falsifications. |
timestamp | integer | Non | Timestamp Unix (requis si la signature est fournie). |
external_reference | string | Non | Référence chiffrée du plugin WordPress. |
plugin | string | Non | Identifiant du plugin source (par exemple,woo, edd). |
Format des Items
[
{
"name": "Product Name",
"qty": 2,
"price": 24.99,
"image": "https://example.com/product.jpg"
}
]
- Maximum 50 items par session.
name: 200 caractères maximum.image: Doit être une URL HTTP ou HTTPS, 500 caractères maximum.
Réponse
{
"success": true,
"response": {
"session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
"payment_url": "https://cloud.quantapay.app/pay.php?session=cs_a1b2c3d4e5f6a1b2c3d4",
"expires_at": "2026-03-08T11:00:00+00:00"
}
}
session_id: Identifiant de session unique (format :cs_+ 24 caractères hexadécimaux).payment_url: URL vers laquelle rediriger le client pour effectuer le paiement.expires_at: Timestamp ISO 8601. Les sessions expirent après60 minutes.
Réponses d'erreur
| Message | Cause |
|---|---|
Champs obligatoires manquants : price, currency | priceest 0/manquant oucurrencyest vide. |
Signature invalide | La vérification de la signature HMAC a échoué. |
Requête expirée | L'horodatage est supérieur à 5 minutes par rapport à l'heure du serveur. |
Échec de la création de la session de paiement | Erreur de base de données. |
get-checkout-session
Interrogez l'état actuel d'une session de paiement.
Requête
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-checkout-session" \
-d "api-key=YOUR_API_KEY" \
-d "session_id=cs_a1b2c3d4e5f6a1b2c3d4"
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
session_id | string | Oui | L'ID de session de paiement (commence parcs_). |
Réponse
{
"success": true,
"response": {
"session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
"status": "paid",
"price": 49.99,
"currency": "usd",
"order_id": "ORD-12345",
"created_at": "2026-03-08T10:00:00+00:00",
"expires_at": "2026-03-08T11:00:00+00:00",
"paid_at": "2026-03-08T10:15:23+00:00"
}
}
États de la session
| État | Description |
|---|---|
active | La session est ouverte et en attente de paiement. |
paid | Le paiement a été reçu et confirmé sur la blockchain. |
expired | La session a expiré sans recevoir de paiement (après 60 minutes). |
cancelled | La session a été annulée avant la réception du paiement. |
get-transactions
Interrogez une liste paginée de transactions. Utile pour le rapprochement et le reporting.
Requête
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-transactions" \
-d "api-key=YOUR_API_KEY" \
-d "pagination=0"
Paramètres
Tous les paramètres sont facultatifs :
| Paramètre | Type | Description |
|---|---|---|
pagination | integer | Numéro de page (indexé à partir de 0). Chaque page renvoie jusqu'à 100 transactions. |
search | string | Recherche par ID de transaction, hash, montant ou description. |
status | string | Filtrer par statut :C(terminé),P(en attente),X(paiement insuffisant),E(expiré). |
cryptocurrency | string | Filtrer par code de cryptomonnaie (par exemple,btc, eth). |
date_range | array | Filtre de plage de dates sous forme de tableau à deux éléments :date_range[0]=2026-01-01&date_range[1]=2026-03-01. |
checkout_id | string | Filtrer par ID de bouton de paiement/passage en caisse. |
Réponse
Renvoie un tableau d’objets de transaction :
{
"success": true,
"response": [
{
"id": "123",
"title": "Payment #ORD-12345",
"description": "",
"from": "0xCustomerAddress...",
"to": "0xYourAddress...",
"hash": "0xTransactionHash...",
"amount": "0.025",
"amount_fiat": "49.99",
"cryptocurrency": "eth",
"currency": "usd",
"external_reference": "",
"creation_time": "2026-03-08 10:00:00",
"status": "C",
"webhook": "1",
"vat": ""
}
]
}
Statuts de transaction
| Code | État | Description |
|---|---|---|
C | Terminé | Paiement confirmé sur la blockchain. |
P | En attente | En attente de paiement ou de confirmation de la blockchain. |
X | Paiement insuffisant | Paiement reçu, mais le montant était inférieur au montant requis. |
E | Expiré | La fenêtre de paiement a expiré sans paiement suffisant. |
R | Remboursé | Le paiement a été remboursé. |
get-transaction
Obtenir les détails d’une seule transaction par ID.
Requête
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-transaction" \
-d "api-key=YOUR_API_KEY" \
-d "transaction_id=123"
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
transaction_id | integer | Oui | L’ID de transaction. |
Réponse
Renvoie un seul objet de transaction (même format queget-transactions).
check-transaction
Déclencher manuellement une vérification de confirmation de la blockchain pour une transaction spécifique.
Requête
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=check-transaction" \
-d "api-key=YOUR_API_KEY" \
-d "transaction=TRANSACTION_JSON"
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
transaction | Chaîne JSON | Oui | L’objet de transaction à vérifier (tel que renvoyé parget-transaction). |
Réponse
Renvoie l’objet de transaction mis à jour avec l’état de confirmation actuel. Si le nombre requis de confirmations est atteint, l’état de la transaction passe àC(terminé).
Remarque: Cette fonction n’est généralement pas nécessaire en fonctionnement normal. QuantaPay vérifie automatiquement les confirmations via son système cron. Utilisez-la uniquement si vous devez forcer une vérification immédiate.