1. SMS API (REST)
Domyślny tryb działania, przeznaczony dla aplikacji obsługujących REST API. Token wygenerujesz i pobierzesz w panelu klienta (alternatywnie u biura obsługi klienta).
1.1 Wysyłka wiadomości
Typ zawartości: application/json · Autoryzacja: Bearer token
Pola ciała żądania
| Pole | Typ | Opis |
|---|---|---|
| from | łańcuch numeryczny, 9–11 znaków | Numer wirtualnego numeru komórkowego w ACTIO |
| to | łańcuch numeryczny, 9–11 znaków | Docelowy numer komórkowy |
| body | łańcuch, min. 1 znak | Treść wiadomości |
Przykładowe żądanie
curl -X POST https://msg-api.actio.pl/api/sms \
-H "Authorization: Bearer TWOJ_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "48732129000",
"to": "48732129001",
"body": "Test ACTIO"
}'Odpowiedź 200
Wiadomość przyjęta do wysyłki. Ciało zawiera message_id (16 znaków hex).
{"message_id":"a906cff7719bd889"}Błędy
| Kod | Znaczenie |
|---|---|
| 403 | Problem z autoryzacją |
| 422 | Problem z walidacją danych |
| 429 | Przekroczono limit żądań |
Ciało błędu może zawierać pola errors.token, errors.from, errors.to, errors.body (tablice komunikatów).
{"errors":{"token":["Invalid token"]}}Wiadomości wychodzące są kodowane w UCS-2 i dzielone co 67 znaków. Opcjonalnie można włączyć kodowanie GSM-7 (pojedyncza wiadomość do 160 znaków) – w panelu klienta lub przez dyspozycję do biura obsługi.
1.2 Wysyłka na wiele numerów
Wysyłka tej samej wiadomości na wiele numerów. Aktywacja funkcji dla tokena wyłącznie przez biuro obsługi klienta.
Pola ciała żądania
| Pole | Typ | Opis |
|---|---|---|
| from | łańcuch numeryczny, 9–11 znaków | Numer wirtualnego numeru komórkowego w ACTIO |
| to | tablica łańcuchów (9–11 znaków), 1–100 elementów | Docelowe numery komórkowe (unikalne) |
| body | łańcuch, min. 1 znak | Treść wiadomości |
Przykładowe żądanie
curl -X POST https://msg-api.actio.pl/api/sms-multi \
-H "Authorization: Bearer TWOJ_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "48732129000",
"to": ["48732129001", "48732129002"],
"body": "Test ACTIO"
}'Walidacja numerów działa na zasadzie „wszystko albo nic" – każdy numer musi być poprawnym polskim numerem komórkowym i być unikalny, w przeciwnym razie całe żądanie jest odrzucane.
Odpowiedź 200
Pole message_ids – tablica obiektów z polami number i message_id.
{"message_ids":[{"number":"48732129001","message_id":"a906cff7719bd889"}]}Błędy
| Kod | Znaczenie |
|---|---|
| 403 | Problem z autoryzacją |
| 422 | Problem z walidacją danych |
| 429 | Przekroczono limit żądań |
Ciało błędu może zawierać pola errors.token, errors.from, errors.to, errors.body (tablice komunikatów).
{"errors":{"token":["Invalid token"]}}1.3 Odbiór wiadomości (webhook)
Wiadomości przychodzące wysyłane są na podany w panelu klienta webhook. Webhook można także podać w dyspozycji do biura obsługi klienta. Podjętych zostanie do 36 prób dostarczenia wiadomości. Interwały powiadomień oraz dodatkowe informacje na ten temat zostały opisane w sekcji „Notyfikacje”. Żądanie API nie śledzi przekierowań, nie autoryzuje się także do webhooka. Żądanie pochodzić będzie z aktualnego adresu IP domeny msg-api.actio.pl.
Metoda: POST · Typ zawartości: application/json
| Pole | Typ | Opis |
|---|---|---|
| type | łańcuch | Dla wiadomości przychodzącej: MESSAGE |
| from | łańcuch | Prezentacja numeru źródłowego (lub nadpis nazwy) |
| to | łańcuch numeryczny | Docelowy numer telefonu |
| body | łańcuch | Treść wiadomości |
{"type":"MESSAGE","from":"48732129000","to":"48732129001","body":"Test sms"}1.4 Potwierdzenie dostarczenia (webhook)
W przypadku chęci otrzymywania powiadomień o dostarczeniu wiadomości należy aktywować tę opcję w panelu klienta lub przez dyspozycję dla biura obsługi klienta. Aktywacja tej opcji spowoduje przesyłanie żądania na podany adres webhooka. Podjętych zostanie do 36 prób dostarczenia wiadomości. Interwały powiadomień oraz dodatkowe informacje na ten temat zostały opisane w sekcji „Notyfikacje”. Żądanie API nie śledzi przekierowań, nie autoryzuje się także do webhooka. Żądanie pochodzić będzie z aktualnego adresu IP domeny msg-api.actio.pl.
| Pole | Typ | Opis |
|---|---|---|
| type | łańcuch | Dla statusu: NOTIFICATION |
| message_id | łańcuch | Identyfikator wiadomości zwrócony po przyjęciu do wysyłki |
| status | łańcuch | DELIVERED – dostarczono, ERROR – błąd |
{"type":"NOTIFICATION","message_id":"a906cff7719bd889","status":"DELIVERED"}2. 3CX SMS API
Obsługuje wysyłkę i odbiór wiadomości zgodnie z aktualną specyfikacją centrali 3CX Phone System. Aby aktywować, w panelu klienta zaznacz obie opcje: SMS API oraz 3CX SMS API.
Połączenia wychodzące
W sekcji SMS w 3CX podaj token (z panelu klienta) oraz adres URL:
https://msg-api.actio.pl/api/tcx
Wiadomości przychodzące
W panelu klienta podaj webhook dostępny w centrali 3CX. Aktywacji może dokonać też biuro obsługi klienta – wówczas po podaniu webhooka w odpowiedzi przesłany zostanie token.
3. Notyfikacje
Opisane w 1.3 i 1.4 powiadomienia wysyłane są dopóki wywoływany webhook nie zwróci poprawnej odpowiedzi 200 OK lub nie zostanie wyczerpany limit notyfikacji. System przerywa także wysyłkę, jeśli zostanie zwrócona odpowiedź z kodem 404 (Not Found) lub 418 (I’m A Teapot). Poniżej przedstawione zostały interwały, w jakich wysyłane są powiadomienia:
| Zakres | Interwał |
|---|---|
| 1-10 powiadomienie | Co 1 minutę |
| 11-20 powiadomienie | Co 3 minuty |
| 21-30 powiadomienie | Co 10 minut |
| 31-35 powiadomienie | Co 1 godzinę |
| 36 powiadomienie | 12 godzin po ostatnim powiadomieniu |