Référence API
API v2 (compatibilité)
Les routes v2 utilisées par les plugins WooCommerce et PrestaShop et par les intégrations existantes. Elles continuent de fonctionner sans changement : la nouvelle plateforme les sert pour les organisations migrées et les relaie vers la plateforme actuelle pour les autres (spec 0.5). Les nouvelles intégrations passeront à la v3 dès que les paiements y seront disponibles.
Version 2.0.02 opérationsGénéré depuis apps/docs/content/openapi/compat-v2.json (sha256 2525ddbe92ec)
URL de base
https://api.preprod.konnect.networkSandbox : paiements fictifs, cartes de test.https://api.konnect.networkProduction : paiements réels. À utiliser seulement après la checklist de mise en production.
Authentification
x-api-key(header)Votre clé API,
<organisationId>:<secret>, depuis le tableau de bord. Gardez-la sur votre serveur : jamais dans un navigateur, une application mobile ou une URL.
payments
Créer un paiement, rediriger l'acheteur vers la page de paiement, puis lire le paiement pour connaître son statut.
Créer un paiement et obtenir l'URL de la page de paiement
POST/api/v2/payments/init-paymentClé API
Crée un paiement pour le wallet (compte d'encaissement) receiverWalletId. Redirigez l'acheteur vers payUrl. À la fin du paiement, Konnect appelle webhook avec ?payment_ref=<paymentRef> : cet appel n'est pas signé, confirmez donc toujours le statut avec GET /api/v2/payments/{paymentId} avant de livrer la commande.
Paramètres
Aucun paramètre.
Corps de la requête application/json
receiverWalletIdstringobligatoireWallet (compte d'encaissement) qui reçoit le paiement.
receiverWalletest accepté comme alias.amountintegerobligatoireMontant en unités mineures : millimes pour le TND (
120000vaut 120,000 TND).- min: 100
- max: 30000000
tokenstringDevise. Seul le TND est servi par la nouvelle plateforme.
- enum: "TND"
descriptionstringAffichée à l'acheteur sur la page de paiement.
- minLength: 3
- maxLength: 280
lifespanintegerMinutes avant l'expiration du paiement.
- min: 1
- max: 60
acceptedPaymentMethodsstring[]bank_cardete-DINARdésignent les prestataires de carte actifs sur votre compte,floucidésigne Flouci. Les anciennes valeurs (wallet,konnect,MCOIN,wire_transfer,Paypal) sont ignorées.webhookstring (uri)Appelée avec
?payment_ref=<paymentRef>à la fin du paiement. Non signée : confirmez avecGET /api/v2/payments/{paymentId}.silentWebhookbooleanSi vrai, Konnect appelle le webhook de serveur à serveur et envoie l'acheteur vers
successUrloufailUrl.successUrlstring (uri)Page de retour de l'acheteur après un paiement réussi (
payment_refest ajouté).failUrlstring (uri)Page de retour de l'acheteur après un échec ou une annulation (
payment_refest ajouté).themestringThème de la page de paiement.
- enum: "light", "dark"
checkoutFormbooleanDemander nom, e-mail et téléphone à l'acheteur sur la page de paiement.
addPaymentFeesToAmountbooleanObsolète : accepté et ignoré (aucun frais Konnect sur le flux).
orderIdstringVotre référence de commande, renvoyée sur le paiement.
typestringpartialpermet de payer en plusieurs fois.- enum: "immediate", "partial"
receiverPhoneNumberstringfirstNamestringlastNamestringemailstring (email)phoneNumberstring
Réponses
200Paiement créé.
payUrlstring (uri)obligatoirePage de paiement hébergée : redirigez l'acheteur ici.
paymentRefstringobligatoire24 caractères hexadécimaux ; conservez-le avec votre commande.
400Erreur de validation : une entrée par champ invalide.
errorsobject[]msgstringparamstring
401
x-api-keyabsent ou invalide.messagestring
422Une règle métier refuse le paiement (par exemple une devise non servie par la plateforme).
messagestring
Exemples de code
curl -X POST "$KONNECT_V2_URL/api/v2/payments/init-payment" \
-H "x-api-key: $KONNECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"receiverWalletId": "5f7a209aeb3f76490ac4a3d1",
"token": "TND",
"amount": 120000,
"description": "Order 1001",
"acceptedPaymentMethods": [
"bank_card",
"e-DINAR",
"flouci"
],
"lifespan": 20,
"checkoutForm": false,
"webhook": "https://shop.example.com/konnect/webhook",
"successUrl": "https://shop.example.com/checkout/success",
"failUrl": "https://shop.example.com/checkout/failure",
"theme": "light",
"orderId": "order-1001",
"firstName": "Salma",
"lastName": "Example",
"email": "buyer@example.com",
"phoneNumber": "22000000"
}'Exemple : corps de la requête
{
"receiverWalletId": "5f7a209aeb3f76490ac4a3d1",
"token": "TND",
"amount": 120000,
"description": "Order 1001",
"acceptedPaymentMethods": [
"bank_card",
"e-DINAR",
"flouci"
],
"lifespan": 20,
"checkoutForm": false,
"webhook": "https://shop.example.com/konnect/webhook",
"successUrl": "https://shop.example.com/checkout/success",
"failUrl": "https://shop.example.com/checkout/failure",
"theme": "light",
"orderId": "order-1001",
"firstName": "Salma",
"lastName": "Example",
"email": "buyer@example.com",
"phoneNumber": "22000000"
}Exemple : 200
{
"payUrl": "https://checkout.konnect.example/pay?payment_ref=665f1c2e8b3a4d0012ab34cd",
"paymentRef": "665f1c2e8b3a4d0012ab34cd"
}Exemple : 400
{
"errors": [
{
"msg": "amount must be between 100 and 30000000",
"param": "amount"
}
]
}Lire un paiement et ses transactions
GET/api/v2/payments/{paymentId}Clé API
Renvoie le paiement créé par init-payment. Livrez la commande seulement quand status vaut completed et que le montant correspond à votre commande. transactions liste chaque tentative auprès d'un prestataire.
Paramètres
paymentIdstringpathobligatoireLe
paymentRefrenvoyé parinit-payment(24 caractères hexadécimaux).- pattern: ^[a-f0-9]{24}$
Réponses
200Le paiement.
paymentPaymentidstringstatusstringcompletedquand le montant est entièrement payé ; seul ce statut signifie payé.- enum: "pending", "completed", "failed", "canceled", "expired", "refunded", "partial"
amountintegertokenstringdescriptionstringacceptedPaymentMethodsstring[]linkstring (uri)expirationDatestring (date-time)orderIdstringtransactionsTransaction[]idstringamountintegermethodstringstatusstring- enum: "pending_payment", "success", "failed_payment", "expired", "canceled", "refunded"
typestringtokenstringext_payment_refstringRéférence chez le prestataire.
fromstringCode du prestataire.
401
x-api-keyabsent ou invalide.messagestring
404Aucun paiement avec cette référence.
messagestring
Exemples de code
curl -X GET "$KONNECT_V2_URL/api/v2/payments/665f1c2e8b3a4d0012ab34cd" \
-H "x-api-key: $KONNECT_API_KEY"Exemple : 200
{
"payment": {
"id": "665f1c2e8b3a4d0012ab34cd",
"status": "completed",
"amount": 120000,
"token": "TND",
"description": "Order 1001",
"acceptedPaymentMethods": [
"bank_card",
"e-DINAR",
"flouci"
],
"link": "https://checkout.konnect.example/pay?payment_ref=665f1c2e8b3a4d0012ab34cd",
"expirationDate": "2026-10-01T09:50:00.000Z",
"orderId": "order-1001",
"transactions": [
{
"id": "665f1c4a8b3a4d0012ab34ce",
"amount": 120000,
"method": "bank_card",
"status": "success",
"type": "payment",
"token": "TND",
"ext_payment_ref": "TEST-000001",
"from": "clictopay"
}
]
}
}Exemple : 401
{
"message": "Unauthorized"
}