Skip to content

Send OTP SMS

GET
/v2/otp/send
curl --request GET \
--url 'https://api.contacta.mx/v2/otp/send?msg=Your%20otp%20code%20is%20%5Bcode%5D%2C%20please%20don'\''t%20share%20it%20with%20anyone.&phone=8100001234&sender=AWESOMEINC&id=external-id-relation' \
--header 'Authorization: Basic <credentials>'

Sends an OTP SMS using query string parameters.

Note: This endpoint generates an OTP code and sends it via SMS. It is not an OTP verification route — use /v2/otp/verify for that.

Suitable for quick tests via browser or Postman.

msg
required
string
>= 3 characters <= 160 characters

GSM-encoded message (max 160 characters).

Note: If the [code] tag is omitted, it will be appended to the end of the message.

Example
Your otp code is [code], please don't share it with anyone.
phone
required
string
/^\d{10}$/

10-digit destination phone number (Mexico, without country code)

Example
8100001234
sender
string

Sender ID authorized by carrier (optional)

Example
AWESOMEINC
id
string

External reference ID for your own tracking (optional)

Example
external-id-relation

OTP SMS sent successfully

Media typeapplication/json
object
status
boolean
error
boolean
description
object
added_on
string format: date-time
charge
number format: float
country
object
country
string
iso_code
string
type
string
encoding
string
Allowed values: gsm unicode
id
integer
job_id
string
length
integer
message
string
number
string
segments
integer
sender
string
Example
{
"status": true,
"error": false,
"description": {
"added_on": "2023-09-20 16:47:15",
"charge": 0.99,
"country": {
"country": "MEXICO",
"iso_code": "MX",
"type": "MOVIL"
},
"encoding": "gsm",
"id": 199999,
"job_id": "199999",
"length": 12,
"message": "Your otp code is 0000, please don't share it with anyone.",
"number": "8100001234",
"segments": 1,
"sender": "AWESOMEINC"
}
}

Missing required parameters

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Missing params, please verify or contact to support"
}

Your key auth is not valid

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Your key auth is not valid, please check with your administrator to get the new key"
}

Your account doesn’t have credits available for sending

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Your account doesn't have credits available for this, please contact your administrator"
}

Country or carrier not reachable or assigned to your account

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Country or carrier not reachable or assigned to your account, please contact an administrator or support"
}

Failed to append to the queue, no need to resend

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Failed to append to the queue, no need to resend"
}

Your account doesn’t have multi-message sending enabled

Media typeapplication/json
Example
{
"status": false,
"error": true,
"description": "Your account doesn't have multi-message sending enabled, please contact your administrator"
}