Opérations de maintenance
La création d'une transaction initiale n'est que la première étape du cycle de vie d'une transaction. La gestion des transactions existantes (c'est-à-dire capturer une autorisation ou effectuer un remboursement) font également partie de vos activités quotidiennes.
Utilisez nos opérations dédiées ou le Merchant Portal pour effectuer des opérations de maintenance sur les transactions existantes pour tout scénario donné.
- En fonction du statut de la transaction, différentes opérations de maintenance sont possibles. Consultez les statuts de transaction possibles pour connaître les opérations disponibles.
- Les exemples ci-dessous présentent pour chaque opération les paramètres obligatoires ou fortement recommandés. Trouvez des informations détaillées sur ces objets et propriétés dans notre documentation API.
- Vous pouvez également effectuer toutes les opérations de maintenance décrites ci-dessous via le Merchant Portal et le mode d’intégration Batch. Consultez les chapitres dédiés dans les guides respectifs pour en savoir plus :
Capturer les paiements
Si vous avez initialement traité vos transactions en mode Authorisation (avec status.Output.statusCode=5), vous devez les capturer finalement pour recevoir les fonds. Pour ce faire, utilisez l'opération CapturePayment :
{
"amount": 1000,
"isFinal": false
}
| Propriété | Description |
|---|---|
| {merchantId} | Votre compte sur notre plateforme par lequel la transaction initiale a été traitée. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée CapturePayment. |
| {paymentId} | Le payment.Id de la transaction initiale que notre plateforme a renvoyé dans la requête CreatePayment/GetHostedCheckout. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée CapturePayment. |
| amount | Le montant brut que vous souhaitez capturer pour l'autorisation originale. Si laissé vide, notre plateforme capturera le montant total initial. |
| isFinal |
Définissez si vous souhaitez clôturer la transaction pour des captures ultérieures si vous capturez seulement partiellement le montant.
Si laissé vide, la valeur par défaut est "false". |
Annuler les paiements
Si vous avez initialement traité vos transactions en mode Authorisation (avec status.Output.statusCode=5), vous pouvez les annuler pour débloquer les fonds. Pour ce faire, utilisez l'opération CancelPayment :
{
"amountOfMoney": {
"amount": 1000,
"currencyCode": "EUR"
},
"isFinal": false
}
| Propriété | Description |
|---|---|
| {merchantId} | Votre compte sur notre plateforme par lequel la transaction initiale a été traitée. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée CancelPayment. |
| {paymentId} | Le payment.Id de la transaction initiale que notre plateforme a renvoyé dans la requête CreatePayment/GetHostedCheckout. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée CancelPayment. |
| order.amountOfMoney amount currencyCode |
amount : Le montant brut que vous souhaitez annuler pour l'autorisation originale. currencyCode : Le code de devise ISO 4217 pour ce montant. Si laissé vide, notre plateforme annulera le montant total initial. |
| isFinal |
Définissez si vous souhaitez clôturer la transaction pour des annulations ultérieures si vous annulez seulement partiellement le montant.
Si laissé vide, la valeur par défaut est "false". |
Rembourser les paiements
Vous pouvez rembourser les paiements traités avec succès (avec status.Output.statusCode=9). Pour ce faire, utilisez l'opération RefundPayment :
{
"amountOfMoney": {
"amount": 1000,
"currencyCode": "EUR"
}
}
| Propriété | Description |
|---|---|
| {merchantId} | Votre compte sur notre plateforme par lequel la transaction initiale a été traitée. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée RefundPayment. |
| {paymentId} | Le payment.Id de la transaction initiale que notre plateforme a renvoyé dans la demande CreatePayment/GetHostedCheckout. Ajoutez-le en tant que paramètre de chemin à l'URL du point d'entrée RefundPayment. |
| order.amountOfMoney amount currencyCode |
amount : Le montant brut que vous souhaitez rembourser pour l'autorisation originale. currencyCode : Le code de devise ISO 4217 pour ce montant. Si laissé vide, notre plateforme remboursera le montant total initial. |
Limites d'opération
Notre plateforme applique des limitations sur les opérations de maintenance que vous pouvez effectuer par transaction individuelle. Il s'agit d'une mesure de sécurité qui peut vous aider à identifier des problèmes dans votre architecture serveur, tels que des boucles infinies ou d'autres défauts dans votre logique d'intégration.
Nous distinguons deux types de limites :
-
Limite souple : vous pouvez toujours effectuer des opérations de maintenance, mais limitées à une toutes les 30 minutes. Si vous faites davantage de requêtes durant ces 30 minutes, notre plateforme les rejettera, ce qui entraînera une erreur errors.errorCode=50000429. Cette erreur indique un volume inhabituel d'opérations de maintenance pour des cas d'usage métier standards, possiblement dû à des boucles infinies involontaires, comme des tentatives de remboursement répétées.
-
Limite stricte : votre requête est rejetée car la transaction a atteint le nombre maximal d'opérations autorisées, ce qui entraîne une erreur errors.errorCode=50000430.
Pour éviter d'atteindre l'une ou l'autre de ces limites, nous vous recommandons de suivre les lignes directrices suivantes :
- Vérifiez votre intégration avec notre plateforme : Pour les erreurs errors.errorCode=50000429, revoyez votre mécanisme de demande d'opérations de maintenance. Vérifiez que les requêtes de retry ont des conditions d'arrêt appropriées et qu'il n'existe pas de boucles infinies.
- Surveillez le nombre d'opérations : Envoyez des requêtes GetPaymentDetails pour garder un œil sur le nombre d'opérations de maintenance effectuées par transaction. Un nombre inhabituellement élevé peut indiquer des workflows non intentionnels dans votre intégration.
- Signalez les cas métier exceptionnels : Contactez‑nous si vous devez dépasser la limite souple/stricte pour certains scénarios spécifiques.
Nous recommandons vivement de construire votre mécanisme de demande d’opérations de maintenance autour des codes erreur 50000429 / 50000430, et non autour du nombre d’opérations effectuées. En rendant paramétrable le nombre d’opérations de maintenance effectuées, vous vous assurez que votre système reçoit toujours une information correcte sur la raison du rejet.