# Billingowanie SMS

Koszt wysyłki SMS zależy od jego długości, która jest determinowana przez rodzaj znaków użytych w treści. System automatycznie dobiera odpowiednie kodowanie (GSM-7 lub Unicode), co bezpośrednio wpływa na limit znaków w pojedynczej wiadomości.

Poniższe zasady są zgodne z globalnymi standardami GSM i dotyczą wszystkich wysyłek (zarówno z panelu, jak i przez API).

### Wiadomość standardowa (Kodowanie GSM-7)

Jeśli Twoja wiadomość składa się wyłącznie ze znaków z podstawowego alfabetu łacińskiego, cyfr i podstawowych symboli, jest kodowana w oszczędnym standardzie GSM-7.

* Pojedynczy SMS: **do 160 znaków**.
* Wiadomości łączone: Każdy kolejny segment (SMS) to **153 znaki** (system rezerwuje miejsce na instrukcję łączenia wiadomości).

#### Bezpieczne znaki (liczone jako 1 znak):

| Rodzaj       | Znaki                                                             |
| ------------ | ----------------------------------------------------------------- |
| Litery       | A-Z, a-z                                                          |
| Cyfry        | 0-9                                                               |
| Symbole      | @ £ $ ¥ \_ ! " # % & ' ( ) \* + , - . / : ; < = > ? ¡ ¿ § ¤       |
| Greckie/Inne | Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Ä ä Ö ö Ñ ñ Ü ü à ò ù å Å è é É ì ç Ø ø Æ æ ß |

{% hint style="warning" %}
**Uwaga na znaki rozszerzone (liczone podwójnie)**&#x20;

Alfabet GSM-7 posiada zestaw znaków, które mimo że nie zmieniają kodowania na Unicode, zajmują 2 bajty. Oznacza to, że każdy z nich zabiera 2 znaki z dostępnego limitu.

Są to: `^`, `{`, `}`, `\`, `[`, `~`, `]`, `|`, `€`.
{% endhint %}

#### Tabela naliczania (GSM-7):

| Ilość znaków     | Liczba SMS |
| ---------------- | ---------- |
| 1-160 znaków     | 1          |
| 161-306 znaków   | 2          |
| 307-459 znaków   | 3          |
| 460-612 znaków   | 4          |
| 613-765 znaków   | 5          |
| 766-918 znaków   | 6          |
| 919-1071 znaków  | 7          |
| 1072-1224 znaków | 8          |
| 1225-1377 znaków | 9          |

### Wiadomość ze znakami specjalnymi (Kodowanie Unicode)

Użycie w treści choćby jednego znaku spoza tabeli GSM-7 wymusza zmianę kodowania całej wiadomości na Unicode (UCS-2). Jest to niezbędne, aby poprawnie wyświetlić znaki diaktryczne czy emoji na telefonie odbiorcy.

**Co zmienia kodowanie na Unicode?**

* Polskie znaki: `ą`, `ć`, `ę`, `ł`, `ń`, `ó`, `ś`, `ź`, `ż`.
* Inne alfabety: Cyrylica (np. `Б`, `Д`, `Ж`), Hebrajski, Arabski.
* Znaki diakrytyczne: Czeskie/słowackie (`č`, `ž`), francuskie "daszki" (`â`, `ô`), hiszpańskie akcenty (`á`, `í`).
* Emoji: np. 🙂, 🔥, ❤️.

Limity dla Unicode:

* Pojedynczy SMS: **do 70 znaków**.
* Wiadomości łączone: Każdy kolejny segment to **67 znaków**.

#### Tabela naliczania (Unicode):

| Ilość znaków   | Liczba SMS |
| -------------- | ---------- |
| 1-70 znaków    | 1          |
| 71-134 znaków  | 2          |
| 135-201 znaków | 3          |
| 202-268 znaków | 4          |
| 269-335 znaków | 5          |
| 336-402 znaków | 6          |
| 403-469 znaków | 7          |
| 470-536 znaków | 8          |
| 537-603 znaków | 9          |

{% hint style="info" %}

#### Wpływ personalizacji na koszt

Jeśli używasz tagów personalizacyjnych (np. `##imie##`), końcowa długość wiadomości będzie różna dla każdego odbiorcy. Może to spowodować, że część bazy zostanie rozliczona jako 1 SMS, a część jako 2 SMS-y.

Przykład: Załóżmy, że Twój szablon (z polskimi znakami) ma 65 znaków.

* Dla imienia "Anna" (4 znaki) – wiadomość ma 69 znaków. Mieści się w limicie 70. -> Koszt: 1 SMS.
* Dla imienia "Katarzyna" (9 znaków) – wiadomość ma 74 znaki. Przekracza limit 70. -> Koszt: 2 SMS.\
  \
  Planując kampanię, zawsze zostawiaj bezpieczny margines znaków, uwzględniając najdłuższe dane w Twojej bazie (np. długie nazwiska lub nazwy miast).&#x20;
  {% endhint %}

{% hint style="success" %}
**Rekomendacja:** Przed wysyłką zawsze zweryfikuj w naszym panelu, jak system zliczył znaki w Twojej wiadomości. Licznik znaków na bieżąco pokazuje, z ilu części będzie składał się SMS, co pozwala uniknąć niespodziewanych kosztów.
{% endhint %}
