Faktury do płatności Stripe wystawiane automatycznie w KSeF i ponad 20 systemach księgowych — architektura produktu SaaS Striptu
Jako współtwórca i CTO zaprojektowałem Striptu — usługę, która na podstawie transakcji Stripe automatycznie wystawia faktury w KSeF lub w systemie księgowym sprzedawcy. Wersja beta powstała w 3 miesiące, a produkt obsługuje dziś ponad 20 integracji.
Punkt wyjścia
Polskie firmy, które sprzedają przez Stripe — kursy, subskrypcje, oprogramowanie — muszą wystawiać faktury do każdej płatności. Na polskim rynku nie było rozwiązania, które pozwalałoby sprzedawcy automatycznie przenieść transakcję ze Stripe do KSeF albo najpierw do własnego systemu księgowego. W praktyce oznaczało to ręczne przepisywanie danych lub budowę własnych, kruchych integracji.
Trudność nie leży w samym połączeniu dwóch API. Każdy sprzedawca ma inaczej skonfigurowane konto Stripe: inne modele płatności, subskrypcje, rabaty, zwroty, waluty i sposób zbierania danych nabywcy. Rozwiązanie, które obsługuje tylko typowy scenariusz, zawodzi przy pierwszym nietypowym kliencie.
Striptu powstało jako wspólny startup z partnerem biznesowym. Odpowiadałem za architekturę i budowę produktu.
Kluczowe decyzje
Obsługa rzeczywistych konfiguracji, nie tylko typowego scenariusza. Założyłem, że wartość produktu polega na dokładnym zrozumieniu Stripe i obsłudze przypadków brzegowych, które pojawiają się u różnych sprzedawców. Zamiast ograniczać się do jednego wzorca konta, produkt obsługuje wszystkie konfiguracje, które da się jednoznacznie zinterpretować.
Jeden wspólny model transakcji. Wszystkie dane ze Stripe są parsowane do jednego, wewnętrznego modelu transakcji. Logika interpretacji Stripe jest oddzielona od logiki wystawiania faktur. Dzięki temu nowy system księgowy wymaga wyłącznie nowej integracji wyjściowej, bez zmian w obsłudze Stripe. Ta decyzja umożliwiła rozwój od kilku do ponad 20 integracji, obługując już systemy księgowe z poza Polski.
Webhooki jako źródło zdarzeń. Aplikacja reaguje na zdarzenia przesyłane przez Stripe, zamiast okresowo odpytywać API. Faktura powstaje w odpowiedzi na konkretną transakcję, a nie w cyklicznej synchronizacji.
Szybka wersja beta. Architekturę zaprojektowałem tak, aby pierwszą wersję można było udostępnić użytkownikom po 3 miesiącach, a kolejne integracje dodawać bez przebudowy rdzenia.
Zrealizowane zadanie
Zaprojektowałem i zbudowałem aplikację w Symfony, która przyjmuje webhooki Stripe, normalizuje dane do wspólnego modelu transakcji, podejmuje decyzję o wystawieniu faktury i przekazuje ją do KSeF lub wybranego systemu księgowego. Użytkownik otrzymuje informacje o transakcjach, których dane wymagają uzupełnienia.
Po uruchomieniu produktu pozostałem w roli CTO, a obecnie doradzam partnerowi w kwestiach technicznych przy dalszym rozwoju.
Efekty wdrożenia
- Wersja beta gotowa po 3 miesiącach pracy.
- Ponad 20 integracji z systemami księgowymi i KSeF, w tym Fakturownia, iFirma, wFirma i inFakt.
- Ponad 100 000 transakcji przetworzonych przez system.
- Produkt działa i jest rozwijany o kolejne integracje.
Podobny projekt?
Wystarczy krótki opis sytuacji — technologii, problemu, terminu. Odpowiadam w ciągu jednego dnia roboczego z oceną możliwości i proponowanym zakresem współpracy.
Umów konsultację