api

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.

Mis à jour: 09/03/2026

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   │                         │               │
                   └──────────────┘                         └───────────────┘
  1. Votre serveurappellecreate-checkout-sessionavec le montant et la devise du paiement.
  2. Vous recevez unepayment_urlet y redirigez le client.
  3. Le client sélectionne une crypto-monnaie, scanne le code QR et envoie le paiement.
  4. QuantaPay surveille la blockchain et attend les confirmations.
  5. 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ètreTypeObligatoireDescription
pricenumberOuiMontant du paiement dans la devise spécifiée.
currencystringOuiCode de devise ISO 4217 (par exemple,USD, EUR, GBP).
order_idstringNonVotre ID de commande interne pour référence.
redirectstringNonURL vers laquelle rediriger le client après un paiement réussi.
cancel_urlstringNonURL vers laquelle rediriger le client s'il annule.
notestringNonNote interne associée à la transaction.
itemsChaîne JSONNonTableau des éléments de ligne (voir ci-dessous).
customerChaîne JSONNonObjet contenant les informations du client.
signaturestringNonSignature HMAC-SHA256 pour la protection contre les falsifications.
timestampintegerNonTimestamp Unix (requis si la signature est fournie).
external_referencestringNonRéférence chiffrée du plugin WordPress.
pluginstringNonIdentifiant 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

MessageCause
Champs obligatoires manquants : price, currencypriceest 0/manquant oucurrencyest vide.
Signature invalideLa vérification de la signature HMAC a échoué.
Requête expiréeL'horodatage est supérieur à 5 minutes par rapport à l'heure du serveur.
Échec de la création de la session de paiementErreur 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ètreTypeObligatoireDescription
session_idstringOuiL'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

ÉtatDescription
activeLa session est ouverte et en attente de paiement.
paidLe paiement a été reçu et confirmé sur la blockchain.
expiredLa session a expiré sans recevoir de paiement (après 60 minutes).
cancelledLa 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ètreTypeDescription
paginationintegerNuméro de page (indexé à partir de 0). Chaque page renvoie jusqu'à 100 transactions.
searchstringRecherche par ID de transaction, hash, montant ou description.
statusstringFiltrer par statut :C(terminé),P(en attente),X(paiement insuffisant),E(expiré).
cryptocurrencystringFiltrer par code de cryptomonnaie (par exemple,btc, eth).
date_rangearrayFiltre de plage de dates sous forme de tableau à deux éléments :date_range[0]=2026-01-01&date_range[1]=2026-03-01.
checkout_idstringFiltrer 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ÉtatDescription
CTerminéPaiement confirmé sur la blockchain.
PEn attenteEn attente de paiement ou de confirmation de la blockchain.
XPaiement insuffisantPaiement reçu, mais le montant était inférieur au montant requis.
EExpiréLa fenêtre de paiement a expiré sans paiement suffisant.
RRemboursé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ètreTypeObligatoireDescription
transaction_idintegerOuiL’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ètreTypeObligatoireDescription
transactionChaîne JSONOuiL’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.