SMS Prerequisites
Before you can send SMS through the EnableX API, you must complete several setup steps. These vary by the countries you are sending to and the type of messages you are sending. This page covers everything you need to prepare before making your first API call.
EnableX Account and Project
All SMS API access is tied to an EnableX project. A project provides the API credentials (APP ID and APP Key) that authenticate every API call, and it groups your campaigns, Sender IDs, templates, and phone numbers in one place.
Step 1: Create an EnableX Account
Sign up at the EnableX Portal. During registration, provide a valid business email address. You will receive a verification email — confirm it before proceeding.
Step 2: Create a Project with SMS Enabled
Once logged in to the portal:
1. Navigate to My Projects.
2. Click CREATE PROJECT.
3. Enter a project name and description.
4. In the Channels section, enable SMS services.
5. Click CREATE PROJECT to confirm.
A confirmation popup displays your APP ID and APP Key. These credentials are also sent to your registered email address. Store them securely — they are required in the Authorization header of every API request.
Step 3: Obtain Your API Credentials
Your project's APP ID and APP Key are available on the project dashboard at any time. Use them to construct the HTTP Basic Authorization header:
Authorization: Basic base64(APP_ID:APP_KEY)
Alternatively, you can generate a short-lived Bearer Token using the POST /sms/v1/token endpoint. See the SMS API Authentication section for details.
Step 4: Configure a Webhook URL
A webhook URL is required to receive delivery receipts (DLR) and inbound SMS messages. Your webhook endpoint must be:
| Requirement | Details |
|---|---|
| Publicly accessible | The URL must be reachable from the internet — localhost or private IPs are not supported |
| HTTPS only | Must use a valid TLS/SSL certificate; self-signed certificates are not supported |
| Returns HTTP 200 | Your endpoint must respond with HTTP 200 to acknowledge receipt of every notification |
| Accepts HTTP POST | EnableX delivers all webhook payloads via HTTP POST with a JSON body |
You configure the webhook URL per campaign in the EnableX Portal. See the Webhook Setup section below for configuration steps.
Sender ID and From Number
The Sender ID (also called the "From" identifier) is what appears in the recipient's inbox as the sender of your message. Choosing the right sender type affects branding, deliverability, and two-way messaging capability.
What Is a Sender ID?
A Sender ID is the identifier displayed to the recipient. It can be either an alphanumeric string (e.g., MYBANK) or a phone number (e.g., +14155550100). Which type you can use depends on the destination country and the message type.
Shared vs Dedicated Sender IDs
| Type | Description | Best For |
|---|---|---|
| Shared | A Sender ID or number shared among multiple EnableX customers. Trial accounts use the shared ID ENABLX. | Testing, low-volume transactional messages, getting started quickly |
| Dedicated | A Sender ID or number exclusively assigned to your account. Requires registration and approval. | Brand recognition, high-volume campaigns, two-way messaging, production use |
For production deployments, dedicated Sender IDs are strongly recommended. They build brand recognition and prevent message cross-contamination between customers.
Alphanumeric Sender IDs
An alphanumeric Sender ID is a string of up to 11 characters containing letters (A–Z, a–z) and digits (0–9). It appears in the recipient's inbox as a name rather than a phone number. For example, a bank sending OTPs might use MYBANK as the Sender ID.
Limitations of alphanumeric Sender IDs:
- They are one-way only — recipients cannot reply to an alphanumeric Sender ID
- Support varies by country — some countries require pre-registration, some overwrite them to a short code, and some do not support them at all
- In India, alphanumeric Sender IDs for local traffic must be DLT-registered (see India DLT below)
- In the United States, alphanumeric Sender IDs are not supported — you must use a 10DLC number (see USA 10DLC below)
To request a dedicated alphanumeric Sender ID in the portal:
1. Navigate to SMS → Resource → Sender ID.
2. Click ADD SENDER ID.
3. Select the target country.
4. Enter the Sender ID string and a sample SMS message.
5. Submit for verification.
For countries that require DLT registration (India), you must also provide your DLT Principal Entity ID at this step.
Short Codes
A short code is a short 4–6 digit number used as the sender. Short codes are pre-vetted by carriers and support high message throughput without triggering spam filters.
| Type | Description | Typical Use |
|---|---|---|
| Shared Short Code | A short code shared among multiple businesses | Lower-cost option for transactional messaging; less brand identity |
| Dedicated Short Code | A short code exclusively assigned to your organization | High-volume campaigns, brand recognition, two-way messaging |
To purchase a short code or long code through EnableX, navigate to SMS → Resource → Phone Number in the portal and click BUY A NUMBER.
Country-Specific Compliance
SMS is regulated at the national level. Before sending into any market, verify that you have completed the required registration and consent processes for that country. Failure to do so typically results in carrier-level blocking with no error indication in the API response.
India — DLT Registration
India requires DLT (Distributed Ledger Technology) registration for all Application-to-Person (A2P) SMS sent to Indian phone numbers. DLT is mandated by TRAI (Telecom Regulatory Authority of India) and enforced by all Indian mobile operators. There are no exceptions — all commercial SMS, including transactional and OTP messages, must be DLT-compliant.
DLT registration is a three-phase process:
Phase 1: Entity Registration
Register your business as a "Principal Entity" on any Indian telecom operator's DLT portal (Jio, Airtel, Vodafone Idea, BSNL, or MTNL). You will receive a unique Principal Entity ID (PEID) that identifies your organization across all operators. Share your PEID with EnableX Support after registration.
Phase 2: Header (Sender ID) Registration
Register each Sender ID (called a "Header" in DLT terminology) under your PEID. Each registered header is linked to your entity and approved for use on the DLT platform. You must also register your approved headers through the EnableX Portal (SMS → Resource → Sender ID), providing your PEID when prompted.
Phase 3: Template Registration
Register every message template you intend to send on the DLT platform. Each template receives a unique DLT Template ID. Both the DLT Template ID and the EnableX Template ID must be present in your API payload when sending to Indian numbers.
Message categories in India:
| Category | Description | Time Restrictions |
|---|---|---|
| Transactional | OTPs, payment alerts, critical notifications from banks and registered institutions | Allowed 24/7 |
| Service Implicit | Order updates, booking confirmations for existing customers (no marketing content) | Allowed 24/7 |
| Service Explicit | Offers and updates to opted-in existing customers | Blocked 9 PM – 9 AM |
| Promotional | Marketing and advertisements to a broader audience | Blocked 9 PM – 9 AM |
The message category you select when creating a campaign must match the category under which your templates are registered on DLT. Mismatches result in blocked delivery.
USA — 10DLC Registration
Since March 2021, the United States requires 10DLC (10-Digit Long Code) registration for all A2P (Application-to-Person) SMS. 10DLC is a standard 10-digit US phone number linked to a registered brand and campaign. Unregistered A2P traffic is blocked by US carriers (T-Mobile, AT&T, Verizon).
10DLC registration is a two-step process through The Campaign Registry (TCR):
Step 1: Brand Registration
Register your business entity with TCR. You need:
- Legal company name and address
- EIN or Tax ID number
- Company website URL
- Business vertical (industry category)
- Primary contact details
Step 2: Campaign Registration
Register each A2P messaging use case as a "campaign brief." For each campaign, you must specify:
- Use case type (2FA, Account Notifications, Customer Care, Delivery Notifications, Marketing, etc.)
- At least two sample messages representative of what you will send
- Opt-in method description (how users consented to receive messages)
- Opt-out mechanism (e.g., STOP keyword handling)
After approval, your 10DLC number is linked to the registered campaign. All outbound messages must originate from this number.
US carriers also apply additional per-message surcharges for 10DLC traffic, which are higher for unregistered traffic. Contact EnableX Support for current fee schedules.
UK and EU — GDPR and Consent
The United Kingdom and European Union apply GDPR (General Data Protection Regulation) principles to SMS marketing. The key requirements are:
| Requirement | Details |
|---|---|
| Explicit opt-in | You must obtain clear, affirmative consent from recipients before sending marketing SMS. Pre-ticked boxes or implied consent do not qualify. |
| No unsolicited marketing | Sending promotional SMS to recipients who have not opted in is prohibited and can result in significant regulatory fines. |
| Opt-in records | You must keep records of when, how, and from whom consent was obtained. These records may be required in the event of a regulatory audit. |
| Opt-out mechanism | Every marketing message must include a clear and easy way to unsubscribe (e.g., "Reply STOP to opt out"). Unsubscribe requests must be honored immediately. |
| Transactional messages | Service and transactional messages (OTPs, account alerts, booking confirmations) to existing customers do not require prior opt-in but must not contain marketing content. |
Other Countries
SMS regulations vary significantly beyond the markets covered above. Examples include:
- Singapore: Sender ID registration through the Singapore SMS Sender ID Registry (SSIR) is required for certain use cases. Unregistered Sender IDs may be labeled "LIKELY SCAM" by the network.
- Canada: Alphanumeric Sender IDs are not supported. A local Canadian phone number is required as the originator. URLs in message bodies are blocked.
- UAE: All Sender IDs must be pre-registered. Promotional SMS must include opt-out instructions.
- Australia: Opt-in consent is required for marketing SMS under the Spam Act 2003.
For country-specific guidance not covered here, contact EnableX Support. Full country-by-country regulations — including Sender ID support status, URL restrictions, and content filtering rules — are documented in the SMS Regulations page.
Message Templates
A message template is a pre-defined message body that you create, submit for approval, and then reference by template_id in API calls. Templates support dynamic placeholders using the {$variable} syntax for personalization.
Example template:
Hi {$name}, your order {$order_id} has been shipped and will arrive by {$date}. Track: {$tracking_url}
When Templates Are Required
| Scenario | Template Required? | Notes |
|---|---|---|
| All EnableX SMS API calls | Yes — always | The template_id field is required in every Send SMS request |
| Sending to India | Yes — DLT-registered template | Template must also be registered on the TRAI DLT platform with a valid DLT Template ID |
| Transactional messages (OTPs, alerts) | Yes | Create a template of type Transactional or Service Implicit |
| Promotional campaigns | Yes | Create a template of type Promotional or Service Explicit; applies time-of-day restrictions in regulated markets |
Template Approval Process via EnableX
Templates are reviewed and approved by EnableX before they can be used in production:
1. Navigate to SMS → Resource → Template in the EnableX Portal.
2. Click NEW TEMPLATE REQUEST.
3. Select the target country and template type (Transactional, Promotional, Service Implicit, or Service Explicit).
4. Enter the template title and message body, using {$variable} for any dynamic fields.
5. Submit for review.
Once approved, the template status changes from Pending to Fulfilled and a template_id is assigned. Use this ID in the template_id field of your API payloads.
Webhook Setup
Webhooks allow EnableX to push real-time notifications to your server. For SMS, two types of webhook events are delivered:
| Event Type | Description | When Triggered |
|---|---|---|
| Delivery Receipt (DLR) | Notifies your server of the delivery status of each outbound message | When a message is delivered, fails, or its status changes |
| Inbound SMS | Forwards incoming messages sent to your EnableX phone number to your server | When a recipient sends an SMS to your assigned Long Code or Short Code |
Configure the Webhook URL
The webhook URL is configured per campaign:
1. Navigate to SMS → Dashboard → My Campaigns in the portal.
2. Click CREATE CAMPAIGN or edit an existing campaign.
3. In the campaign settings, locate the Webhook URL field under the outgoing SMS configuration section.
4. Enter your HTTPS webhook endpoint URL.
5. Save the campaign.
Delivery Receipt Webhook Payload
When delivery status changes, EnableX sends a POST request to your webhook URL:
{
"job_id": "5e71f1b23630865c34443fb4",
"detailed": [
{
"to": "+919876543210",
"datetime": "2025-03-15 08:29:45",
"status": "delivered"
},
{
"to": "+919876543211",
"datetime": "2025-03-15 08:30:02",
"error_code": "202",
"error_des": "User abort",
"status": "failed"
}
]
}
Inbound SMS Webhook Payload
When a user sends an SMS to your EnableX number, EnableX forwards the message to your webhook URL:
{
"id": "61e8efab5c8ece74657d3d54",
"to": "44999999999",
"received": "2025-03-15T05:14:19Z",
"from": "919876543210",
"body": "Hello, I need help with my order"
}
200 for every incoming notification. If EnableX receives any other response code, it may retry delivery. Ensure your endpoint can handle duplicate deliveries gracefully.
Requirements for Inbound SMS
To receive inbound SMS at your webhook, you must have a dedicated phone number (Long Code or Short Code) assigned to your campaign. Alphanumeric Sender IDs cannot receive replies. To purchase a number:
1. Navigate to SMS → Resource → Phone Number.
2. Click BUY A NUMBER.
3. Choose country and number type.
4. Assign the number to your campaign with SMS In Only or Both Ways direction selected.
Setup Checklist
Use this checklist to verify all prerequisites are complete before sending production SMS:
| # | Step | Required For |
|---|---|---|
| 1 | Create an EnableX account and verify email | All |
| 2 | Create a project with SMS service enabled | All |
| 3 | Copy APP ID and APP Key from the project dashboard | All |
| 4 | Create at least one SMS campaign | All |
| 5 | Request and get a Sender ID or phone number approved | All |
| 6 | Create and get at least one message template approved | All |
| 7 | Configure HTTPS webhook URL in campaign settings | Delivery receipts and inbound SMS |
| 8 | Complete DLT entity, header, and template registration | SMS to India |
| 9 | Complete 10DLC brand and campaign registration with TCR | SMS to USA |
| 10 | Collect and record opt-in consent from recipients | UK, EU, Australia, promotional SMS globally |
| 11 | Register Sender ID with SSIR | SMS to Singapore (applicable use cases) |
What's Next
Once you have completed the prerequisites above, you are ready to send SMS through the EnableX API:
- SMS API — Complete API reference for sending SMS, bulk messaging, delivery status, incoming SMS, and authentication. Includes code examples and payload descriptions.
- SMS Regulations — Comprehensive country-by-country reference covering Sender ID support, URL restrictions, content filtering rules, time-of-day restrictions, and compliance best practices for 20+ countries.