API gateway de mesagerie
Un singur API pentru toate canalele de mesagerie
Trimiteți mesaje WhatsApp Business, SMS, Telegram, Messenger, Instagram și TikTok printr-un singur endpoint REST. Preplătit, cu plată per mesaj de ieșire, cu webhookuri de livrare și mod de test.
- De la
- 0,0003 $
- per mesaj de ieșire
- La înregistrare
- 100
- de mesaje gratuite
- Angajament
- Niciunul
- preplătit, fără contract
curl https://api.omnimessage.co/v1/messages \
-H "Authorization: Bearer om_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-shipped" \
-d '{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": { "body": "Your order #1042 has shipped." },
"reference": "order-1042"
}'{
"id": "msg_2b1Xw9aQ3rT8yU0pL4kZ",
"object": "message",
"mode": "live",
"channel_id": "ch_7Hq2mN5vB8cX1zL0pK3j",
"channel_type": "whatsapp",
"direction": "outbound",
"to": "+971501234567",
"from": "+971800123456",
"type": "text",
"content": {
"text": { "body": "Your order #1042 has shipped." }
},
"status": "queued",
"error": null,
"reference": "order-1042",
"metadata": {},
"billing": {
"source": "wallet",
"amount_micros": 1000,
"package_grant_id": null,
"refunded": false
},
"created_at": "2026-10-05T09:30:00.000Z",
"sent_at": null,
"delivered_at": null,
"read_at": null,
"failed_at": null
}Canale
Șapte tipuri de canale, o singură structură de cerere
Conectați expeditorii pe care îi dețineți deja. Fiecare devine un ID de canal pe care îl transmiteți aceluiași endpoint și fiecare raportează aceleași stări.
- 0,001 $WhatsApp BusinessȘabloane, mesaje interactive și conținut media pe propriul număr Cloud API.Text · Atașamente · Șablon · Butoane de răspuns · Listă · Buton URL · Locație · Contacte
- 0,0005 $SMSMesaje text și media de pe propriul număr Twilio.Text · Atașamente
- 0,0005 $SMS OTPO rută exclusiv text pentru coduri de unică folosință.Text
- 0,0003 $TelegramMesaje de la bot cu butoane, sondaje, locații și conținut media.Text · Atașamente · Butoane de răspuns · Locație · Contacte · Sondaj
- 0,0005 $MessengerConversații cu persoanele care scriu Paginii dvs. de Facebook.Text · Atașamente · Butoane de răspuns
- 0,0005 $InstagramMesaje directe pentru un cont profesional de Instagram.Text · Atașamente · Butoane de răspuns
- 0,0005 $TikTokMesaje directe pentru un cont de companie TikTok.Text · Atașamente · Butoane de răspuns
- Veniți cu propriul canalNumerele și boții dvs. rămân ai dvs.Vedeți ce necesită fiecare canal
Cum funcționează
De la înregistrare la un mesaj livrat, în patru pași
Fără apeluri de vânzări și fără angajament minim. Puteți face primul apel API în modul de test la un minut după crearea contului.
- Pasul 01
Creați un cont
Înregistrați-vă, confirmați adresa de e-mail și creați o cheie API în consolă. Cheile de test funcționează imediat, înainte de a conecta vreun canal.
- Pasul 02
Conectați un canal
Autentificați-vă cu Facebook sau TikTok în consolă pentru a conecta un număr WhatsApp, o Pagină sau un cont de companie. Adăugați un bot Telegram sau un număr Twilio cu datele sale de acces, din consolă sau cu
POST /v1/channels. - Pasul 03
Trimiteți printr-un singur endpoint
POST /v1/messagesprimește un ID de canal, un destinatar și un obiect de conținut tipizat. Structura cererii este aceeași pe toate canalele. - Pasul 04
Urmăriți fiecare livrare
Webhookurile semnate raportează stările trimis, livrat, citit și eșuat. Același istoric se găsește în consolă și la
GET /v1/messages.
Tipuri de mesaje
Ce trimiteți este exact ce văd destinatarii
Fiecare mesaj are un tip și un obiect de conținut sub cheia acelui tip. Alegeți unul pentru a vedea corpul cererii alături de mesajul pe care îl produce.
{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": {
"body": "Comanda dvs. #1042 a fost expediată. O puteți urmări la https://example.com/t/1042",
"preview_url": true
},
"reference": "order-1042"
}Text simplu, acceptat de toate tipurile de canale. Setați preview_url pentru a permite canalului să afișeze o previzualizare a linkului.
CanaleWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram și TikTok
Consolă
O consolă pentru tot ce nu este cod
Creați chei, conectați canale, căutați în jurnalul de mesaje, retrimiteți livrări webhook și gestionați facturarea. Tot ce afișează consola este disponibil și prin API.
Prețuri
Plătiți per mesaj sau cumpărați mesaje în volum
Alimentați un portofel preplătit începând de la 10 $ și plătiți prețul per mesaj al fiecărui canal sau cumpărați un pachet de credite de mesaje pentru volumul de pe canalele dvs. cele mai scumpe.
10 K de mesaje
8 $
0,0008 $ per mesaj
- 10.000 de mesaje de ieșire
- Valabil 3 luni de la cumpărare
- Valabil pe toate tipurile de canale
100 K de mesaje
Recomandat60 $
0,0006 $ per mesaj
- 100.000 de mesaje de ieșire
- Valabil 6 luni de la cumpărare
- Valabil pe toate tipurile de canale
1 mil. de mesaje
400 $
0,0004 $ per mesaj
- 1.000.000 de mesaje de ieșire
- Valabil 12 luni de la cumpărare
- Valabil pe toate tipurile de canale
Plată la utilizare
| Canal | Per mesaj |
|---|---|
| WhatsApp Business | 0,001 $ |
| Telegram | 0,0003 $ |
| SMS | 0,0005 $ |
| SMS OTP | 0,0005 $ |
| Messenger | 0,0005 $ |
| 0,0005 $ | |
| TikTok | 0,0005 $ |
Ce acoperă prețul
- FacturatMesajele de ieșire acceptate de API, în momentul în care sunt acceptate.
- GratuitMesajele de intrare, mesajele din modul de test, webhookurile și consola.
- RambursatOrice mesaj care se încheie ca eșuat, înapoi în pachetul sau portofelul din care a fost plătit.
- SeparatTarifele percepute de Meta, de operatori sau de alți furnizori pentru canalul în sine.
Experiența dezvoltatorului
Construit pentru a fi integrat o dată și lăsat să meargă
Webhookuri semnate, reîncercări sigure, un sandbox care se comportă ca producția și erori pe care puteți ramifica logica.
Webhookuri pe care le puteți verifica
Fiecare livrare este semnată cu HMAC-SHA256 peste marca temporală și corpul brut, în antetul OmniMessage-Signature. Răspundeți cu orice cod 2xx în 10 secunde. Livrările eșuate sunt reîncercate de opt ori, la intervale crescătoare, de la 30 de secunde până la 24 de ore.
import { createHmac, timingSafeEqual } from 'node:crypto';
// header is "t=<unix seconds>,v1=<hex hmac-sha256>"
export function verifySignature(rawBody, header, secret) {
const parts = header.split(',').map((part) => part.split('='));
const { t, v1 = '' } = Object.fromEntries(parts);
const expected = createHmac('sha256', secret)
.update(`${t}.${rawBody}`)
.digest('hex');
const fresh = Math.abs(Date.now() / 1000 - Number(t)) < 300;
const matches =
v1.length === expected.length &&
timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
return fresh && matches;
}{
"id": "evt_8Kd2pQ7wN4xB1zR6mT3c",
"object": "event",
"type": "message.delivered",
"mode": "live",
"created_at": "2026-10-05T09:30:02.900Z",
"data": {
"object": {
"id": "msg_2b1Xw9aQ3rT8yU0pL4kZ",
"object": "message",
"status": "delivered",
"reference": "order-1042",
"delivered_at": "2026-10-05T09:30:02.871Z"
}
}
}Un mod de test care nu costă nimic
Cheile de test folosesc canale sandbox încorporate, așa că nu aveți nimic de conectat. Ultimele cifre ale destinatarului decid rezultatul simulat, iar webhookurile dvs. se declanșează la fel ca în producție.
curl https://api.omnimessage.co/v1/messages \
-H "Authorization: Bearer om_test_..." \
-H "Content-Type: application/json" \
-d '{
"channel": "ch_test_whatsapp",
"to": "+971501230002",
"type": "text",
"text": { "body": "Hello from the sandbox" }
}'Erori cu tip și cod
Orice răspuns non-2xx are același corp: un type pentru clasa de eroare, un code stabil pe care să ramificați logica, parametrul param în cauză, acolo unde există, și un request_id pentru asistență.
{
"error": {
"type": "billing_error",
"code": "insufficient_balance",
"message": "Not enough wallet balance or package credits.",
"request_id": "req_5Vn1cH8jL3qW6yD9sF2k",
"doc_url": "https://omnimessage.co/docs/errors#insufficient_balance"
}
}Cereri POST idempotente
Trimiteți un antet
Idempotency-Key, iar o reîncercare în 24 de ore returnează răspunsul stocat, cuIdempotent-Replayed: true, fără a trimite sau a taxa de două ori.Limite previzibile
100 de cereri pe secundă per cheie pe
POST /v1/messages, 20 în rest. Fiecare răspuns conțineRateLimit-Remaining, iar un 429 conțineRetry-After.Trimitere în loturi
POST /v1/messages/batchacceptă până la 100 de mesaje. Fiecare element este acceptat, respins și facturat separat, iar răspunsul 207 le raportează după index.Chei cu permisiuni limitate
Acordați fiecărei chei doar permisiunile de care are nevoie, de exemplu
messages:writesaubilling:read, și restricționați-o la o listă de adrese IP permise.
Întrebări
Înainte de integrare
Răspunsurile scurte. Cele lungi sunt în documentație.
Am nevoie de propriul număr WhatsApp, bot sau număr de SMS?
Da. OmniMessage este un gateway la care veniți cu propriul canal: vă conectați propriul număr WhatsApp Cloud API, bot Telegram, număr Twilio sau cont de social media și rămâneți proprietarul lui. Pagina de canale arată ce necesită fiecare tip.
Pentru ce anume sunt taxat?
O singură taxare pentru fiecare mesaj de ieșire acceptat de API: un credit din pachet, dacă aveți, altfel prețul per mesaj al tipului de canal, din portofel. Mesajele de intrare și cele din modul de test sunt gratuite, iar un mesaj care se încheie ca eșuat este rambursat automat.
Tarifele Meta, ale operatorilor sau ale furnizorilor sunt incluse?
Nu. Tariful gateway-ului acoperă API-ul, urmărirea livrării, webhookurile și consola. Tarifele pe care Meta, Twilio sau alt furnizor le percepe pentru canalul în sine rămân între dvs. și acel furnizor.
Cum testez fără să trimit mesaje reale?
Folosiți o cheie care începe cu om_test_. Fiecare cont are câte un canal sandbox pentru fiecare tip, de exemplu ch_test_whatsapp. Nimic nu este livrat sau facturat, iar stările sunt simulate: un destinatar care se termină în 0000 eșuează, 0001 rămâne trimis, 0002 este și citit, iar orice altceva este livrat în aproximativ două secunde.
Ce se întâmplă când mi se termină soldul?
API-ul răspunde cu 402 insufficient_balance și nimic nu intră în coadă, deci nu ajungeți niciodată să datorați bani ulterior. Vă puteți abona la evenimentul balance.low sau puteți activa alimentarea automată, care alimentează portofelul când scade sub un prag ales de dvs.
Am nevoie de un SDK?
Nu. API-ul este JSON peste HTTPS, cu autentificare bearer, deci funcționează orice client HTTP. Documentația conține exemple în cURL, Node, Python și PHP.
Trimiteți chiar azi primul mesaj în modul de test
Creați un cont, copiați o cheie de test și apelați API-ul înainte de a conecta vreun canal. Fiecare cont nou pornește cu 100 de mesaje gratuite.