HTTPS API v2 / Wysyłanie wiadomości WhatsApp
Wywołanie adresu
Aby wysłać wiadomość WhatsApp za pośrednictwem Zdalnej obsługi, należy przesłać żądanie HTTP POST z treścią BODY w formacie JSON.
messages/send_whatsapp
Dostępne parametry
| Parametr | Typ | Przykładowa wartość lub format | Opis |
|---|---|---|---|
| username | String | login | Login użytkownika API. |
| password | String | haslo | Hasło użytkownika API. |
| whatsapp_id | String | Identyfikator agenta WhatsApp np. 54c53be2-cbb8-11ec-9d64-0242ac120002 | Identyfikator dostepny jest w naszym panelu, przypisany dla każdej stworzonej konfiguracji agenta WhatsApp. |
| phone | String|Array | +48500600700 | Numer lub tablica numerów telefonów. |
| message | Object | {} | Struktura wiadomości WhatsApp w postaci obiektu JSON. |
| details | Boolean | true, false lub brak | Parametr wyświetlający w odpowiedzi zwrotnej szczegóły wysłanych wiadomości. |
| date | DateTime | ISO np. „2015-02-22 12:25:55” |
Parametr opcjonalny, pozwalający na określenie terminu wysyłki dla wiadomości typu TEMPLATE. |
| unique_id | String|Array | np. 6asTD3fif98gj | Parametr opcjonalny, pozwalający na zdefiniowanie własnego identyfikatora wysyłanej wiadomości. Identyfikator może mieć minimalnie 3 znaki i maksymalnie 50 znaków alfanumerycznych (a-z, A-Z, 0-9). Dla grupowych wysyłek, kolejne unique_id muszą być unikalne oraz ilość unique_id musi być zgodna z ilością numerów. |
| group_id | String|Array | np. 123456789 |
Identyfikator lub identyfikatory grup w Panelu Klienta. Identyfikatory te można pobrać korzystając z akcji groups/index lub kopiując je z poziomu edycji grupy w Panelu Klienta. |
Parametry oznaczone jako wymagane muszą zostać przekazane w każdym żądaniu. Pozostałe parametry są opcjonalne i umożliwiają m.in. określenie typu wiadomości, zaplanowanie wysyłki itp.
Typy wiadomości
API umożliwia wysyłanie wiadomości WhatsApp w dwóch trybach: Standard oraz Template. Wybór odpowiedniego trybu zależy od tego, czy z odbiorcą prowadzona jest aktywna konwersacja.
- Standard - wiadomość wysyłana w ramach aktywnej konwersacji z użytkownikiem. Może zostać wysłana wyłącznie w otwartym oknie obsługi klienta, zgodnie z zasadami WhatsApp Business. Podczas wysyłki musisz zdefiniować pełną strukturę wiadomości (typ, header, body oraz pozostałe elementy payloadu).
- Template - wiadomość wysyłana z wykorzystaniem szablonu zatwierdzonego przez Meta. Może służyć zarówno do zainicjowania nowej konwersacji z odbiorcą, jak i do kontynuowania komunikacji po zakończeniu okna obsługi klienta. Dostępne są szablony kategorii Marketing, Utility oraz Authentication. Podczas wysyłki wskazywany jest wcześniej zatwierdzony przez Metę szablon oraz przekazywane są wartości parametrów wymaganych przez dany szablon.
1. Standard TEXT - wiadomość tekstowa

Przykładowa struktura JSON:
{
"standard_text": {
"body":"Przykładowa treść wiadomości",
"link_preview":true
}
}
Obiekt
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| body | String | Tak | Treść wiadomości tekstowej wysyłanej do odbiorcy. Maksymalnie 4096 znaków. Adresy URL są automatycznie zamieniane na hiperłącza. |
| link_preview | Boolean | Nie | Określa, czy WhatsApp ma generować podgląd linków zawartych w wiadomości (np. tytuł strony, opis, miniatura). Dostępne opcje true | false. |
Wiadomość standard_text to najprostszy typ wiadomości WhatsApp, który nie wymaga użycia szablonów zatwierdzonych przez Meta.
Jeśli w treści znajdują się linki, parametr
2. Standard BUTTON - wiadomość z przyciskami odpowiedzi (REPLY BUTTON)

Przykładowa struktura JSON:
{
"standard_button": {
"header":{
"image":"https://sciezka_do_pliku"
},
"body":"Przykładowa treść wiadomości",
"footer":"Przykładowa treść stopki",
"buttons":{
"1":{
"text":"Opis buttona",
"template":"btn-1",
"type":"reply"
},
"2":{
"text":"Opis buttona",
"template":"btn-2",
"type":"reply"
}
}
}
}
Obiekt
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| header | Object | Nie | Nagłówek wiadomości. Może zawierać obraz wyświetlany nad treścią wiadomości. |
| header.image | String | Nie | Publiczny adres URL obrazu wyświetlanego w nagłówku wiadomości. Obsługiwany format to JPEG, PNG, rozmiar do 5MB. |
| body | String | Tak | Główna treść wiadomości wyświetlana odbiorcy. Maksymalnie 1024 znaków. Adresy URL są automatycznie zamieniane na hiperłącza. |
| footer | String | Nie | Tekst wyświetlany w stopce wiadomości. Maksymalnie 60 znaków. |
| buttons | Object | Tak | Lista interaktywnych przycisków wyświetlanych pod wiadomością (maksymalnie 3 elementy). |
Parametry obiektu buttons:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| text | String | Tak | Tekst wyświetlany na przycisku. Maksymalnie 20 znaków. |
| template | String | Tak | Element może zostać wykorzystany do identyfikacji wybranej odpowiedzi. Zostaje przekazywany w powiadomieniu Webhook pod kluczem data po kliknięciu przycisku. Maksymalna długość 200 znaków. |
| type | String | Tak | Typ przycisku. Aktualnie obsługiwana wartość to reply. |
3. Standard CTA - wiadomość z przyciskiem przekierowania (CTA URL)

Przykładowa struktura JSON:
{
"standard_cta": {
"header":{
"image":"https://sciezka_do_pliku"
},
"body":"Przykładowa treść wiadomości",
"footer":"Przykładowa treść stopki",
"buttons":{
"1":{
"text":"Opis buttona",
"url":"https://serwersms.pl",
"type":"url"
}
}
}
}
Obiekt
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| header | Object | Nie | Nagłówek wiadomości. Może zawierać obraz wyświetlany nad treścią wiadomości. |
| header.image | String | Nie | Publiczny adres URL obrazu wyświetlanego w nagłówku wiadomości. Obsługiwany format to JPEG. PNG, rozmiar do 5MB. |
| body | String | Tak | Główna treść wiadomości wyświetlana odbiorcy. Maksymalnie 1024 znaków. Adresy URL są automatycznie zamieniane na hiperłącza. |
| footer | String | Nie | Tekst wyświetlany w stopce wiadomości. Maksymalnie 60 znaków. |
| buttons | Object | Tak | Interaktywny przycisk wyświetlany pod wiadomością (tylko jeden element). |
Parametry obiektu buttons:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| text | String | Tak | Tekst wyświetlany na przycisku. Maksymalnie 20 znaków. |
| url | String | Tak | Adres URL służacy do przekierowania. |
| type | String | Tak | Typ przycisku. Aktualnie obsługiwana wartość to url. |
4. Template MARKETING INDIVIDUAL - wiadomość szablonowa marketingowa z przyciskami (URL, CALL, REPLY)

Przykładowa struktura JSON:
{
"template_marketing_individual": {
"header":{
"image":"https://sciezka_do_pliku"
},
"name":"serwersmspl_indywidualny_1",
"params":{
"body":{
"+48500600700":{
"#IMIE#":"Jan",
"#NAZWISKO#":"Kowalski"
}
}
}
}
}
Obiekt template definiuje wiadomość szablonową WhatsApp, należący do jednej z trzech kategorii: Marketing, Utility lub Authentication.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| header.image | String | Nie | Publiczny adres URL obrazu wyświetlanego w nagłówku wiadomości. |
| name | String | Tak | Nazwa idetyfikująca szablon. |
| params | Object | Nie | Lista parametrów służąca do personalizacji treści. |
Obiekt params umożliwia przekazanie indywidualnych wartości zmiennych dla każdego odbiorcy wiadomości. Kluczem obiektu 'body' jest numer telefonu odbiorcy, natomiast jego wartością jest lista parametrów wykorzystywanych podczas personalizacji treści wiadomości:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| body | Object | Nie | Lista parametrów przypisanych do poszczególnych odbiorców. |
| body.{phone} | Object | Tak* | Obiekt zawierający wartości parametrów dla wskazanego numeru telefonu. Kluczem jest numer odbiorcy w formacie międzynarodowym (E.164). |
| body.{phone}.{parameter} | String | Tak* | Wartość parametru wykorzystywana podczas personalizacji wiadomości, np. #IMIE#, #NAZWISKO#. |
* - tylko dla spersonalizowanego szablonu
Obsługiwane typy plików
| Typ obrazu | Rozszerzenie | Typ MIME | Maksymalny rozmiar |
|---|---|---|---|
| JPEG | .jpg / .jpeg | image/jpeg | 5 MB |
| PNG | .png | image/png | 5 MB |
Zwrotna odpowiedź API
W zależności od przesłanych danych SerwerSMS.pl wygeneruje w odpowiedzi dokument w formacie JSON/XML z informacją na temat wykonanych akcji. I tak w przypadku prawidłowego wysłania wiadomości SMS klient otrzyma przykładowo następują informację:
{
"success":true,
"queued":1,
"unsent":0
}
W przypadku podania dodatkowego parametru details=true, odpowiedź zwrotna zostanie uzupełniona o szczegóły wysyłanych wiadomości, które można zapisać w bazie danych po stronie oprogramowania klienta:
{
"success":true,
"queued":1,
"unsent":0,
"items":[{
"id":"1c142d81c7",
"phone":"+48500600700",
"status":"queued",
"queued":"2026-06-30 16:49:05",
"stat_id":3253
}]
}
Parametr "success" zawiera informację o powodzeniu przeprowadzonej operacji. W atrybutach "queued" oraz "unset" znajdują się liczby skolejkowanych oraz niewysłanych wiadomości. Sekcja "items" zawiera numery telefonów i ID wiadomości przekazanych do wysłania (oraz wiadomości, których nie skolejkowano z określonego powodu). Unikalny znacznik wiadomości SMS może być wykorzystany później do sprawdzenia w sposób zdalny stanu wysyłki konkretnej wiadomości SMS. W parametrze "text" widnieje treść wysyłanej wiadomości SMS. Numer telefonu jest automatycznie poprawiany i wyświetlany w pełnym formacie wymaganym przez SerwerSMS.pl czyli z numerem kierunkowym kraju (np. +48) na początku.
Oprócz tego może zostać wygenerowany błąd ogólny gdzie nie ma rozgraniczenia na skolejkowane i błędne. Może to nastąpić np. w sytuacji gdy klient nie zdefiniuje treści wiadomości, nie poda numerów telefonów, jego konto nie jest aktywne lub wystąpił inny problem opisany w komunikatach błędów. W przypadku braku odpowiedniego uprawnienia zostanie wygenerowany następujący komunikat:
{
"error":{
"code":6200,
"type":"WhatsAppError",
"message":"Brak uprawnień do wysyłki wiadomości"
}
}
Komunikaty błędów
| Kod błędu | Opis |
|---|---|
| 6200 | Brak uprawnień do wysyłki wiadomości |
| 6201 | Identyfikator agenta jest nieprawidłowy lub agent jest nieaktywny |
| 6202 | Brak przekazanej wiadomości lub jej struktura jest nieprawidłowa |
| 6203 | Nieprawidłowy szablon wiadomości |
| 6204 | Numery muszą posiadać parametry ustalone w szablonie |
| 6205 | Wiadomość musi zawierać nagłówek header, ponieważ szablon został w takiej formie zdefiniowany |
| 6206 | Nieprawidłowy typ szablonu dla wskazanej struktury wiadomości |
Zalecane ustawienia
W przypadku średnich i dużych ilości wysyłanych wiadomości rzędu kilku tysięcy lub więcej, zalecane jest przekazywanie wiadomości w „paczkach” po ok 50 numerów w jednym zapytaniu. Przyspieszy to znacznie proces przekazywania danych do SerwerSMS.pl i zmniejszy ilość koniecznych do wysłania zapytań.
Listowanie szablonów
System umożliwia zdalne listowanie szablonów WhatsApp. Aby przy pomocy zdalnej obsługi wylistować szablony, należy wywołać określony adres URL metodą POST.
templates/whatsapp
Dostępne parametry
| Parametr | Typ | Wymagany | Przykładowa wartość lub format | Opis |
|---|---|---|---|---|
| username | String | Tak | Login | Login użytkownika API. |
| password | String | Tak | Haslo | Hasło użytkownika API. |
| whatsapp_id | String | Nie | 54c53be2-cbb8-11ec-9d64-0242ac120002 | Parametr opcjonalny umożliwiający filtrowanie szablonów tylko dla wybranego agenta WhatsApp. |
| sort | String | Nie | name | Parametr opcjonalny umożliwiający sortowanie danych według nazwy szablonu. |
| order | String | Nie | asc|desc | Parametr opcjonalny umożliwiający zmianę kolejności sortowania. |
Parametry oznaczone pogrubieniem są obowiązkowe. Pozostałe są opcjonalne.
Zwrot odpowiedzi
{
"items":[{
"whatsapp_id":"54c53be2-cbb8-11ec-9d64-0242ac120002",
"name":"Nazwa szablonu",
"category":"marketing",
"language":"pl",
"template":"serwersms_indywidualny_1",
"params":{
"#IMIE#":"Jan"
},
"quality":"green",
"status":"active",
"created":"2026-06-30 09:00:00"
},
{
"whatsapp_id":"54c53be2-cbb8-11ec-9d64-0242ac120002",
"name":"Nazwa szablonu",
"category":"standard",
"template":{
"standard_cta":{
"body":"Treść wiadomości",
"buttons":{
"1":{
"text":"Kliknij",
"url":"http://serwersms.pl",
"type":"url"
}
}
}
},
"created":"2026-06-30 09:00:00"
}
]
}
| Parametr | Typ | Opis | Przykład |
|---|---|---|---|
| whatsapp_id | String | Identyfikator agenta WhatsApp w formie UUID. | 54c53be2-cbb8-11ec-9d64-0242ac120002 |
| name | String | Nazwa szablonu wyświetlana użytkownikowi. | Nazwa szablonu |
| category | String | Kategoria szablonu (marketing, standard, utility, authentication). | marketing |
| language | String | Kod języka szablonu. | pl |
| template | String |
Techniczna nazwa (identyfikator) szablonu w WhatsApp, używana do wysyłki |
serwersms_indywidualny_1 |
| structure | Object |
Struktura obiektu szablonu w formie JSON. |
{} |
| params | Object | Obiekt w formie JSON zawierający parametry spersonalizowane szablonu. Pole występuje tylko dla szablonów posiadających odpowiednie tagi zmiennych. | {"#IMIE#":"Jan"} |
| quality | String | Ocena jakości szablonu nadawana przez WhatsApp (green, yellow, red). | green |
| status | String | Status szablonu. | active |
| created | DateTime | Data i godzina utworzenia szablonu w formie ISO. | 2026-06-30 09:00:00 |