Statut d'une transaction
GET /check-status/{merchant_transaction_id}
Requiert un jeton Bearer. Remplacez {merchant_transaction_id} par l'identifiant que vous avez fourni lors de l'initiation. Fonctionne pour les payins comme pour les payouts.
- cURL
- Node.js
- PHP
- Python
curl https://services.moya-pay.com/service/api/v1/check-status/COMMANDE-2026-000123 \
-H "Authorization: Bearer $TOKEN"
const res = await fetch(
'https://services.moya-pay.com/service/api/v1/check-status/COMMANDE-2026-000123',
{ headers: { Authorization: `Bearer ${token}` } },
);
const body = await res.json();
console.log(body.status);
<?php
$ch = curl_init('https://services.moya-pay.com/service/api/v1/check-status/COMMANDE-2026-000123');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $body['status'];
import requests
resp = requests.get(
"https://services.moya-pay.com/service/api/v1/check-status/COMMANDE-2026-000123",
headers={"Authorization": f"Bearer {token}"},
timeout=30,
)
print(resp.json()["status"])
Réponse
{
"status": "SUCCESS",
"success": true,
"code": 200,
"message": "your transaction is SUCCESS"
}
Le statut de la transaction est dans le champ status.
Tant que la transaction est en attente, l'API interroge l'opérateur en direct pour vous donner l'état le plus récent. Un statut PENDING côté opérateur est présenté comme INITIATED.
Transaction introuvable
Si l'identifiant n'existe pas, la réponse a le statut HTTP 500 :
{
"status": "error",
"description": "Impossible to get transaction",
"success": false,
"code": 500,
"message": "Internal server error occurred"
}
Dans ce cas précis, description indique que la transaction n'existe pas.
Les statuts
| Statut | Signification | Final ? |
|---|---|---|
INITIATED | La transaction est créée chez l'opérateur, en attente d'une action du client | Non |
PENDING | En attente de confirmation | Non |
PROCESSING | Traitement interne en cours | Non |
PENDING1 | Attente interne : la vérification automatique n'a pas pu aboutir. À traiter comme « en attente » | Non |
SUCCESS | L'argent a circulé | Oui |
FAILED | Échec, refus, annulation ou expiration | Oui, voir ci-dessous |
FAILED n'est pas toujours définitifDans de rares cas, un opérateur confirme tardivement une transaction déjà passée en FAILED (par exemple après un délai dépassé). Elle peut alors passer en SUCCESS, et vous recevez un nouveau callback. Rapprochez toujours vos commandes avec le dernier statut connu.
Bonnes pratiques
- Appuyez-vous d'abord sur les callbacks, et utilisez ce point d'accès pour rattraper une notification manquante.
- Interrogez à intervalle raisonnable (quelques secondes entre deux appels), pas en boucle serrée.
- Si une transaction reste en attente bien au-delà de la durée habituelle de l'opérateur, ne la considérez pas comme échouée : continuez à l'interroger.