Skip to content

Send SMS from your platform and know what happened to each one

Connect with the standard SMPP 3.4 protocol, send at a sustained volume and receive the final status of each message. The SMS people send to your short code reach you by webhook.

  • Standard SMPP 3.4 protocol
  • Delivery receipt per message
  • Inbound SMS by webhook

What sending over SMPP includes

  • If you already have an SMPP client, you just connect

    Hablame handles the commands a sending flow needs: opening the connection as transmitter, receiver or transceiver, sending with submit_sm, keeping it alive with enquire_link and closing it with unbind.

  • A delivery receipt for each message

    The receipt carries the final status we know: DELIVRD, EXPIRED, DELETED, UNDELIV, ACCEPTD, UNKNOWN, REJECTD. If your client does not confirm it, we keep trying for 72 hours.

  • Built for sustained volume

    Up to 3,000 messages per second on each connection (each part of a long message counts) and up to 20 simultaneous connections per account and IP address.

  • Long messages

    You can split the text yourself: the server joins the parts, waits up to 60 minutes from the first one and accepts up to 255 parts.

  • Encrypted connection

    If your client opens the connection with TLS 1.2 or later, the server detects it on its own. We recommend using it.

  • Spanish text

    The ñ and the é fit in the basic alphabet (160 characters per message). The accented vowels á, í, ó, ú force UCS-2, with 70 characters per message.

How sending works

Your platform and Hablame talk like this, from top to bottom.

  1. You open the connection

    You bind with your system_id and your password.

  2. You send the message

    Each message (or each part of a long one) goes in a submit_sm.

  3. You store the message_id

    It arrives in the response and is the same one the receipt carries.

  4. You receive the receipt

    It carries the final status of the message. You confirm it with deliver_sm_resp.

The SMS people send you arrive by webhook

Inbound SMS are not received over the SMPP connection: they arrive at a URL on your server.

  • One event per SMS

    When someone writes to your short code, you get the sms.mo.{shortCode} event with shortCode, from, text, receivedAt, messageId. An SMS to 87654 arrives as sms.mo.87654.

  • Every notification is signed

    With the X-Hablame-Signature header you verify that the notification came from Hablame and that nobody changed it on the way.

  • Never process the same notification twice

    A notification can arrive more than once. X-Hablame-Delivery-Id does not change between retries: use it to drop the repeated ones.

How an inbound SMS arrives

  1. 1. A person writes87654

    They send an SMS to your short code.

  2. 2. Hablame receives itsms.mo.87654

    It looks up the endpoint you registered for that short code.

  3. 3. Your server gets the notificationPOST https://…

    A signed POST to your HTTPS URL, with the SMS as JSON.

  4. 4. You answer2xx

    With a 2xx code. If you do not, Hablame retries the notification.

What the two messages look like

On the left, the delivery receipt you get over SMPP. On the right, the notification of an inbound SMS. The data is sample data.

id:<message_id> sub:001 dlvrd:001 submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:<status> err:<error> Text:<text>

What you need

  • An SMPP account, which support creates. Support gives you the server, the port, your system_id and your password.
  • Fixed public IP addresses: only the ones you authorize are enabled for your account.
  • A cost center that usage is attributed to.
  • An SMPP 3.4 client. If you want receipts, a receiver or transceiver connection.
  • To receive inbound SMS: a short code with a registered endpoint and an HTTPS URL that answers with a 2xx code.
  • Today the destinations are mobile phones in Colombia.

What it does not do today

  • query_sm, submit_multi, data_sm, replace_sm, cancel_sm are not supported: they answer generic_nack and the connection stays open.
  • Scheduled sending (schedule_delivery_time) is stored but not applied: the message goes out right away.
  • Inbound SMS arrive only by webhook, not over the SMPP connection.

Costs

  • Sending SMS has a cost. We do not publish prices here: you agree the terms with the sales team.

Want to send SMS from your platform?

Tell us about your case and the IP addresses you would connect from, and we will guide you on how to continue.

Need help?

Was this page helpful?

See all support channels

Your cookie preferences

You decide what we measure. You can change your choice at any time. Rejecting takes no feature away from the documentation.

Privacy policy