Aller au contenu principal

Authentification

L'API utilise un jeton Bearer (JWT). Vous l'obtenez avec votre email et votre mot de passe API, puis vous l'envoyez dans l'en-tête Authorization de chaque requête.

Obtenir un jeton​

POST /login

Ce point d'accès ne demande pas de jeton.

ChampTypeObligatoireRègles
emailstringouiContient un @, entre 5 et 255 caractères
passwordstringouiEntre 6 et 255 caractères
curl -X POST https://services.moya-pay.com/service/api/v1/login \
-H "Content-Type: application/json" \
-d '{"email": "api@votre-societe.com", "password": "votre-mot-de-passe"}'

Réponse (200)

{
"status": "Success",
"success": true,
"code": 200,
"message": "Login success",
"user": { "email": "api@votre-societe.com", "phone": "0505000000" },
"marchand": { "referencl": "CL-123456", "statut": 1 },
"authorisation": { "token": "eyJhbGciOiJIUzI1NiIs...", "type": "bearer" }
}
ChampDescription
authorisation.tokenLe jeton à utiliser
authorisation.typeToujours bearer
marchand.referenclVotre référence marchand (valeur à envoyer dans refercence_cl)

Utiliser le jeton​

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
  • Le jeton est valable 5 heures (18 000 secondes). Il n'existe pas de jeton de rafraîchissement : reconnectez-vous quand il expire.
  • Le jeton est lié à votre compte. Vous ne pouvez initier des transactions que pour votre refercence_cl.
astuce

Mettez le jeton en cache côté serveur et renouvelez-le à la première réponse 401, plutôt que d'appeler /login avant chaque transaction.

Erreurs d'authentification​

HTTPCas
400Corps invalide (champ manquant, email mal formé, mot de passe trop court)
401Identifiants incorrects, ou compte marchand désactivé (détail dans description)
401Sur les autres routes : jeton absent, expiré ou invalide

Le détail des formats de réponse est décrit dans Erreurs.