Cascade предоставляет REST API. Ниже — практический минимум на Rust с клиентом reqwest.
Полезные ссылки: API, send, verify, examples, FAQ, pricing, documentation.
Установка
[dependencies]
reqwest = { version = "0.12", features = ["json"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }
Официального crate Cascade может не быть.
Пример
let client = reqwest::Client::new();
let token = std::env::var("OTP_API_TOKEN")?;
let send: serde_json::Value = client
.post("https://otp.kztusdt.kz/api/otp/send")
.bearer_auth(&token)
.json(&serde_json::json!({"phone":"77001234567","purpose":"verification"}))
.send().await?.json().await?;
assert_eq!(send["success"], true);
Аналогично /otp/verify. Обрабатывайте ошибки сети и success=false. См. errors, FAQ, sdk.