API keys shown once
sms_test_ and sms_live_ keys are displayed at creation only. Store them in your secret manager — we cannot show them again. Rotate compromised keys from the dashboard.

Security
SMS infrastructure handles money and identity. Taysend applies practical controls — hashed OTP codes, one-time API key display, httpOnly sessions, and a prepaid ledger you can reconcile — without claiming certifications we do not hold.
Product
sms_test_ and sms_live_ keys are displayed at creation only. Store them in your secret manager — we cannot show them again. Rotate compromised keys from the dashboard.
Plaintext verification codes are never persisted. POST /v1/verify/check compares against a hash. Never log codes in your application logs.
Dashboard sessions use httpOnly cookies — not localStorage tokens that XSS can read. Sign out clears the server-side session.
Every send reserves wallet funds before dispatch. Manual credits require amount, reason, and confirmation — not a silent balance edit.
Webhook payloads include t= (timestamp) and v1= (HMAC signature). Verify before acting on delivery or wallet events.
sms_test_ keys cannot send LIVE traffic. Simulated numbers have known outcomes so you can test without touching real handsets.
Idempotency-Key prevents duplicate charges from network retries. Same key and body returns the original response.
Org RBAC, impersonation banners, and audit exports for teams that need operational accountability — see /enterprise.
Your side
Explore
Each page answers a different question. They are not copies of this one.
FAQ
If something here is product behaviour, it matches the dashboard and the API.
We do not claim certifications we have not earned. This page describes concrete product behaviour — key handling, OTP hashing, sessions, and ledger rules.
Environment variables or a secret manager on your server. Never embed sms_live_ keys in client-side JavaScript or mobile app binaries.
Revoke the key in the dashboard and create a new one. Monitor wallet activity and webhook events for unexpected sends.
Server-side cooldown, max verification attempts, and per-phone send limits. POST /v1/verify/check returns explicit outcomes including max attempts.
Questions