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.

Important: Skipping prerequisite steps — particularly country-specific compliance registration — results in messages being silently blocked by carriers. Complete all applicable steps for your target markets before going live.

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.

Note: If you already have an EnableX project for another channel (Voice, Video, or WhatsApp), you can add SMS to it rather than creating a new project. Navigate to your project summary, click EDIT, enable SMS in the Channels section, and save.

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:

RequirementDetails
Publicly accessibleThe URL must be reachable from the internet — localhost or private IPs are not supported
HTTPS onlyMust use a valid TLS/SSL certificate; self-signed certificates are not supported
Returns HTTP 200Your endpoint must respond with HTTP 200 to acknowledge receipt of every notification
Accepts HTTP POSTEnableX 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

TypeDescriptionBest For
SharedA Sender ID or number shared among multiple EnableX customers. Trial accounts use the shared ID ENABLX.Testing, low-volume transactional messages, getting started quickly
DedicatedA 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.

TypeDescriptionTypical Use
Shared Short CodeA short code shared among multiple businessesLower-cost option for transactional messaging; less brand identity
Dedicated Short CodeA short code exclusively assigned to your organizationHigh-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.

Important: Messages sent to Indian numbers without a valid PEID, registered Sender ID, and DLT-approved template will not be delivered. There is no grace period or fallback — non-compliant messages are blocked at the operator level.

Message categories in India:

CategoryDescriptionTime Restrictions
TransactionalOTPs, payment alerts, critical notifications from banks and registered institutionsAllowed 24/7
Service ImplicitOrder updates, booking confirmations for existing customers (no marketing content)Allowed 24/7
Service ExplicitOffers and updates to opted-in existing customersBlocked 9 PM – 9 AM
PromotionalMarketing and advertisements to a broader audienceBlocked 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.

Important: Each 10DLC number must be associated with a single registered brand. Sharing a 10DLC number across multiple brands is prohibited by US carriers. To register through EnableX, contact EnableX Support or use the portal.

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:

RequirementDetails
Explicit opt-inYou must obtain clear, affirmative consent from recipients before sending marketing SMS. Pre-ticked boxes or implied consent do not qualify.
No unsolicited marketingSending promotional SMS to recipients who have not opted in is prohibited and can result in significant regulatory fines.
Opt-in recordsYou 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 mechanismEvery 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 messagesService and transactional messages (OTPs, account alerts, booking confirmations) to existing customers do not require prior opt-in but must not contain marketing content.
Note: Even for transactional messages, recipients must be informed of how their phone number will be used at the point of data collection (e.g., in your privacy policy or terms of service). This is a GDPR data processing transparency requirement.

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

ScenarioTemplate Required?Notes
All EnableX SMS API callsYes — alwaysThe template_id field is required in every Send SMS request
Sending to IndiaYes — DLT-registered templateTemplate must also be registered on the TRAI DLT platform with a valid DLT Template ID
Transactional messages (OTPs, alerts)YesCreate a template of type Transactional or Service Implicit
Promotional campaignsYesCreate 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.

Note — India: For SMS to Indian numbers, you must complete DLT template registration independently on your telecom operator's DLT portal. The DLT Template ID you receive must match the template registered in the EnableX Portal. Both IDs are required when sending.

Webhook Setup

Webhooks allow EnableX to push real-time notifications to your server. For SMS, two types of webhook events are delivered:

Event TypeDescriptionWhen Triggered
Delivery Receipt (DLR)Notifies your server of the delivery status of each outbound messageWhen a message is delivered, fails, or its status changes
Inbound SMSForwards incoming messages sent to your EnableX phone number to your serverWhen 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"
}
Important: Your webhook endpoint must return HTTP 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:

#StepRequired For
1Create an EnableX account and verify emailAll
2Create a project with SMS service enabledAll
3Copy APP ID and APP Key from the project dashboardAll
4Create at least one SMS campaignAll
5Request and get a Sender ID or phone number approvedAll
6Create and get at least one message template approvedAll
7Configure HTTPS webhook URL in campaign settingsDelivery receipts and inbound SMS
8Complete DLT entity, header, and template registrationSMS to India
9Complete 10DLC brand and campaign registration with TCRSMS to USA
10Collect and record opt-in consent from recipientsUK, EU, Australia, promotional SMS globally
11Register Sender ID with SSIRSMS 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.