Pereiti prie turinio

Žinučių šliuzo API

Viena API visiems žinučių kanalams

Siųskite „WhatsApp Business“, SMS, „Telegram“, „Messenger“, „Instagram“ ir „TikTok“ žinutes per vieną REST galinį tašką. Išankstinis apmokėjimas, mokama už kiekvieną siunčiamąją žinutę, su pristatymo webhook’ais ir bandomuoju režimu.

Nuo
0,0003 $
už siunčiamąją žinutę
Užsiregistravus
100
nemokamų žinučių
Įsipareigojimas
Nėra
iš anksto apmokama, be sutarties
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
}
  • Kanalų tipai7 už vieno galinio taško
  • Žinučių tipai9, nuo teksto iki interaktyvių sąrašų
  • Kaina nuo0,0003 $ už siunčiamąją žinutę
  • Užklausų limitas100 užklausų per sekundę vienam raktui
  • Paketinio siuntimo dydisIki 100 žinučių vienoje užklausoje
  • Webhook’ų kartojimai8, didėjančiu intervalu nuo 30 sekundžių iki 24 valandų
  • Idempotentiškumo langas24 valandos
  • Bandomasis režimasNemokamai, kanalo nereikia
  • Nepavykusios žinutėsMokestis grąžinamas automatiškai
  • Gaunamosios žinutėsNemokamai

Kaip tai veikia

Nuo registracijos iki pristatytos žinutės keturiais žingsniais

Jokių pokalbių su pardavėjais ir jokių minimalių įsipareigojimų. Pirmąjį API iškvietimą bandomuoju režimu galite atlikti praėjus minutei nuo paskyros sukūrimo.

  1. 01 žingsnis

    Susikurkite paskyrą

    Užsiregistruokite, patvirtinkite el. paštą ir konsolėje sukurkite API raktą. Bandomieji raktai veikia iš karto, dar neprijungus nė vieno kanalo.

  2. 02 žingsnis

    Prijunkite kanalą

    Norėdami prijungti „WhatsApp“ numerį, puslapį ar verslo paskyrą, konsolėje prisijunkite per „Facebook“ arba „TikTok“. „Telegram“ botą ar „Twilio“ numerį pridėkite pateikdami jo prisijungimo duomenis – konsolėje arba užklausa POST /v1/channels.

  3. 03 žingsnis

    Siųskite per vieną galinį tašką

    POST /v1/messages priima kanalo ID, gavėją ir tipizuotą turinio objektą. Užklausos forma visuose kanaluose vienoda.

  4. 04 žingsnis

    Sekite kiekvieną pristatymą

    Pasirašyti webhook’ai praneša būsenas: išsiųsta, pristatyta, perskaityta ir nepavyko. Ta pati istorija pateikiama konsolėje ir per GET /v1/messages.

Žinučių tipai

Ką išsiunčiate, tą gavėjas ir mato

Kiekviena žinutė turi tipą ir turinio objektą po to tipo raktu. Pasirinkite vieną ir pamatysite užklausos turinį šalia žinutės, kurią jis sukuria.

POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Jūsų užsakymas #1042 išsiųstas. Sekite jį čia: https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}

Paprastas tekstas, kurį priima visi kanalų tipai. Nustatykite preview_url, kad kanalas atvaizduotų nuorodos peržiūrą.

KanalaiWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram ir TikTok

Konsolė

Konsolė viskam, kas nėra kodas

Kurkite raktus, prijunkite kanalus, ieškokite žinučių žurnale, kartokite webhook’ų pristatymus ir tvarkykite atsiskaitymą. Viskas, ką rodo konsolė, pasiekiama ir per API.

Apžvalga. Piniginės likutis, likę paketo kreditai ir paskutinių 30 dienų siunčiamųjų žinučių srautas – pagal paskyrą ir pagal režimą. Šio puslapio ekrano vaizdai sukurti naudojant pavyzdinius duomenis.
Žinučių žurnalas. Filtruokite pagal kanalą, būseną, gavėją ar savo nuorodos kodą ir atidarykite bet kurią žinutę – pamatysite jos būsenų istoriją ir kiek už ją nuskaičiuota.
Atsiskaitymas. Papildykite piniginę, pirkite paketus, nustatykite automatinį papildymą ir atsisiųskite kvitus. Prie paketo kreditų rodoma, kiek jų liko ir kada baigiasi jų galiojimas.

Kainos

Mokėkite už žinutę arba pirkite žinutes urmu

Papildykite išankstinio apmokėjimo piniginę nuo 10 $ ir mokėkite kiekvieno kanalo žinutės kainą arba pirkite žinučių kreditų paketą dideliam srautui brangiausiuose savo kanaluose.

10 tūkst. žinučių

8 $

0,0008 $ už žinutę

  • Siunčiamosios žinutės: 10 000
  • Galioja 3 mėnesius nuo pirkimo
  • Galioja visų tipų kanaluose
Pradėti nuo paketo „10 tūkst.“

100 tūkst. žinučių

Rekomenduojamas

60 $

0,0006 $ už žinutę

  • Siunčiamosios žinutės: 100 000
  • Galioja 6 mėnesius nuo pirkimo
  • Galioja visų tipų kanaluose
Pradėti nuo paketo „100 tūkst.“

1 mln. žinučių

400 $

0,0004 $ už žinutę

  • Siunčiamosios žinutės: 1 000 000
  • Galioja 12 mėnesių nuo pirkimo
  • Galioja visų tipų kanaluose
Pradėti nuo paketo „1 mln.“

Mokėjimas pagal sunaudojimą

Siunčiamosios žinutės kaina pagal sunaudojimą pagal kanalo tipą, JAV doleriais
KanalasUž žinutę
WhatsApp Business0,001 $
SMS0,0005 $
SMS OTP0,0005 $
Telegram0,0003 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,0005 $

Kas įskaičiuota į kainą

  • ApmokestinamaAPI priimtos siunčiamosios žinutės – tuo metu, kai jos priimamos.
  • NemokamaiGaunamosios žinutės, bandomojo režimo žinutės, webhook’ai ir konsolė.
  • GrąžinamaBet kuri žinutė, kurios galutinė būsena yra „nepavyko“, – atgal į paketą arba piniginę, iš kurių už ją sumokėta.
  • AtskiraiMokesčiai, kuriuos už patį kanalą ima „Meta“, operatoriai ar kiti teikėjai.

Kūrėjų patirtis

Sukurta taip, kad integruotumėte kartą ir pamirštumėte

Pasirašyti webhook’ai, saugūs pakartotiniai bandymai, smėliadėžė, veikianti kaip gamybinė aplinka, ir klaidos, pagal kurias galima šakoti kodą.

Webhook’ai, kuriuos galite patikrinti

Kiekvienas pristatymas pasirašomas HMAC-SHA256 pagal laiko žymą ir neapdorotą turinį; parašas pateikiamas antraštėje OmniMessage-Signature. Atsakykite bet kuriuo 2xx kodu per 10 sekundžių. Nepavykę pristatymai kartojami aštuonis kartus didėjančiu intervalu – nuo 30 sekundžių iki 24 valandų.

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;
}
Įvykis 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"
    }
  }
}

Bandomasis režimas, kuris nieko nekainuoja

Bandomieji raktai naudoja integruotus smėliadėžės kanalus, todėl nieko prijungti nereikia. Paskutiniai gavėjo skaitmenys lemia imituojamą rezultatą, o jūsų webhook’ai iškviečiami taip pat, kaip gamybinėje aplinkoje.

Smėliadėžės užklausa, baigiasi būsena „perskaityta“
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" }
  }'

Klaidos su tipu ir kodu

Kiekvieno ne 2xx atsakymo turinys vienodas: type – gedimo klasė, stabilus code, pagal kurį galima šakoti kodą, klaidingas param, jei toks yra, ir request_id pagalbos tarnybai.

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"
  }
}
  • Idempotentinės POST užklausos

    Siųskite antraštę Idempotency-Key, ir per 24 valandas pakartota užklausa grąžins išsaugotą atsakymą su Idempotent-Replayed: true – žinutė nebus nei išsiųsta, nei apmokestinta antrą kartą.

  • Nuspėjami limitai

    100 užklausų per sekundę vienam raktui galiniame taške POST /v1/messages, 20 – kituose. Kiekviename atsakyme pateikiama RateLimit-Remaining, o atsakyme su kodu 429 – Retry-After.

  • Paketinis siuntimas

    POST /v1/messages/batch priima iki 100 žinučių. Kiekvienas elementas priimamas, atmetamas ir apmokestinamas atskirai, o atsakymas su kodu 207 apie juos praneša pagal indeksą.

  • Raktai su leidimais

    Kiekvienam raktui suteikite tik jam reikalingus leidimus, pavyzdžiui, messages:write arba billing:read, ir apribokite jį leidžiamų IP adresų sąrašu.

Klausimai

Prieš integruojant

Trumpi atsakymai. Ilgieji – dokumentacijoje.

Ar man reikia savo „WhatsApp“ numerio, boto arba SMS numerio?

Taip. „OmniMessage“ yra šliuzas, kuriame naudojate savo pačių kanalus: prijungiate savo „WhatsApp Cloud API“ numerį, „Telegram“ botą, „Twilio“ numerį ar socialinio tinklo paskyrą, ir jie toliau priklauso jums. Kanalų puslapyje nurodyta, ko reikia kiekvienam tipui.

Už ką tiksliai moku?

Vienas mokestis už kiekvieną API priimtą siunčiamąją žinutę: paketo kreditas, jei jį turite, o jei ne – kanalo tipo žinutės kaina iš jūsų piniginės. Gaunamosios ir bandomojo režimo žinutės nemokamos, o mokestis už žinutę, kurios galutinė būsena yra „nepavyko“, grąžinamas automatiškai.

Ar „Meta“, operatorių ar teikėjų mokesčiai įskaičiuoti?

Ne. Šliuzo mokestis apima API, pristatymo sekimą, webhook’us ir konsolę. Mokesčiai, kuriuos už patį kanalą ima „Meta“, „Twilio“ ar kitas teikėjas, lieka tarp jūsų ir to teikėjo.

Kaip testuoti nesiunčiant tikrų žinučių?

Naudokite raktą, prasidedantį om_test_. Kiekviena paskyra turi po vieną kiekvieno tipo smėliadėžės kanalą, pavyzdžiui, ch_test_whatsapp. Niekas nepristatoma, už nieką neimamas mokestis, o būsenos imituojamos: žinutė gavėjui, kurio numeris baigiasi 0000, nepavyksta, 0001 – lieka būsenos „išsiųsta“, 0002 – dar ir perskaitoma, o visos kitos pristatomos maždaug per dvi sekundes.

Kas nutinka, kai mano likutis baigiasi?

API atsako 402 insufficient_balance ir niekas neįtraukiama į eilę, todėl niekada neliekate skolingi. Galite prenumeruoti įvykį balance.low arba įjungti automatinį papildymą, kad piniginė būtų papildoma, kai likutis nukrenta žemiau jūsų pasirinktos ribos.

Ar man reikia SDK?

Ne. API – tai JSON per HTTPS su „bearer“ autentifikavimu, todėl tinka bet kuris HTTP klientas. Dokumentacijoje rasite „cURL“, „Node“, „Python“ ir PHP pavyzdžių.

Išsiųskite pirmąją žinutę bandomuoju režimu jau šiandien

Susikurkite paskyrą, nusikopijuokite bandomąjį raktą ir iškvieskite API dar neprijungę nė vieno kanalo. Kiekviena nauja paskyra pradžioje gauna 100 nemokamų žinučių.