A2P SMS into 190 countries · 99.95% platform uptime
THCloud Messaging

Developers

One API, every corridor.

A JSON API over HTTPS, SMPP v3.4 binds for high-volume platforms, and signed webhooks for delivery receipts. Sandbox credentials are issued as soon as your business details are verified.

Authentication

Bearer tokens over TLS

Every request carries an API key in the Authorization header. Keys are scoped per environment; the sandbox key never touches a live operator route.

Base URL and authhttp
https://api.3044tech.com/v1

Authorization: Bearer $TH_API_KEY
Content-Type: application/json
Idempotency-Key: 4f1c9b2e-…

Send

POST /v1/messages

Declare a traffic class so the routing engine can pick the right corridor and apply the correct regulatory treatment.

Requestjson
{
  "to": ["+971501234567"],
  "from": "THCLOUD",
  "text": "Your code is 481920",
  "class": "authentication",
  "callback_url": "https://example.com/dlr"
}

Receipts

Signed delivery webhooks

Each receipt is signed with your webhook secret. Verify the signature, respond 2xx, and TH stops retrying. Anything unacknowledged is replayed with backoff for 24 hours.

Webhook payloadjson
{
  "id": "msg_01J9K2…",
  "status": "delivered",
  "mcc": "424",
  "segments": 1,
  "delivered_at": "2026-08-15T09:41:12Z"
}

Verify

Signature verification

Compare the hex digest in the TH-Signature header against an HMAC of the raw body using a constant-time comparison.

Node.jsjavascript
import { createHmac, timingSafeEqual } from "node:crypto";

export function verify(rawBody, header, secret) {
  const digest = createHmac("sha256", secret)
    .update(rawBody)
    .digest();
  const sent = Buffer.from(header, "hex");
  return digest.length === sent.length &&
    timingSafeEqual(digest, sent);
}

Endpoints

MethodPathPurpose
POST/v1/messagesSend one or many messages
GET/v1/messages/{id}Retrieve a message and its final state
GET/v1/routesList destinations available to your account
POST/v1/sendersSubmit a sender ID for registration
GET/v1/reports/deliveryAggregated delivery reporting

Message states

StatusMeaning
queuedAccepted by TH and waiting for a route slot
sentHanded to the operator, awaiting a delivery receipt
deliveredOperator confirmed handset delivery
undeliveredOperator rejected or could not deliver; see failure_code
expiredValidity period elapsed before the handset was reachable

SMPP v3.4 transceiver binds are available on the Scale and Carrier tiers. Ask the routing desk for host, port and throughput allocation.