Vérifier un OTP

Vérifie le code saisi par l'utilisateur.

POST/v1/otp/verify

Body

{
  "phone": "+22375673336",
  "code": "1234"
}

Exemples

TS=$(date +%s)
BODY='{"phone":"+22375673336","code":"1234"}'
SIG=$(node -e "const c=require('crypto');const s=c.createHmac('sha256','$APP_SECRET').update('POST/v1/otp/verify'+'$TS'+'$BODY').digest('hex');console.log(s)")

curl -X POST https://api.otp.julakai.com/v1/otp/verify \
  -H "Content-Type: application/json" \
  -H "X-Julak-Key: $APP_KEY" \
  -H "X-Julak-Timestamp: $TS" \
  -H "X-Julak-Signature: $SIG" \
  -d "$BODY"

Succès (200)

{
  "verified": true,
  "verificationToken": "eyJhbG..."
}

Le verificationToken est un JWT (60s). Payload : { appId, phone, verifiedAt }. Ton app l'utilise pour créer sa session — julakAI ne gère aucun utilisateur.

Erreurs

401expired_or_not_found
Aucun OTP en attente ou expiré
401invalid_code
Code incorrect, tentatives restantes
403locked
Verrouillé 30 min après 3 échecs