The Tanvik API uses conventional HTTP status codes and a consistent JSON error body so failures are easy to handle programmatically.
Error response shape
HTTP status codes
Error codes
Handling 429s
Rate-limited responses include a Retry-After header (seconds). Back off and retry rather than looping immediately.
otp_send_failed, template_create_failed, and send_failed wrap the real downstream error text in message — read it, since the specific reason (e.g. “Session window closed. Use a template.”) is usually more actionable than the generic code.