🔗 Intégration API
API Obtenir les détails du paiement
Cet endpoint récupère des informations détaillées sur un paiement spécifique, y compris son statut, ses transactions et les informations associées au portefeuille.
Endpoint
GET /payments/:paymentIdParamètres d'URL
| Paramètre | Requis | Type | Description | Exemple |
|---|---|---|---|---|
| paymentId | Oui | string | Identifiant unique du paiement | 5e68ed190a43a43998c6eeba |
Réponse
Exemple
{
"payment": {
"id": "87a4c597cb3c15311bdbd547",
"status": "pending",
"amountDue": 2000,
"reachedAmount": 1000,
"amount": 1000,
"token": "TND",
"convertedAmount": 15000,
"exchangeRate": 1,
"expirationDate": "2020-10-15",
"shortId": "-PJfSz90m",
"link": "https://api.dev.konnect.network/WSlQUtBF8",
"webhook": "merchant.tech/api/notification_payment",
"successUrl": "https://dev.konnect.network/gateway/payment-success",
"failUrl": "https://dev.konnect.network/gateway/payment-failure",
"orderId": "123456",
"type": "immediate",
"details": "paiement de t-shirts",
"acceptedPaymentMethods": ["wallet", "bank_card", "e-DINAR"],
"receiverWallet": {
// Détails du portefeuille ici (troncation pour concision)
},
"transactions": [
// Détails des transactions ici (troncation pour concision)
]
}
}Erreurs courantes
-
Paiement introuvable
- Code de statut : 404
- Cause :
paymentIdinvalide ou inexistant - Solution : Vérifiez que l'ID du paiement est correct
-
Authentification invalide
- Code de statut : 401
- Cause : Clé API manquante ou invalide
- Solution : Assurez-vous que la clé API valide est incluse dans les en-têtes
-
Paiement expiré
- Statut : Le paiement existe mais a expiré
- Solution : Vérifiez le champ
expirationDateet initiez un nouveau paiement si nécessaire
Statut du paiement
Vous devez vous fier au statut du paiement, et non au statut de la transaction.
Le statut du paiement peut être déterminé en vérifiant deux champs :
-
Statut du paiement (
payment.status) :completed: Le paiement a été effectué avec succèspending: Le paiement a échoué ou n'a pas encore été tenté
-
Statut de la transaction (
payment.transactions[].status) :success: La transaction a réussi- D'autres statuts indiquent divers échecs ou états en attente
Test
Bonnes pratiques
-
Vérification régulière du statut
- Implémentez un polling avec des intervalles appropriés
- Respectez les limites de taux
- Utilisez des webhooks pour des mises à jour en temps réel
-
Vérification des transactions
- Vérifiez toujours
payment.statusettransaction status - Comparez
reachedAmountavec le montant attendu pour les paiements partiels - Validez la devise et le montant de la transaction
- Vérifiez toujours
-
Gestion des erreurs
- Implémentez une gestion appropriée des erreurs pour toutes les réponses API
- Enregistrez les identifiants de paiement et de transaction pour le dépannage
- Surveillez les échecs de transaction pour détecter des tendances
Limites de taux
- Limite standard : 100 requêtes par minute
- Implémentez un backoff exponentiel pour le polling
- Privilégiez les webhooks pour des mises à jour en temps réel plutôt que du polling continu