Typed requests
Keep recipient, sender, content and message intent explicit in every API call.
One request, structured events, clear errors and the tooling to move from sandbox to production with confidence.
A developer surface that makes the state machine visible. Move from first request to production traffic with predictable APIs, useful errors and tools built for debugging.
Open a sandboxcurl https://api.jando.io/v1/messages -H "Authorization: Bearer ..." -d '{"to":"+14155550123","type":"otp"}'
Keep the request simple and make the response useful. Every field should help a developer decide what happens next.
Generate sandbox credentials, set a callback URL and define the team members who can inspect traffic.
Use a minimal request, receive a stable message ID and inspect validation before carrier delivery.
Verify signatures, persist event IDs and make your handler idempotent before enabling production traffic.
Register senders, set limits, compare traces and switch credentials without changing your product contract.
Your webhook consumer should be boring. The trace should carry the complexity.
Keep recipient, sender, content and message intent explicit in every API call.
Use idempotency keys and error categories to retry only what is recoverable.
Verify signatures, replay events and isolate failed consumers.
Use familiar REST and JSON conventions that fit existing service stacks.
Inspect every transition from request acceptance to carrier receipt.
Promote configuration with limits, approvals and a production checklist.
A basic sandbox send can be completed with one API request. Production readiness depends on sender registration, webhook handling and your internal approval process.
Yes. Events have stable IDs and can be replayed so consumers can recover without requesting a new message.
The response identifies whether the issue is validation, authorization, policy, provider or a temporary upstream condition.
Yes, with role-based access. Teams share the message ID while seeing only the fields allowed for their workspace role.