Μετάβαση στο περιεχόμενο

API πύλης μηνυμάτων

Ένα API για κάθε κανάλι μηνυμάτων

Στείλτε μηνύματα WhatsApp Business, SMS, Telegram, Messenger, Instagram και TikTok μέσω ενός μόνο REST endpoint. Με προπληρωμή και χρέωση ανά εξερχόμενο μήνυμα, webhooks παράδοσης και δοκιμαστική λειτουργία.

Από
0,0003 $
ανά εξερχόμενο μήνυμα
Με την εγγραφή
100
δωρεάν μηνύματα
Δέσμευση
Καμία
προπληρωμή, χωρίς συμβόλαιο
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
}
  • Τύποι καναλιών7 πίσω από ένα endpoint
  • Τύποι μηνυμάτων9, από κείμενο έως διαδραστικές λίστες
  • Τιμή από0,0003 $ ανά εξερχόμενο μήνυμα
  • Όριο ρυθμού100 αιτήματα ανά δευτερόλεπτο ανά κλειδί
  • Μέγεθος παρτίδαςΈως 100 μηνύματα ανά αίτημα
  • Επαναλήψεις webhook8, με κλιμακούμενη αναμονή από 30 δευτερόλεπτα έως 24 ώρες
  • Παράθυρο idempotency24 ώρες
  • Δοκιμαστική λειτουργίαΔωρεάν, χωρίς να χρειάζεται κανάλι
  • Αποτυχημένα μηνύματαΑυτόματη επιστροφή
  • Εισερχόμενα μηνύματαΔωρεάν

Κανάλια

Επτά τύποι καναλιών, μία μορφή αιτήματος

Συνδέστε τους αποστολείς που ήδη σας ανήκουν. Ο καθένας γίνεται ένα αναγνωριστικό καναλιού που δίνετε στο ίδιο endpoint και όλοι επιστρέφουν τις ίδιες καταστάσεις.

Πώς λειτουργεί

Από την εγγραφή στο παραδομένο μήνυμα σε τέσσερα βήματα

Δεν χρειάζεται επικοινωνία με τις πωλήσεις ούτε ελάχιστη δέσμευση. Μπορείτε να κάνετε την πρώτη σας κλήση API σε δοκιμαστική λειτουργία ένα λεπτό μετά τη δημιουργία του λογαριασμού.

  1. Βήμα 01

    Δημιουργήστε λογαριασμό

    Εγγραφείτε, επαληθεύστε το email σας και δημιουργήστε ένα κλειδί API στην κονσόλα. Τα δοκιμαστικά κλειδιά λειτουργούν αμέσως, προτού συνδεθεί οποιοδήποτε κανάλι.

  2. Βήμα 02

    Συνδέστε ένα κανάλι

    Συνδεθείτε μέσω Facebook ή TikTok στην κονσόλα για να συνδέσετε έναν αριθμό WhatsApp, μια Σελίδα ή έναν επιχειρηματικό λογαριασμό. Προσθέστε ένα bot του Telegram ή έναν αριθμό Twilio με τα διαπιστευτήριά του, στην κονσόλα ή με POST /v1/channels.

  3. Βήμα 03

    Στείλτε μέσω ενός endpoint

    Το POST /v1/messages δέχεται ένα αναγνωριστικό καναλιού, έναν παραλήπτη και ένα αντικείμενο περιεχομένου συγκεκριμένου τύπου. Η μορφή του αιτήματος είναι ίδια σε κάθε κανάλι.

  4. Βήμα 04

    Παρακολουθήστε κάθε παράδοση

    Τα υπογεγραμμένα webhooks αναφέρουν τις καταστάσεις «εστάλη», «παραδόθηκε», «διαβάστηκε» και «απέτυχε». Το ίδιο ιστορικό υπάρχει στην κονσόλα και στο GET /v1/messages.

Τύποι μηνυμάτων

Ό,τι στέλνετε είναι αυτό που βλέπουν

Κάθε μήνυμα έχει έναν τύπο και ένα αντικείμενο περιεχομένου κάτω από το κλειδί αυτού του τύπου. Επιλέξτε έναν τύπο για να δείτε το σώμα του αιτήματος δίπλα στο μήνυμα που παράγει.

POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Η παραγγελία σας #1042 έχει αποσταλεί. Παρακολουθήστε τη στο https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}

Απλό κείμενο, αποδεκτό από κάθε τύπο καναλιού. Ορίστε το preview_url για να εμφανίσει το κανάλι προεπισκόπηση συνδέσμου.

ΚανάλιαWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram και TikTok

Κονσόλα

Μια κονσόλα για όσα δεν είναι κώδικας

Δημιουργήστε κλειδιά, συνδέστε κανάλια, αναζητήστε στο αρχείο μηνυμάτων, επαναλάβετε παραδόσεις webhook και διαχειριστείτε τις χρεώσεις. Ό,τι εμφανίζει η κονσόλα είναι διαθέσιμο και μέσω του API.

Επισκόπηση. Υπόλοιπο πορτοφολιού, μονάδες πακέτων που απομένουν και ο όγκος εξερχόμενων μηνυμάτων των τελευταίων 30 ημερών, ανά λογαριασμό και ανά λειτουργία. Οι οθόνες αυτής της σελίδας έχουν σχεδιαστεί με ενδεικτικά δεδομένα.
Αρχείο μηνυμάτων. Φιλτράρετε ανά κανάλι, κατάσταση, παραλήπτη ή δική σας αναφορά και ανοίξτε οποιοδήποτε μήνυμα για να δείτε το ιστορικό κατάστασής του και πόσο χρεώθηκε.
Χρέωση. Φορτίστε το πορτοφόλι, αγοράστε πακέτα, ορίστε αυτόματη φόρτιση και κατεβάστε αποδείξεις. Στις μονάδες πακέτων φαίνεται τι απομένει και πότε λήγει.

Τιμές

Πληρώστε ανά μήνυμα ή αγοράστε μηνύματα μαζικά

Φορτίστε ένα προπληρωμένο πορτοφόλι με ποσό από 10 $ και πληρώστε την τιμή ανά μήνυμα κάθε καναλιού ή αγοράστε ένα πακέτο μονάδων μηνυμάτων για τον όγκο στα ακριβότερα κανάλια σας.

10 χιλ. μηνύματα

8 $

0,0008 $ ανά μήνυμα

  • 10.000 εξερχόμενα μηνύματα
  • Ισχύει για 3 μήνες από την αγορά
  • Ισχύει σε κάθε τύπο καναλιού
Ξεκινήστε με 10 χιλ.

100 χιλ. μηνύματα

Προτεινόμενο

60 $

0,0006 $ ανά μήνυμα

  • 100.000 εξερχόμενα μηνύματα
  • Ισχύει για 6 μήνες από την αγορά
  • Ισχύει σε κάθε τύπο καναλιού
Ξεκινήστε με 100 χιλ.

1 εκ. μηνύματα

400 $

0,0004 $ ανά μήνυμα

  • 1.000.000 εξερχόμενα μηνύματα
  • Ισχύει για 12 μήνες από την αγορά
  • Ισχύει σε κάθε τύπο καναλιού
Ξεκινήστε με 1 εκ.

Πληρωμή ανάλογα με τη χρήση

Τιμή πληρωμής ανάλογα με τη χρήση ανά εξερχόμενο μήνυμα και ανά τύπο καναλιού, σε δολάρια ΗΠΑ
ΚανάλιΑνά μήνυμα
WhatsApp Business0,001 $
Telegram0,0003 $
SMS0,0005 $
SMS OTP0,0005 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,0005 $

Τι καλύπτει η τιμή

  • ΧρεώνονταιΤα εξερχόμενα μηνύματα που αποδέχεται το API, τη στιγμή της αποδοχής τους.
  • ΔωρεάνΤα εισερχόμενα μηνύματα, τα μηνύματα δοκιμαστικής λειτουργίας, τα webhooks και η κονσόλα.
  • ΕπιστρέφονταιΚάθε μήνυμα που καταλήγει αποτυχημένο, στο πακέτο ή στο πορτοφόλι από το οποίο χρεώθηκε.
  • ΞεχωριστάΤα τέλη που χρεώνουν η Meta, οι πάροχοι κινητής τηλεφωνίας ή άλλοι πάροχοι για το ίδιο το κανάλι.

Εμπειρία προγραμματιστή

Φτιαγμένο για να ενσωματωθεί μία φορά και να δουλεύει μόνο του

Υπογεγραμμένα webhooks, ασφαλείς επαναλήψεις, ένα sandbox που συμπεριφέρεται όπως το περιβάλλον παραγωγής και σφάλματα πάνω στα οποία μπορείτε να διακλαδώσετε τον κώδικά σας.

Webhooks που μπορείτε να επαληθεύσετε

Κάθε παράδοση υπογράφεται με HMAC-SHA256 επί της χρονικής σήμανσης και του ακατέργαστου σώματος, στην κεφαλίδα OmniMessage-Signature. Απαντήστε με οποιοδήποτε 2xx μέσα σε 10 δευτερόλεπτα. Οι αποτυχημένες παραδόσεις επαναλαμβάνονται οκτώ φορές με κλιμακούμενη αναμονή, από 30 δευτερόλεπτα έως 24 ώρες.

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;
}
Συμβάν 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"
    }
  }
}

Δοκιμαστική λειτουργία χωρίς κανένα κόστος

Τα δοκιμαστικά κλειδιά χρησιμοποιούν ενσωματωμένα κανάλια sandbox, οπότε δεν χρειάζεται να συνδέσετε τίποτα. Τα τελευταία ψηφία του παραλήπτη καθορίζουν το προσομοιωμένο αποτέλεσμα και τα webhooks σας ενεργοποιούνται όπως θα γινόταν στην παραγωγή.

Αίτημα sandbox, καταλήγει ως «διαβάστηκε»
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" }
  }'

Σφάλματα με τύπο και κωδικό

Κάθε απόκριση εκτός 2xx έχει το ίδιο σώμα: ένα type για την κατηγορία της αποτυχίας, ένα σταθερό code για διακλάδωση, το προβληματικό param όπου υπάρχει και ένα request_id για την υποστήριξη.

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"
  }
}
  • Idempotent αιτήματα POST

    Στείλτε μια κεφαλίδα Idempotency-Key και κάθε επανάληψη μέσα σε 24 ώρες επιστρέφει την αποθηκευμένη απόκριση με Idempotent-Replayed: true, χωρίς δεύτερη αποστολή ή δεύτερη χρέωση.

  • Προβλέψιμα όρια

    100 αιτήματα ανά δευτερόλεπτο ανά κλειδί στο POST /v1/messages και 20 στα υπόλοιπα. Κάθε απόκριση περιέχει το RateLimit-Remaining και κάθε 429 περιέχει το Retry-After.

  • Μαζική αποστολή

    Το POST /v1/messages/batch δέχεται έως 100 μηνύματα. Κάθε στοιχείο γίνεται αποδεκτό, απορρίπτεται και χρεώνεται ξεχωριστά, και η απόκριση 207 τα αναφέρει ανά δείκτη.

  • Κλειδιά με εμβέλειες

    Δώστε σε κάθε κλειδί μόνο τις εμβέλειες που χρειάζεται, όπως messages:write ή billing:read, και περιορίστε το σε λίστα επιτρεπόμενων IP.

Ερωτήσεις

Πριν από την ενσωμάτωση

Οι σύντομες απαντήσεις. Τις αναλυτικές θα τις βρείτε στην τεκμηρίωση.

Χρειάζομαι δικό μου αριθμό WhatsApp, bot ή αριθμό SMS;

Ναι. Το OmniMessage είναι πύλη στην οποία συνδέετε τα δικά σας κανάλια: συνδέετε τον δικό σας αριθμό WhatsApp Cloud API, το bot σας στο Telegram, τον αριθμό σας Twilio ή τον λογαριασμό σας στα κοινωνικά δίκτυα και διατηρείτε την κυριότητά του. Στη σελίδα καναλιών αναφέρεται τι χρειάζεται κάθε τύπος.

Για τι ακριβώς χρεώνομαι;

Μία χρέωση για κάθε εξερχόμενο μήνυμα που αποδέχεται το API: μία μονάδα πακέτου, αν διαθέτετε, διαφορετικά η τιμή ανά μήνυμα του τύπου καναλιού από το πορτοφόλι σας. Τα εισερχόμενα μηνύματα και τα μηνύματα δοκιμαστικής λειτουργίας είναι δωρεάν, ενώ για κάθε μήνυμα που καταλήγει αποτυχημένο γίνεται αυτόματη επιστροφή.

Περιλαμβάνονται τα τέλη της Meta, των παρόχων κινητής τηλεφωνίας ή άλλων παρόχων;

Όχι. Το τέλος πύλης καλύπτει το API, την παρακολούθηση παράδοσης, τα webhooks και την κονσόλα. Τα τέλη που χρεώνει η Meta, η Twilio ή άλλος πάροχος για το ίδιο το κανάλι αφορούν αποκλειστικά εσάς και τον εκάστοτε πάροχο.

Πώς κάνω δοκιμές χωρίς να στείλω πραγματικά μηνύματα;

Χρησιμοποιήστε ένα κλειδί που αρχίζει με om_test_. Κάθε λογαριασμός διαθέτει ένα κανάλι sandbox ανά τύπο, όπως το ch_test_whatsapp. Τίποτα δεν παραδίδεται ούτε χρεώνεται και οι καταστάσεις είναι προσομοιωμένες: παραλήπτης που λήγει σε 0000 αποτυγχάνει, σε 0001 παραμένει στο «εστάλη», σε 0002 φτάνει και στο «διαβάστηκε», ενώ οτιδήποτε άλλο παραδίδεται μέσα σε περίπου δύο δευτερόλεπτα.

Τι συμβαίνει όταν εξαντληθεί το υπόλοιπό μου;

Το API απαντά 402 insufficient_balance και τίποτα δεν μπαίνει στην ουρά, οπότε δεν οφείλετε ποτέ χρήματα εκ των υστέρων. Μπορείτε να εγγραφείτε στο συμβάν balance.low ή να ενεργοποιήσετε την αυτόματη φόρτιση, ώστε το πορτοφόλι να φορτίζεται όταν πέφτει κάτω από ένα όριο που ορίζετε εσείς.

Χρειάζομαι SDK;

Όχι. Το API είναι JSON μέσω HTTPS με έλεγχο ταυτότητας bearer, άρα λειτουργεί με οποιονδήποτε πελάτη HTTP. Η τεκμηρίωση περιέχει παραδείγματα σε cURL, Node, Python και PHP.

Στείλτε το πρώτο σας μήνυμα σε δοκιμαστική λειτουργία σήμερα

Δημιουργήστε λογαριασμό, αντιγράψτε ένα δοκιμαστικό κλειδί και καλέστε το API προτού συνδέσετε έστω και ένα κανάλι. Κάθε νέος λογαριασμός ξεκινά με 100 δωρεάν μηνύματα.