Zum Inhalt springen

Messaging-Gateway-API

Eine API für jeden Messaging-Kanal

Senden Sie WhatsApp-Business-, SMS-, Telegram-, Messenger-, Instagram- und TikTok-Nachrichten über einen einzigen REST-Endpunkt. Prepaid, abgerechnet pro ausgehender Nachricht, mit Zustell-Webhooks und Testmodus.

Ab
0,0003 $
pro ausgehender Nachricht
Bei Registrierung
100
kostenlose Nachrichten
Vertragsbindung
Keine
Prepaid, ohne Vertrag
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
}
  • Kanaltypen7 hinter einem Endpunkt
  • Nachrichtentypen9, von Text bis zu interaktiven Listen
  • Preis ab0,0003 $ pro ausgehender Nachricht
  • Rate-Limit100 Anfragen pro Sekunde und Schlüssel
  • Batch-GrößeBis zu 100 Nachrichten pro Anfrage
  • Webhook-Wiederholungen8, mit Backoff von 30 Sekunden bis 24 Stunden
  • Idempotenzfenster24 Stunden
  • TestmodusKostenlos, kein Kanal erforderlich
  • Fehlgeschlagene NachrichtenWerden automatisch erstattet
  • Eingehende NachrichtenKostenlos

So funktioniert es

In vier Schritten von der Registrierung zur zugestellten Nachricht

Kein Vertriebsgespräch, keine Mindestabnahme. Ihren ersten API-Aufruf im Testmodus können Sie eine Minute nach dem Erstellen des Kontos absetzen.

  1. Schritt 01

    Konto erstellen

    Registrieren Sie sich, bestätigen Sie Ihre E-Mail-Adresse und erstellen Sie in der Konsole einen API-Schlüssel. Testschlüssel funktionieren sofort, noch bevor ein Kanal verbunden ist.

  2. Schritt 02

    Kanal verbinden

    Melden Sie sich in der Konsole mit Facebook oder TikTok an, um eine WhatsApp-Nummer, eine Seite oder ein Business-Konto zu verbinden. Einen Telegram-Bot oder eine Twilio-Nummer fügen Sie mit den zugehörigen Zugangsdaten hinzu, in der Konsole oder mit POST /v1/channels.

  3. Schritt 03

    Über einen Endpunkt senden

    POST /v1/messages erwartet eine Kanal-ID, einen Empfänger und ein typisiertes Inhaltsobjekt. Das Request-Format ist auf jedem Kanal dasselbe.

  4. Schritt 04

    Jede Zustellung nachverfolgen

    Signierte Webhooks melden die Status gesendet, zugestellt, gelesen und fehlgeschlagen. Denselben Verlauf finden Sie in der Konsole und unter GET /v1/messages.

Nachrichtentypen

Was Sie senden, ist, was ankommt

Jede Nachricht hat einen Typ und ein Inhaltsobjekt unter dem Schlüssel dieses Typs. Wählen Sie einen aus, um den Request-Body neben der Nachricht zu sehen, die er erzeugt.

POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Ihre Bestellung #1042 wurde versandt. Verfolgen Sie sie unter https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}

Reiner Text, den jeder Kanaltyp akzeptiert. Setzen Sie preview_url, damit der Kanal eine Linkvorschau anzeigt.

KanäleWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram und TikTok

Konsole

Eine Konsole für alles, was kein Code ist

Schlüssel erstellen, Kanäle verbinden, das Nachrichtenprotokoll durchsuchen, Webhook-Zustellungen wiederholen und die Abrechnung verwalten. Alles, was die Konsole zeigt, ist auch über die API verfügbar.

Übersicht. Wallet-Guthaben, verbleibende Paket-Credits und das ausgehende Volumen der letzten 30 Tage, je Konto und je Modus. Die Darstellungen auf dieser Seite zeigen Beispieldaten.
Nachrichtenprotokoll. Filtern Sie nach Kanal, Status, Empfänger oder Ihrer eigenen Referenz und öffnen Sie eine beliebige Nachricht, um ihren Statusverlauf und ihre Kosten zu sehen.
Abrechnung. Wallet aufladen, Pakete kaufen, die automatische Aufladung einrichten und Belege herunterladen. Bei Paket-Credits sehen Sie, wie viel übrig ist und wann es verfällt.

Preise

Pro Nachricht zahlen oder Nachrichten im Paket kaufen

Laden Sie ein Prepaid-Wallet ab 10 $ auf und zahlen Sie den Preis pro Nachricht des jeweiligen Kanals, oder kaufen Sie ein Paket mit Nachrichten-Credits für das Volumen auf Ihren teuersten Kanälen.

10.000 Nachrichten

8 $

0,0008 $ pro Nachricht

  • 10.000 ausgehende Nachrichten
  • Ab Kauf 3 Monate gültig
  • Gültig für jeden Kanaltyp
Mit 10.000 starten

100.000 Nachrichten

Empfohlen

60 $

0,0006 $ pro Nachricht

  • 100.000 ausgehende Nachrichten
  • Ab Kauf 6 Monate gültig
  • Gültig für jeden Kanaltyp
Mit 100.000 starten

1 Mio. Nachrichten

400 $

0,0004 $ pro Nachricht

  • 1.000.000 ausgehende Nachrichten
  • Ab Kauf 12 Monate gültig
  • Gültig für jeden Kanaltyp
Mit 1 Mio. starten

Pay-as-you-go

Pay-as-you-go-Preis pro ausgehender Nachricht nach Kanaltyp, in US-Dollar
KanalPro Nachricht
WhatsApp Business0,001 $
Telegram0,0003 $
SMS0,0005 $
SMS OTP0,0005 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,0005 $

Was der Preis abdeckt

  • AbgerechnetAusgehende Nachrichten, die die API annimmt, im Moment der Annahme.
  • KostenlosEingehende Nachrichten, Nachrichten im Testmodus, Webhooks und die Konsole.
  • ErstattetJede Nachricht, die als fehlgeschlagen endet, zurück in das Paket oder Wallet, aus dem sie bezahlt wurde.
  • SeparatGebühren, die Meta, Netzbetreiber oder andere Anbieter für den Kanal selbst erheben.

Developer Experience

Gebaut, um einmal integriert zu werden und dann einfach zu laufen

Signierte Webhooks, sichere Wiederholungen, eine Sandbox, die sich wie die Produktion verhält, und Fehler, auf die Ihr Code gezielt reagieren kann.

Webhooks, die Sie verifizieren können

Jede Zustellung wird mit HMAC-SHA256 über den Zeitstempel und den rohen Body signiert, im Header OmniMessage-Signature. Antworten Sie innerhalb von 10 Sekunden mit einem beliebigen 2xx-Status. Fehlgeschlagene Zustellungen werden achtmal mit Backoff wiederholt, von 30 Sekunden bis zu 24 Stunden.

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

Ein Testmodus, der nichts kostet

Testschlüssel nutzen integrierte Sandbox-Kanäle; es gibt also nichts zu verbinden. Die letzten Ziffern des Empfängers bestimmen das simulierte Ergebnis, und Ihre Webhooks werden wie in der Produktion ausgelöst.

Sandbox-Request, endet als gelesen
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" }
  }'

Fehler mit Typ und Code

Jede Antwort außerhalb von 2xx hat denselben Body: einen type für die Fehlerklasse, einen stabilen code für Fallunterscheidungen, gegebenenfalls den betroffenen param und eine request_id für den Support.

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"
  }
}
  • Idempotente POSTs

    Senden Sie einen Idempotency-Key-Header, und eine Wiederholung innerhalb von 24 Stunden liefert die gespeicherte Antwort mit Idempotent-Replayed: true, ohne doppelt zu senden oder abzurechnen.

  • Vorhersehbare Limits

    100 Anfragen pro Sekunde und Schlüssel auf POST /v1/messages, sonst 20. Jede Antwort enthält RateLimit-Remaining, und eine 429 enthält Retry-After.

  • Batch-Versand

    POST /v1/messages/batch nimmt bis zu 100 Nachrichten entgegen. Jedes Element wird einzeln angenommen, abgelehnt und abgerechnet, und die 207-Antwort meldet sie nach Index.

  • Schlüssel mit Scopes

    Geben Sie jedem Schlüssel nur die Scopes, die er braucht, etwa messages:write oder billing:read, und beschränken Sie ihn auf eine IP-Allowlist.

Fragen

Bevor Sie integrieren

Hier die kurzen Antworten. Die langen stehen in der Dokumentation.

Brauche ich eine eigene WhatsApp-Nummer, einen eigenen Bot oder eine eigene SMS-Nummer?

Ja. OmniMessage ist ein Gateway, zu dem Sie Ihre eigenen Kanäle mitbringen: Sie verbinden Ihre eigene WhatsApp-Cloud-API-Nummer, Ihren Telegram-Bot, Ihre Twilio-Nummer oder Ihr Social-Media-Konto und bleiben deren Inhaber. Die Kanalseite führt auf, was jeder Typ voraussetzt.

Wofür genau wird mir etwas berechnet?

Eine Belastung pro ausgehender Nachricht, die die API annimmt: ein Paket-Credit, wenn Sie einen haben, andernfalls der Preis pro Nachricht des Kanaltyps aus Ihrem Wallet. Eingehende Nachrichten und Nachrichten im Testmodus sind kostenlos, und eine Nachricht, die als fehlgeschlagen endet, wird automatisch erstattet.

Sind Gebühren von Meta, Netzbetreibern oder Anbietern enthalten?

Nein. Die Gateway-Gebühr deckt die API, die Zustellverfolgung, Webhooks und die Konsole ab. Gebühren, die Meta, Twilio oder ein anderer Anbieter für den Kanal selbst erheben, bleiben eine Sache zwischen Ihnen und diesem Anbieter.

Wie teste ich, ohne echte Nachrichten zu senden?

Verwenden Sie einen Schlüssel, der mit om_test_ beginnt. Jedes Konto hat pro Typ einen Sandbox-Kanal, etwa ch_test_whatsapp. Nichts wird zugestellt oder abgerechnet, und Status werden simuliert: Ein Empfänger, der auf 0000 endet, schlägt fehl, 0001 bleibt bei gesendet, 0002 wird zusätzlich gelesen, und alles andere wird innerhalb von etwa zwei Sekunden zugestellt.

Was passiert, wenn mein Guthaben aufgebraucht ist?

Die API antwortet mit 402 insufficient_balance, und nichts wird in die Warteschlange gestellt; Sie schulden also nie nachträglich Geld. Sie können das Ereignis balance.low abonnieren oder die automatische Aufladung aktivieren, damit das Wallet aufgeladen wird, sobald es unter einen von Ihnen gewählten Schwellenwert fällt.

Brauche ich ein SDK?

Nein. Die API ist JSON über HTTPS mit Bearer-Authentifizierung, daher funktioniert jeder HTTP-Client. Die Dokumentation enthält Beispiele in cURL, Node, Python und PHP.

Senden Sie Ihre erste Nachricht noch heute im Testmodus

Erstellen Sie ein Konto, kopieren Sie einen Testschlüssel und rufen Sie die API auf, bevor Sie auch nur einen Kanal verbinden. Jedes neue Konto startet mit 100 kostenlosen Nachrichten.