🚀 Quick Start Guide
New here?
This guide walks you through account setup and your first API call. If you don't have access yet, please create an account.
Welcome to the Tech231 Platform! This guide will help you get started with sending SMS messages through our platform quickly and easily.
📋 What You'll Need
Before you begin, make sure you have:
- An active Tech231 Platform account
- Your Zitadel OAuth2 credentials (Client ID and Client Secret)
- A registered sender ID (we'll help you get one if needed)
🔐 Authentication
The Tech231 Platform uses Zitadel OAuth2 authentication with JWT tokens for secure access. Your tenant context is automatically determined from the resource scope in your access token - no need for additional headers!
Authentication Types
We support two authentication methods:
1. Service Account Authentication (Recommended for API Integration)
Service accounts are ideal for server-to-server communication and automated systems.
Getting Your Service Account Credentials:
- Log in to your Tech231 Platform dashboard
- Navigate to Settings → Service Accounts
- Click "Create Service Account"
- Copy your:
- Client ID: Your service account identifier
- Client Secret: Your service account password (store securely!)
- Token Endpoint:
https://auth.tech231apps.net/oauth/v2/token
2. User Account Authentication (For Dashboard and User Applications)
User accounts are for individual users accessing the platform through web or mobile applications.
Obtaining an Access Token
Service Account Token (Client Credentials Flow)
Code
Response:
Code
User Account Token (Authorization Code Flow)
For user-based applications, implement the OAuth2 Authorization Code flow:
- Redirect user to authorization endpoint:
Code
- Exchange authorization code for token:
Code
Using Your Access Token
Include the JWT access token in the Authorization header for all API requests:
Code
Important: Your tenant context is embedded in the JWT token's resource scope. No additional tenant headers are needed!
Token Refresh
Access tokens expire after 1 hour. For long-running applications:
With Refresh Token:
Code
Without Refresh Token (Service Accounts):
Simply request a new token using client credentials when the current one expires.
Required OAuth2 Scopes
Make sure to request these scopes for full platform access:
openid- OpenID Connect authenticationemail- User email accessprofile- User profile informationoffline_access- Refresh token (for user accounts)urn:zitadel:iam:org:project:id:321914919689650215:aud- Platform resource scopeurn:zitadel:iam:user:resourceowner- Resource owner information
📱 Getting a Sender ID
A Sender ID is what your recipients see as the sender of your SMS messages. You have several options:
Types of Sender IDs
- Alphanumeric: Custom text (e.g., "YourCompany", "ALERTS") - up to 11 characters
- Shortcode: Dedicated numbers for two-way messaging
- Shared Shortcode: Cost-effective option with keyword routing
Requesting a Sender ID
- Navigate to Sender IDs in your dashboard
- Click "Request New Sender ID"
- Choose your sender ID type and enter your preferred ID
- Submit your request with business justification
- Wait for approval (typically 1-2 business days)
Tip: Pre-approved sender IDs like your company name are processed faster!
🚀 Sending SMS
Once you have your access token and an approved sender ID, you can start sending messages.
We support both Transactional (single message) and Bulk (batch) sending flows.
For detailed instructions and API examples, please refer to our SMS Sending Flows Guide.
🔔 Receiving SMS Messages (Inbound Webhooks)
To receive SMS messages sent to your shortcodes, you need to implement a webhook endpoint.
Webhook Setup
- Navigate to Settings → Webhooks in your dashboard
- Add your webhook URL (must be HTTPS)
- Configure authentication (we recommend HMAC signature verification)
- Select events you want to receive (e.g.,
sms.received) - Test your webhook with our testing tool
Implementing Your Webhook Endpoint
Your webhook must accept POST requests with the following payload:
Code
Example webhook implementation (Node.js):
Code
Best practices for webhooks:
- Respond quickly: Return 200 OK within 5 seconds
- Process asynchronously: Queue messages for background processing
- Implement retries: We'll retry failed webhooks up to 3 times
- Verify signatures: Always validate the
x-tech231-signatureheader - Handle duplicates: Use
eventIdto detect duplicate deliveries
For detailed webhook specifications, see our Inbound SMS Webhook Documentation.
🛡️ Best Practices
Authentication & Security
- Never expose credentials: Use environment variables for client secrets
- Store tokens securely: Use secure storage for access tokens
- Implement token refresh: Handle expired tokens gracefully
- Use HTTPS only: All API requests must use HTTPS
- Rotate secrets regularly: Change service account credentials periodically
Message Content
- Keep messages concise and clear
- Include opt-out instructions for marketing messages
- Avoid special characters that might not display properly
- Test messages before sending to large audiences
Rate Limits
- Respect API rate limits (check your plan details)
- Implement exponential backoff for retries
- Monitor your usage in the dashboard
- Request rate limit increases if needed
📞 Need Help?
Quick Troubleshooting
Authentication Errors (401)
- Verify your client credentials are correct
- Check that your access token hasn't expired
- Ensure you're requesting the correct scopes
- Verify the token endpoint URL is correct
Forbidden Errors (403)
- Check your service account has the necessary permissions
- Verify your resource scope includes the platform audience
- Contact support to review your account permissions
Sender ID Issues
- Confirm your sender ID is approved and active
- Check spelling and format (alphanumeric IDs are case-sensitive)
- Verify your sender ID hasn't expired
Message Delivery Issues
- Check recipient number format (include country code)
- Verify the recipient's carrier supports your message type
- Check our status page for service issues
Support Resources
- 📚 API Reference: Complete endpoint documentation with examples
- 💬 Support Chat: Available in your dashboard
- 📧 Email Support: support@tech231apps.net
- 📞 Phone Support: Available for premium plans
Next Steps
Now that you're sending messages successfully:
- Explore the API Reference for advanced features
- Set up webhooks for inbound messages and delivery notifications
- Configure sender ID pools for high-volume sending
- Review analytics in your dashboard to optimize messaging
- Implement error handling and retry logic in your application
Happy messaging! 🎉