Skip to content

Send OTP SMS

POST
/v2/otp-global/send
curl --request POST \
--url https://api.contacta.mx/v2/otp-global/send \
--header 'Authorization: Basic <credentials>' \
--header 'Content-Type: application/json' \
--data '{ "msg": "Your otp code is [code], please don'\''t share it with anyone.", "phone": "528100001234", "sender": "AWESOMEINC", "id": "my-external-id" }'

Sends an OTP SMS using a JSON payload in the request body.

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

Recommended for server-to-server integrations.

JSON body for sending an OTP SMS.

Media typeapplication/json
object
msg
required

GSM-encoded message (max 160 characters).

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

string
>= 3 characters <= 160 characters
Example
Your otp code is [code], please don't share it with anyone.
phone
required

E.164 destination phone number without + (11–15 digits including country code)

string
/^\d{11,15}$/
Example
528100001234
sender

Sender ID authorized by carrier (optional)

string
Example
AWESOMEINC
id

External reference ID (optional)

string
Example
my-external-id

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"
}