Hurtownia B2B: dwuetapowe przypomnienia SMS o płatnościach za faktury
Hurtownia materiałów budowlanych sprzedająca firmom wykonawczym z 14- i 30-dniowym terminem płatności. Około 900 faktur miesięcznie, dział finansowy z dwiema osobami, ERP z modułem należności. Windykacja polegała na telefonach księgowej po dwóch tygodniach od terminu i na wezwaniach listownych, które kosztowały więcej niż część zaległości.
Problem
Około 25 % faktur było płaconych po terminie, średnio 12 dni za późno. Nie chodziło o złą wolę: właściciel małej firmy budowlanej dostaje kilkadziesiąt faktur miesięcznie i tę z hurtowni po prostu przeoczał. Telefon księgowej trafiał w porę rzadko, a jak trafiał, to często w środku dnia na budowie.
Firma chciała przypomnień, które nie psują relacji z klientem, są tanie i nie wymagają ręcznej pracy. E-mail odpadł od razu: faktury i tak szły mailem i to właśnie one ginęły. Telefon zostawiono na trzeci etap, dla należności naprawdę przeterminowanych.
Rozwiązanie
Wdrożono sekwencję dwuetapową, uruchamianą codziennie rano przez skrypt przy ERP (Python, biblioteka przypominamy z PyPI):
- 3 dni przed terminem, tylko dla faktur nieopłaconych: „Przypominamy: faktura FV/2026/09/0412 na 4 380,00 zl platna do 10.09. Nr konta jak na fakturze. Hurtownia Budmax". Ton neutralny, bez słowa „windykacja".
- 2 dni po terminie, jeśli nadal brak wpłaty: „Nie odnotowalismy wplaty za FV/2026/09/0412 (4 380,00 zl, termin 10.09). Jesli juz zaplacono, prosimy zignorowac. Kontakt: 22 123 45 67".
Skrypt pobiera z ERP faktury z odpowiednią datą terminu i statusem „nieopłacona", dla każdej wysyła SMS przez POST /v1/messages z reference równym numerowi faktury i Idempotency-Key w postaci fv-<numer>-etap1 / etap2. Dzięki temu skrypt można uruchomić ponownie tego samego dnia bez ryzyka podwójnego SMS-a. Treści celowo bez polskich znaków, żeby zmieścić kwotę, numer faktury i termin w jednej części.
Webhook PUT /v1/account/webhook zapisuje status doręczenia w ERP przy fakturze. Jeśli SMS etapu 2 wraca jako message.undelivered, faktura od razu trafia na listę do telefonu księgowej, bo prawdopodobnie numer w kartotece klienta jest nieaktualny.
Przebieg wdrożenia
- Konto testowe, wysyłka obu szablonów na telefony działu finansowego, ustalenie z właścicielem tonu wiadomości (bez gróźb, z opcją „jeśli już zapłacono, zignoruj").
- Zgłoszenie nadpisu z nazwą hurtowni; weryfikacja podstawy prawnej: SMS o własnej fakturze to komunikacja w ramach umowy, nie marketing (szczegóły w artykule o RODO).
- Skrypt Pythona przy ERP: zapytanie o faktury na T−3 i T+2, wysyłka z reference i Idempotency-Key, cron o 9:00 w dni robocze.
- Webhook statusów zapisujący doręczenie przy fakturze; uruchomienie na jednym segmencie klientów (mniejsze firmy) przez miesiąc.
- Włączenie dla wszystkich klientów z odroczonym terminem, telefon księgowej pozostaje jako etap 3 dla faktur 14 dni po terminie.
Wyniki (orientacyjne)
Liczby są orientacyjne, ale mechanizm działa przewidywalnie: pierwszy SMS przed terminem załatwia większość „zapomniałem", drugi po terminie wyłapuje resztę bez eskalacji. Przy kilkuset złotych miesięcznie koszt jest pomijalny wobec poprawy płynności rzędu dziesiątek tysięcy złotych wcześniej spływających należności. Skutek uboczny: aktualizacja kilkudziesięciu nieaktualnych numerów w kartotekach klientów.
Bałem się, że klienci uznają SMS za nachalny. Było odwrotnie. Kilku zadzwoniło podziękować, że przypominamy przed terminem, bo wcześniej płacili odsetki za przeoczenie.
Co możesz przenieść do siebie
- Etap 1 przed terminem, etap 2 tuż po: większość efektu bez jednego telefonu. Trzeci etap zostaw ludziom.
- Kwota, numer faktury, termin w treści; klient nie musi niczego szukać. Zdanie „jeśli już zapłacono, zignoruj" chroni relację przy opóźnieniach księgowania.
- Wysyłaj tylko dla faktur nadal nieopłaconych w dniu wysyłki; sprawdzaj status w ERP tuż przed wywołaniem API, nie dzień wcześniej.
- Idempotency-Key z numerem faktury i etapem pozwala bezpiecznie ponawiać skrypt.
- Szablony i zasady tonu w artykule Windykacja SMS: jak przypominać o płatnościach, kwestie prawne w RODO a wysyłka SMS.
Uruchom przypomnienia o płatnościach
Skrypt przy ERP, dwa szablony i klucz API to całe wdrożenie. Konto testowe z 25 SMS-ami dostajesz od razu po rejestracji.
Załóż kontoWolisz porozmawiać? [email protected] · +48 533 991 881