Pāriet uz saturu

Ziņapmaiņas vārtejas API

Viens API visiem ziņapmaiņas kanāliem

Sūtiet WhatsApp Business, SMS, Telegram, Messenger, Instagram un TikTok ziņas caur vienu REST galapunktu. Priekšapmaksa, maksa par katru izejošo ziņu, piegādes tīmekļa aizķeres un testa režīms.

No
0,0003 $
par izejošo ziņu
Reģistrējoties
100
bezmaksas ziņu
Saistības
Nav
priekšapmaksa, bez līguma
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
}
  • Kanālu veidi7 aiz viena galapunkta
  • Ziņu veidi9, no teksta līdz interaktīviem sarakstiem
  • Cena no0,0003 $ par izejošo ziņu
  • Pieprasījumu limits100 pieprasījumi sekundē katrai atslēgai
  • Pakešsūtījuma lielumsLīdz 100 ziņām vienā pieprasījumā
  • Tīmekļa aizķeru atkārtojumi8, ar pieaugošu intervālu no 30 sekundēm līdz 24 stundām
  • Idempotences logs24 stundas
  • Testa režīmsBez maksas, kanāls nav vajadzīgs
  • Neizdevušās ziņasMaksa tiek atmaksāta automātiski
  • Ienākošās ziņasBez maksas

Kā tas darbojas

No reģistrācijas līdz piegādātai ziņai četros soļos

Nav ne pārdošanas zvanu, ne minimālo saistību. Pirmo API izsaukumu testa režīmā varat veikt minūti pēc konta izveides.

  1. 01. solis

    Izveidojiet kontu

    Reģistrējieties, apstipriniet savu e-pastu un konsolē izveidojiet API atslēgu. Testa atslēgas darbojas uzreiz, vēl pirms pievienots kaut viens kanāls.

  2. 02. solis

    Pievienojiet kanālu

    Lai pievienotu WhatsApp numuru, lapu vai uzņēmuma kontu, konsolē pierakstieties ar Facebook vai TikTok. Telegram botu vai Twilio numuru pievienojiet ar tā akreditācijas datiem – konsolē vai ar POST /v1/channels.

  3. 03. solis

    Sūtiet caur vienu galapunktu

    POST /v1/messages saņem kanāla ID, saņēmēju un tipizētu satura objektu. Pieprasījuma forma visos kanālos ir vienāda.

  4. 04. solis

    Izsekojiet katru piegādi

    Parakstītas tīmekļa aizķeres ziņo par statusiem – nosūtīta, piegādāta, izlasīta un neizdevās. Tā pati vēsture ir pieejama konsolē un ar GET /v1/messages.

Ziņu veidi

Ko nosūtāt, to saņēmējs arī redz

Katrai ziņai ir veids un satura objekts zem šī veida atslēgas. Izvēlieties kādu, lai redzētu pieprasījuma pamattekstu līdzās ziņai, ko tas izveido.

POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Jūsu pasūtījums #1042 ir izsūtīts. Sekojiet tam šeit: https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}

Vienkāršs teksts, ko pieņem visi kanālu veidi. Iestatiet preview_url, lai kanāls attēlotu saites priekšskatījumu.

KanāliWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram un TikTok

Konsole

Konsole visam, kas nav kods

Veidojiet atslēgas, pievienojiet kanālus, meklējiet ziņu žurnālā, atkārtojiet tīmekļa aizķeru piegādes un pārvaldiet norēķinus. Viss, ko rāda konsole, ir pieejams arī ar API.

Pārskats. Maka atlikums, atlikušie paketes kredīti un izejošo ziņu apjoms pēdējās 30 dienās – katram kontam un katram režīmam. Šīs lapas ekrānskati ir veidoti ar parauga datiem.
Ziņu žurnāls. Filtrējiet pēc kanāla, statusa, saņēmēja vai pašu atsauces un atveriet jebkuru ziņu, lai redzētu tās statusu vēsturi un to, cik par to iekasēts.
Norēķini. Papildiniet maku, pērciet paketes, iestatiet automātisko papildināšanu un lejupielādējiet kvītis. Pie paketes kredītiem redzams, cik to atlicis un kad beidzas to derīgums.

Cenas

Maksājiet par katru ziņu vai pērciet ziņas vairumā

Papildiniet priekšapmaksas maku, sākot no 10 $, un maksājiet katra kanāla cenu par ziņu vai pērciet ziņu kredītu paketi lielam apjomam savos dārgākajos kanālos.

10 tūkst. ziņu

8 $

0,0008 $ par ziņu

  • Izejošās ziņas: 10 000
  • Derīga 3 mēnešus no iegādes brīža
  • Derīga visos kanālu veidos
Sākt ar paketi „10 tūkst.”

100 tūkst. ziņu

Ieteicamā

60 $

0,0006 $ par ziņu

  • Izejošās ziņas: 100 000
  • Derīga 6 mēnešus no iegādes brīža
  • Derīga visos kanālu veidos
Sākt ar paketi „100 tūkst.”

1 milj. ziņu

400 $

0,0004 $ par ziņu

  • Izejošās ziņas: 1 000 000
  • Derīga 12 mēnešu no iegādes brīža
  • Derīga visos kanālu veidos
Sākt ar paketi „1 milj.”

Maksa pēc patēriņa

Cena pēc patēriņa par izejošo ziņu pa kanālu veidiem, ASV dolāros
KanālsPar ziņu
WhatsApp Business0,001 $
SMS0,0005 $
SMS OTP0,0005 $
Telegram0,0003 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,0005 $

Kas iekļauts cenā

  • Par maksuIzejošās ziņas, ko API pieņēmis, – brīdī, kad tās tiek pieņemtas.
  • Bez maksasIenākošās ziņas, testa režīma ziņas, tīmekļa aizķeres un konsole.
  • Tiek atmaksātsJebkura ziņa, kuras galīgais statuss ir „neizdevās”, – atpakaļ paketē vai makā, no kura par to samaksāts.
  • AtsevišķiMaksas, ko par pašu kanālu iekasē Meta, operatori vai citi pakalpojumu sniedzēji.

Izstrādātāju pieredze

Veidots, lai integrētu vienreiz un par to vairs nedomātu

Parakstītas tīmekļa aizķeres, droši atkārtoti mēģinājumi, smilškaste, kas uzvedas kā produkcijas vide, un kļūdas, pēc kurām var sazarot kodu.

Pārbaudāmas tīmekļa aizķeres

Katra piegāde ir parakstīta ar HMAC-SHA256 no laikspiedola un neapstrādāta pamatteksta; paraksts ir galvenē OmniMessage-Signature. Atbildiet ar jebkuru 2xx kodu 10 sekunžu laikā. Neizdevušās piegādes tiek atkārtotas astoņas reizes ar pieaugošu intervālu – no 30 sekundēm līdz 24 stundām.

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;
}
Notikums 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"
    }
  }
}

Testa režīms, kas neko nemaksā

Testa atslēgas izmanto iebūvētus smilškastes kanālus, tāpēc nekas nav jāpievieno. Saņēmēja pēdējie cipari nosaka simulēto iznākumu, un jūsu tīmekļa aizķeres tiek izsauktas tāpat kā produkcijas vidē.

Smilškastes pieprasījums, beidzas ar statusu „izlasīta”
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" }
  }'

Kļūdas ar tipu un kodu

Katrai atbildei, kas nav 2xx, ir vienāds pamatteksts: type – kļūmes klase, stabils code, pēc kura sazarot kodu, kļūdainais param, ja tāds ir, un request_id atbalsta dienestam.

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"
  }
}
  • Idempotenti POST pieprasījumi

    Nosūtiet galveni Idempotency-Key, un atkārtots mēģinājums 24 stundu laikā atgriezīs saglabāto atbildi ar Idempotent-Replayed: true – ziņa netiks ne nosūtīta, ne apmaksāta divreiz.

  • Paredzami limiti

    100 pieprasījumi sekundē katrai atslēgai galapunktā POST /v1/messages, 20 – pārējos. Katrā atbildē ir RateLimit-Remaining, un atbildē ar kodu 429 – Retry-After.

  • Pakešsūtīšana

    POST /v1/messages/batch pieņem līdz 100 ziņām. Katrs vienums tiek pieņemts, noraidīts un apmaksāts atsevišķi, un atbilde ar kodu 207 par tiem ziņo pēc indeksa.

  • Atslēgas ar tvērumiem

    Piešķiriet katrai atslēgai tikai tai vajadzīgos tvērumus, piemēram, messages:write vai billing:read, un ierobežojiet to ar atļauto IP adrešu sarakstu.

Jautājumi

Pirms integrācijas

Īsās atbildes. Garās ir dokumentācijā.

Vai man vajadzīgs savs WhatsApp numurs, bots vai SMS numurs?

Jā. OmniMessage ir vārteja, kurā izmantojat paši savus kanālus: jūs pievienojat savu WhatsApp Cloud API numuru, Telegram botu, Twilio numuru vai sociālā tīkla kontu, un tas joprojām pieder jums. Kanālu lapā ir norādīts, kas vajadzīgs katram veidam.

Par ko tieši man jāmaksā?

Viena maksa par katru izejošo ziņu, ko API pieņem: paketes kredīts, ja jums tāds ir, citādi – kanāla veida cena par ziņu no jūsu maka. Ienākošās ziņas un testa režīma ziņas ir bez maksas, un par ziņu, kuras galīgais statuss ir „neizdevās”, maksa tiek atmaksāta automātiski.

Vai Meta, operatoru vai pakalpojumu sniedzēju maksas ir iekļautas?

Nē. Vārtejas maksa sedz API, piegādes izsekošanu, tīmekļa aizķeres un konsoli. Maksas, ko par pašu kanālu iekasē Meta, Twilio vai cits pakalpojumu sniedzējs, paliek starp jums un šo pakalpojumu sniedzēju.

Kā testēt, nesūtot īstas ziņas?

Izmantojiet atslēgu, kas sākas ar om_test_. Katram kontam ir pa vienam smilškastes kanālam katram veidam, piemēram, ch_test_whatsapp. Nekas netiek piegādāts, par to nav jāmaksā, un statusi tiek simulēti: ziņa saņēmējam, kura numurs beidzas ar 0000, neizdodas, ar 0001 – paliek statusā „nosūtīta”, ar 0002 – tiek arī izlasīta, bet visas pārējās tiek piegādātas aptuveni divu sekunžu laikā.

Kas notiek, kad mans atlikums ir iztērēts?

API atbild ar 402 insufficient_balance, un nekas netiek ievietots rindā, tāpēc jums nekad neveidojas parāds. Varat abonēt notikumu balance.low vai ieslēgt automātisko papildināšanu, lai maks tiktu papildināts, kad atlikums nokrītas zem jūsu izvēlēta sliekšņa.

Vai man vajadzīgs SDK?

Nē. API ir JSON, izmantojot HTTPS, ar „bearer” autentifikāciju, tāpēc der jebkurš HTTP klients. Dokumentācijā ir piemēri cURL, Node, Python un PHP.

Nosūtiet pirmo ziņu testa režīmā jau šodien

Izveidojiet kontu, nokopējiet testa atslēgu un izsauciet API, vēl pirms esat pievienojis kaut vienu kanālu. Katrs jauns konts sākumā saņem 100 bezmaksas ziņu.