OTP

send + check
# Send
curl -X POST "$API_URL/v1/verify/send" \
  -H "Authorization: Bearer sms_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "to": "+233200000001" }'

# Check — code is never stored in plaintext
curl -X POST "$API_URL/v1/verify/check" \
  -H "Authorization: Bearer sms_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "to": "+233200000001", "code": "123456" }'

Error codes include OTP_EXPIRED, OTP_INVALID, OTP_MAX_ATTEMPTS, OTP_COOLDOWN.