Skip to content

Incoming SMS (MO)

POST
/your-webhook-url/mo

Contacta.mx sends a POST request to your configured webhook URL when an inbound SMS message (Mobile Originated) is received.

This is not an endpoint you call — configure your webhook URL through request to soporte@contacta.mx and implement this endpoint on your server to receive incoming messages.

Validating requests

Every webhook request includes the following headers to verify it originates from contacta.mx:

HeaderValue
User-Agentcontacta.mx
x-contacta-timeUnix timestamp (seconds)
x-contacta-usersha1(api_key)
x-contacta-signaturesha1(api_key + x-contacta-time)

Reject requests where the signature does not match or where x-contacta-time is older than your acceptable tolerance window (e.g. 60 seconds).

User-Agent
required
string
Allowed values: contacta.mx
contacta.mx

Always set to contacta.mx on webhook requests

x-contacta-time
required
integer
1750000000

Unix timestamp (seconds) of when the request was sent.

Use this together with x-contacta-signature to validate request freshness and prevent replay attacks.

x-contacta-user
required
string
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

SHA1 hash of your API key.

Use this to identify which account sent the webhook.

x-contacta-signature
required
string
b6589fc6ab0dc82cf12099d1c2d40ab994e8410c

SHA1 hash of your API key concatenated with the timestamp from x-contacta-time.

Use this to verify the request authenticity:

expected = sha1(api_key + x-contacta-time)
valid    = expected == x-contacta-signature

Payload delivered to your webhook URL when an incoming SMS (MO) is received.

Either sms_id or short_code will be present depending on your account configuration:

  • sms_id — when the message was received on a shared short code
  • short_code — when the message was received on a dedicated short code
object
source_addr
required

Phone number of the person who sent the message (E.164 without +)

string
5218112345678
message
required

Text content of the incoming SMS

string
Hola, quiero más información
sms_id

Originating MT message ID. Present when the reply was received on a shared short code. Identifies which outgoing message this reply corresponds to.

string
MT-9f3a1b7c2d
short_code

Dedicated short code that received the message. Present when your account has a dedicated short code assigned.

string
40404
Examples

Reply received on shared short code

{
"source_addr": "5218112345678",
"message": "Hola, quiero más información",
"sms_id": "MT-9f3a1b7c2d"
}

Your server must return HTTP 200 to acknowledge receipt. Any other status code will trigger a retry from contacta.mx.

Useful for guiding users to view code examples in different developer languages.

developer@developer:~#
curl -X POST "https://api.example.com/your-webhook-url/mo" \
-H "Accept: application/json" \
-H "Connection: keep-alive" \
-H "Content-Type: application/json" \
-H "User-Agent: value" \
-H "x-contacta-time: value" \
-H "x-contacta-user: value" \
-H "x-contacta-signature: value" \
-d '{"source_addr":"5218112345678","message":"Hola, quiero más información","sms_id":"MT-9f3a1b7c2d","short_code":"40404"}'