Envoyer un OTP

Envoie un code par SMS à un numéro malien.

POST/v1/otp/send

Headers requis

HeaderValeur
X-Julak-KeyTa clé publique jak_live_...
X-Julak-TimestampTimestamp Unix (±300s)
X-Julak-SignatureHMAC-SHA256 hex de method + url + timestamp + body

Body

{ "phone": "+22375673336" }

Format E.164 : +223 suivi de 8 chiffres.

Exemples

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

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

Réponse (200)

{
  "requestId": "otp_...",
  "expiresInSeconds": 300
}

En mode dev (devMode = true), la réponse inclut aussi "code": "1234". Jamais en production.

Erreurs

400Format de téléphone invalide
402Quota gratuit épuisé
429Cooldown (60s) ou quota quotidien atteint
503Envoi SMS échoué — réessaie immédiatement