Salt la conținut

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"
  }'
202 Accepted
{
  "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
}
  • Tipuri de canale7 în spatele unui singur endpoint
  • Tipuri de mesaje9, de la text la liste interactive
  • Preț de la0,0003 $ per mesaj de ieșire
  • Limită de rată100 de cereri pe secundă per cheie
  • Dimensiunea lotuluiPână la 100 de mesaje per cerere
  • Reîncercări webhook8, la intervale crescătoare, de la 30 de secunde la 24 de ore
  • Fereastră de idempotență24 de ore
  • Mod de testGratuit, fără niciun canal
  • Mesaje eșuateRambursate automat
  • Mesaje de intrareGratuite

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.

  1. 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.

  2. 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.

  3. Pasul 03

    Trimiteți printr-un singur endpoint

    POST /v1/messages primește un ID de canal, un destinatar și un obiect de conținut tipizat. Structura cererii este aceeași pe toate canalele.

  4. 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.

POST /v1/messages
{
  "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.

Prezentare generală. Soldul portofelului, creditele rămase din pachete și volumul de ieșire din ultimele 30 de zile, per cont și per mod. Cadrele de pe această pagină sunt desenate cu date de exemplu.
Jurnalul de mesaje. Filtrați după canal, stare, destinatar sau propria referință și deschideți orice mesaj pentru a-i vedea istoricul stărilor și cât a costat.
Facturare. Alimentați portofelul, cumpărați pachete, configurați alimentarea automată și descărcați chitanțe. Creditele din pachete arată cât a rămas și când expiră.

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
Începeți cu 10 K

100 K de mesaje

Recomandat

60 $

0,0006 $ per mesaj

  • 100.000 de mesaje de ieșire
  • Valabil 6 luni de la cumpărare
  • Valabil pe toate tipurile de canale
Începeți cu 100 K

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
Începeți cu 1 mil.

Plată la utilizare

Prețul plății la utilizare per mesaj de ieșire, pe tipuri de canale, în dolari americani
CanalPer mesaj
WhatsApp Business0,001 $
Telegram0,0003 $
SMS0,0005 $
SMS OTP0,0005 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,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.

verify-signature.js
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;
}
Evenimentul message.delivered
{
  "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.

Cerere sandbox, se încheie ca citită
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ță.

402 Payment Required
{
  "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, cu Idempotent-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ține RateLimit-Remaining, iar un 429 conține Retry-After.

  • Trimitere în loturi

    POST /v1/messages/batch acceptă 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:write sau billing: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.