Mesajlaşma ağ geçidi API’si
Tüm mesajlaşma kanalları için tek API
WhatsApp Business, SMS, Telegram, Messenger, Instagram ve TikTok mesajlarını tek bir REST uç noktası üzerinden gönderin. Ön ödemeli, giden mesaj başına faturalandırılır; teslimat webhook’ları ve test modu dâhildir.
- Başlangıç fiyatı
- $0,0003
- giden mesaj başına
- Kayıt olunca
- 100
- ücretsiz mesaj
- Taahhüt
- Yok
- ön ödemeli, sözleşmesiz
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
}Kanallar
Yedi kanal türü, tek istek biçimi
Hâlihazırda sahip olduğunuz göndericileri bağlayın. Her biri, aynı uç noktaya ilettiğiniz bir kanal kimliğine dönüşür ve hepsi aynı durumları geri bildirir.
- $0,001WhatsApp BusinessKendi Cloud API numaranızda şablonlar, etkileşimli mesajlar ve medya.Metin · Ekler · Şablon · Yanıt düğmeleri · Liste · URL düğmesi · Konum · Kişiler
- $0,0005SMSKendi Twilio numaranızdan metin ve medya mesajları.Metin · Ekler
- $0,0005SMS OTPTek kullanımlık parolalar için yalnızca metin destekleyen bir rota.Metin
- $0,0003TelegramDüğmeler, anketler, konumlar ve medya içeren bot mesajları.Metin · Ekler · Yanıt düğmeleri · Konum · Kişiler · Anket
- $0,0005MessengerFacebook Sayfanıza mesaj yazan kişilerle görüşmeler.Metin · Ekler · Yanıt düğmeleri
- $0,0005InstagramInstagram profesyonel hesabı için direkt mesajlar.Metin · Ekler · Yanıt düğmeleri
- $0,0005TikTokTikTok işletme hesabı için direkt mesajlar.Metin · Ekler · Yanıt düğmeleri
- Kendi kanalınızı getirinNumaralarınız ve botlarınız sizin kalırHer kanal için gerekenleri görün
Nasıl çalışır?
Kayıttan teslim edilmiş mesaja dört adımda
Satış görüşmesi de asgari taahhüt de yok. Hesap oluşturduktan bir dakika sonra test modunda ilk API çağrınızı yapabilirsiniz.
- Adım 01
Hesap oluşturun
Kaydolun, e-postanızı doğrulayın ve konsolda bir API anahtarı oluşturun. Test anahtarları, herhangi bir kanal bağlanmadan önce bile hemen çalışır.
- Adım 02
Kanal bağlayın
Bir WhatsApp numarası, bir Sayfa veya bir işletme hesabı bağlamak için konsolda Facebook veya TikTok ile giriş yapın. Telegram botunu veya Twilio numarasını kimlik bilgileriyle, konsoldan ya da
POST /v1/channelsile ekleyin. - Adım 03
Tek uç noktadan gönderin
POST /v1/messagesbir kanal kimliği, bir alıcı ve türü belirtilmiş bir içerik nesnesi alır. İstek biçimi tüm kanallarda aynıdır. - Adım 04
Her teslimatı izleyin
İmzalı webhook’lar gönderildi, teslim edildi, okundu ve başarısız durumlarını bildirir. Aynı geçmiş konsolda ve
GET /v1/messagesüzerinde de yer alır.
Mesaj türleri
Ne gönderirseniz alıcı onu görür
Her mesajın bir türü ve o türün adını taşıyan anahtarın altında bir içerik nesnesi vardır. Birini seçin; istek gövdesini, ürettiği mesajla yan yana görün.
{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": {
"body": "#1042 numaralı siparişiniz kargoya verildi. Buradan takip edebilirsiniz: https://example.com/t/1042",
"preview_url": true
},
"reference": "order-1042"
}Tüm kanal türlerinin kabul ettiği düz metin. Kanalın bağlantı önizlemesi oluşturması için preview_url değerini ayarlayın.
KanallarWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram ve TikTok
Konsol
Kod olmayan işler için bir konsol
Anahtar oluşturun, kanal bağlayın, mesaj günlüğünde arama yapın, webhook teslimatlarını yeniden oynatın ve faturalandırmayı yönetin. Konsolda gördüğünüz her şeye API üzerinden de erişebilirsiniz.
Fiyatlandırma
Mesaj başına ödeyin veya toplu mesaj satın alın
Ön ödemeli cüzdanınıza en az $10 yükleyip her kanalın mesaj başına fiyatını ödeyin ya da en yüksek fiyatlı kanallarınızdaki hacim için mesaj kredisi paketi satın alın.
10 B mesaj
$8
Mesaj başına $0,0008
- 10.000 giden mesaj
- Satın alma tarihinden itibaren 3 ay geçerli
- Tüm kanal türlerinde geçerli
100 B mesaj
Öne çıkan$60
Mesaj başına $0,0006
- 100.000 giden mesaj
- Satın alma tarihinden itibaren 6 ay geçerli
- Tüm kanal türlerinde geçerli
1 Mn mesaj
$400
Mesaj başına $0,0004
- 1.000.000 giden mesaj
- Satın alma tarihinden itibaren 12 ay geçerli
- Tüm kanal türlerinde geçerli
Kullandıkça öde
| Kanal | Mesaj başına |
|---|---|
| WhatsApp Business | $0,001 |
| Telegram | $0,0003 |
| SMS | $0,0005 |
| SMS OTP | $0,0005 |
| Messenger | $0,0005 |
| $0,0005 | |
| TikTok | $0,0005 |
Fiyat neleri kapsar?
- FaturalandırılırAPI’nin kabul ettiği giden mesajlar; kabul edildikleri anda.
- ÜcretsizGelen mesajlar, test modu mesajları, webhook’lar ve konsol.
- İade edilirBaşarısız olarak sonuçlanan her mesaj; alındığı pakete veya cüzdana geri döner.
- AyrıdırMeta’nın, operatörlerin veya diğer sağlayıcıların kanalın kendisi için aldığı ücretler.
Geliştirici deneyimi
Bir kez entegre edip unutmanız için tasarlandı
İmzalı webhook’lar, güvenli yeniden denemeler, üretim ortamı gibi davranan bir sandbox ve kodunuzda ayrıştırabileceğiniz hatalar.
Doğrulayabileceğiniz webhook’lar
Her teslimat, zaman damgası ve ham gövde üzerinden HMAC-SHA256 ile imzalanır; imza OmniMessage-Signature üstbilgisinde yer alır. 10 saniye içinde herhangi bir 2xx koduyla yanıt verin. Başarısız teslimatlar, 30 saniyeden 24 saate kadar artan aralıklarla sekiz kez yeniden denenir.
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"
}
}
}Hiçbir maliyeti olmayan bir test modu
Test anahtarları yerleşik sandbox kanallarını kullanır; bağlanacak bir şey yoktur. Alıcının son haneleri simüle edilen sonucu belirler ve webhook’larınız üretim ortamındaki gibi tetiklenir.
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" }
}'Türü ve kodu olan hatalar
2xx dışındaki her yanıt aynı gövdeye sahiptir: hata sınıfını belirten bir type, koşul yazabileceğiniz kararlı bir code, varsa soruna yol açan param ve destek için bir request_id.
{
"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"
}
}Idempotent POST istekleri
Bir
Idempotency-Keyüstbilgisi gönderin; 24 saat içindeki yeniden deneme, iki kez gönderim veya tahsilat yapmadan, saklanan yanıtıIdempotent-Replayed: trueile döndürür.Öngörülebilir sınırlar
POST /v1/messagesiçin anahtar başına saniyede 100 istek, diğer uç noktalarda 20. Her yanıtRateLimit-Remainingtaşır; 429 yanıtı iseRetry-Afteriçerir.Toplu gönderim
POST /v1/messages/batchen fazla 100 mesaj kabul eder. Her öğe ayrı ayrı kabul edilir, reddedilir ve faturalandırılır; 207 yanıtı bunları dizin numarasına göre bildirir.Kapsamı sınırlı anahtarlar
Her anahtara yalnızca ihtiyaç duyduğu kapsamları verin; örneğin
messages:writeveyabilling:read. Ayrıca anahtarı bir IP izin listesiyle sınırlayın.
Sorular
Entegrasyona başlamadan önce
Kısa yanıtlar burada. Uzun yanıtlar dokümantasyonda.
Kendi WhatsApp numarama, botuma veya SMS numarama ihtiyacım var mı?
Evet. OmniMessage, kendi kanalınızı getirdiğiniz bir ağ geçididir: kendi WhatsApp Cloud API numaranızı, Telegram botunuzu, Twilio numaranızı veya sosyal medya hesabınızı bağlarsınız ve sahipliği sizde kalır. Kanallar sayfası, her tür için gerekenleri listeler.
Tam olarak ne için ücretlendiriliyorum?
API’nin kabul ettiği her giden mesaj için tek bir ücret: varsa bir paket kredisi, yoksa kanal türünün mesaj başına fiyatı cüzdanınızdan düşülür. Gelen mesajlar ve test modu mesajları ücretsizdir; başarısız olarak sonuçlanan mesajın ücreti otomatik olarak iade edilir.
Meta, operatör veya sağlayıcı ücretleri dâhil mi?
Hayır. Ağ geçidi ücreti API’yi, teslimat takibini, webhook’ları ve konsolu kapsar. Meta’nın, Twilio’nun veya başka bir sağlayıcının kanalın kendisi için aldığı ücretler, sizinle o sağlayıcı arasında kalır.
Gerçek mesaj göndermeden nasıl test ederim?
om_test_ ile başlayan bir anahtar kullanın. Her hesapta, her tür için ch_test_whatsapp gibi bir sandbox kanalı bulunur. Hiçbir şey teslim edilmez veya faturalandırılmaz ve durumlar simüle edilir: 0000 ile biten bir alıcı başarısız olur, 0001 gönderildi durumunda kalır, 0002 ayrıca okunur; diğer tüm alıcılara yaklaşık iki saniye içinde teslim edilir.
Bakiyem bittiğinde ne olur?
API 402 insufficient_balance yanıtını verir ve hiçbir şey kuyruğa alınmaz; dolayısıyla sonradan borçlu duruma düşmezsiniz. balance.low olayına abone olabilir veya cüzdan, seçtiğiniz bir eşiğin altına düştüğünde bakiye yüklenmesi için otomatik yüklemeyi açabilirsiniz.
Bir SDK’ya ihtiyacım var mı?
Hayır. API, bearer kimlik doğrulamasıyla HTTPS üzerinden JSON kullanır; bu nedenle herhangi bir HTTP istemcisi iş görür. Dokümantasyonda cURL, Node, Python ve PHP örnekleri bulunur.
İlk mesajınızı bugün test modunda gönderin
Bir hesap oluşturun, bir test anahtarı kopyalayın ve tek bir kanal bile bağlamadan API’yi çağırın. Her yeni hesap 100 ücretsiz mesaj ile başlar.