Přejít k obsahu

API brány pro zprávy

Jedno API pro všechny komunikační kanály

Odesílejte zprávy přes WhatsApp Business, SMS, Telegram, Messenger, Instagram a TikTok jediným REST endpointem. Předplaceně, s účtováním za odchozí zprávu, s webhooky o doručení a testovacím režimem.

Od
0,0003 $
za odchozí zprávu
Při registraci
100
zpráv zdarma
Závazek
Žádný
předplaceně, bez smlouvy
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
}
  • Typy kanálů7 za jedním endpointem
  • Typy zpráv9, od textu po interaktivní seznamy
  • Cena od0,0003 $ za odchozí zprávu
  • Limit požadavků100 požadavků za sekundu na klíč
  • Velikost dávkyAž 100 zpráv v jednom požadavku
  • Opakování webhooků8, s rostoucí prodlevou od 30 sekund do 24 hodin
  • Okno idempotence24 hodin
  • Testovací režimZdarma, bez připojeného kanálu
  • Neúspěšné zprávyVracejí se automaticky
  • Příchozí zprávyZdarma

Jak to funguje

Od registrace k doručené zprávě ve čtyřech krocích

Žádný hovor s obchodníkem, žádný minimální závazek. První volání API v testovacím režimu zvládnete minutu po vytvoření účtu.

  1. Krok 01

    Vytvořte si účet

    Zaregistrujte se, ověřte e-mail a v konzoli vytvořte klíč API. Testovací klíče fungují okamžitě, ještě před připojením kanálu.

  2. Krok 02

    Připojte kanál

    Přihlaste se v konzoli přes Facebook nebo TikTok a připojte číslo WhatsApp, stránku nebo firemní účet. Bota na Telegramu nebo číslo Twilio přidejte pomocí přihlašovacích údajů, v konzoli nebo voláním POST /v1/channels.

  3. Krok 03

    Odesílejte jedním endpointem

    POST /v1/messages přijímá ID kanálu, příjemce a typovaný objekt s obsahem. Podoba požadavku je na všech kanálech stejná.

  4. Krok 04

    Sledujte každé doručení

    Podepsané webhooky hlásí stavy odesláno, doručeno, přečteno a selhalo. Stejnou historii najdete v konzoli i na GET /v1/messages.

Typy zpráv

Co odešlete, to příjemce uvidí

Každá zpráva má typ a objekt s obsahem pod klíčem tohoto typu. Vyberte si některý a uvidíte tělo požadavku vedle zprávy, která z něj vznikne.

POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Vaše objednávka #1042 byla odeslána. Sledovat ji můžete na https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}

Prostý text, který přijímají všechny typy kanálů. Nastavením preview_url umožníte kanálu zobrazit náhled odkazu.

KanályWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram a TikTok

Konzole

Konzole pro všechno, co není kód

Vytvářejte klíče, připojujte kanály, hledejte v protokolu zpráv, opakujte doručení webhooků a spravujte fakturaci. Vše, co konzole zobrazuje, je dostupné i přes API.

Přehled. Zůstatek peněženky, zbývající kredity z balíčků a objem odchozích zpráv za posledních 30 dní, podle účtu a režimu. Ukázky na této stránce jsou vykresleny se vzorovými daty.
Protokol zpráv. Filtrujte podle kanálu, stavu, příjemce nebo vlastní reference a otevřete libovolnou zprávu, abyste viděli historii jejích stavů a kolik stála.
Fakturace. Dobíjejte peněženku, kupujte balíčky, nastavte automatické dobíjení a stahujte účtenky. U kreditů z balíčků vidíte, kolik jich zbývá a kdy vyprší.

Ceník

Plaťte za zprávu, nebo kupte zprávy ve velkém

Dobijte si předplacenou peněženku od 10 $ a plaťte cenu za zprávu podle kanálu, nebo si kupte balíček kreditů na zprávy pro větší objemy na svých nejdražších kanálech.

10 tis. zpráv

8 $

0,0008 $ za zprávu

  • 10 000 odchozích zpráv
  • Platí 3 měsíce od nákupu
  • Platí pro všechny typy kanálů
Začít s balíčkem 10 tis.

100 tis. zpráv

Doporučujeme

60 $

0,0006 $ za zprávu

  • 100 000 odchozích zpráv
  • Platí 6 měsíců od nákupu
  • Platí pro všechny typy kanálů
Začít s balíčkem 100 tis.

1 mil. zpráv

400 $

0,0004 $ za zprávu

  • 1 000 000 odchozích zpráv
  • Platí 12 měsíců od nákupu
  • Platí pro všechny typy kanálů
Začít s balíčkem 1 mil.

Průběžná platba

Cena průběžné platby za odchozí zprávu podle typu kanálu, v amerických dolarech
KanálZa zprávu
WhatsApp Business0,001 $
Telegram0,0003 $
SMS0,0005 $
SMS OTP0,0005 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,0005 $

Co cena zahrnuje

  • Účtuje seOdchozí zprávy přijaté rozhraním API, a to v okamžiku přijetí.
  • ZdarmaPříchozí zprávy, zprávy v testovacím režimu, webhooky a konzole.
  • Vrací seKaždá zpráva, která skončí jako neúspěšná, a to do balíčku nebo peněženky, odkud byla zaplacena.
  • ZvlášťPoplatky, které si za samotný kanál účtuje Meta, operátoři nebo jiní poskytovatelé.

Pro vývojáře

Navrženo tak, abyste integrovali jednou a pak už na to nemuseli sahat

Podepsané webhooky, bezpečné opakování, sandbox, který se chová jako produkce, a chyby, podle kterých lze větvit kód.

Webhooky, které si můžete ověřit

Každé doručení je podepsáno pomocí HMAC-SHA256 nad časovým razítkem a nezpracovaným tělem, v hlavičce OmniMessage-Signature. Odpovězte libovolným kódem 2xx do 10 sekund. Neúspěšná doručení se opakují osmkrát s rostoucí prodlevou, od 30 sekund až po 24 hodin.

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;
}
Událost 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"
    }
  }
}

Testovací režim, který nic nestojí

Testovací klíče používají vestavěné sandboxové kanály, takže není co připojovat. O simulovaném výsledku rozhodují poslední číslice příjemce a vaše webhooky se spouštějí stejně jako v produkci.

Požadavek do sandboxu, skončí jako přečtený
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" }
  }'

Chyby s typem a kódem

Každá odpověď mimo 2xx má stejné tělo: type pro třídu selhání, stabilní code, podle kterého lze větvit, problematický param, pokud existuje, a request_id pro podporu.

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"
  }
}
  • Idempotentní požadavky POST

    Pošlete hlavičku Idempotency-Key a opakovaný požadavek do 24 hodin vrátí uloženou odpověď s Idempotent-Replayed: true, aniž by se cokoli odeslalo nebo naúčtovalo dvakrát.

  • Předvídatelné limity

    100 požadavků za sekundu na klíč u POST /v1/messages, jinde 20. Každá odpověď obsahuje RateLimit-Remaining a odpověď 429 obsahuje Retry-After.

  • Dávkové odesílání

    POST /v1/messages/batch přijme až 100 zpráv. Každá položka se přijímá, odmítá a účtuje samostatně a odpověď 207 je uvádí podle indexu.

  • Klíče s omezenými oprávněními

    Každému klíči dejte jen oprávnění, která potřebuje, například messages:write nebo billing:read, a omezte ho na seznam povolených IP adres.

Otázky

Než začnete s integrací

Krátké odpovědi. Ty dlouhé najdete v dokumentaci.

Potřebuji vlastní číslo WhatsApp, bota nebo číslo pro SMS?

Ano. OmniMessage je brána, ke které si přinášíte vlastní kanál: připojíte své číslo WhatsApp Cloud API, bota na Telegramu, číslo Twilio nebo účet na sociální síti a zůstáváte jeho vlastníkem. Na stránce kanálů najdete, co jednotlivé typy vyžadují.

Za co přesně platím?

Jedna platba za každou odchozí zprávu, kterou API přijme: kredit z balíčku, pokud nějaký máte, jinak cena za zprávu podle typu kanálu z vaší peněženky. Příchozí zprávy a zprávy v testovacím režimu jsou zdarma a zpráva, která skončí jako neúspěšná, se automaticky vrací.

Jsou v ceně poplatky společnosti Meta, operátorů nebo poskytovatelů?

Ne. Poplatek za bránu pokrývá API, sledování doručení, webhooky a konzoli. Poplatky, které si za samotný kanál účtuje Meta, Twilio nebo jiný poskytovatel, zůstávají mezi vámi a tímto poskytovatelem.

Jak mohu testovat bez odesílání skutečných zpráv?

Použijte klíč, který začíná na om_test_. Každý účet má pro každý typ jeden sandboxový kanál, například ch_test_whatsapp. Nic se nedoručuje ani neúčtuje a stavy jsou simulované: příjemce končící na 0000 selže, 0001 zůstane ve stavu odesláno, 0002 je navíc přečten a cokoli jiného je doručeno zhruba do dvou sekund.

Co se stane, když mi dojde zůstatek?

API odpoví 402 insufficient_balance a nic se nezařadí do fronty, takže nikdy nebudete zpětně nic dlužit. Můžete se přihlásit k odběru události balance.low nebo zapnout automatické dobíjení, které peněženku dobije, když klesne pod vámi zvolenou hranici.

Potřebuji SDK?

Ne. API používá JSON přes HTTPS s autentizací typu bearer, takže poslouží jakýkoli HTTP klient. Dokumentace obsahuje příklady v cURL, Node, Pythonu a PHP.

Odešlete první zprávu v testovacím režimu ještě dnes

Vytvořte si účet, zkopírujte testovací klíč a zavolejte API dřív, než připojíte jediný kanál. Každý nový účet dostane do začátku 100 zpráv zdarma.