Filozofia Dla kogo Jak działamy Realizacje Blog Cennik Opowiedz o pomyśle EN
Technologia

Integracja systemu z pocztą, fakturowaniem i płatnościami - jak to spinamy

Najczęstsze integracje aplikacji na zamówienie, jak je spinamy, co podbija koszt i jakich pułapek unikać. Praktyka studia C3S.PL.

Integracja to połączenie Twojej aplikacji z zewnętrznym systemem - fakturowaniem, płatnościami, pocztą czy kurierem - tak, by dane przepływały automatycznie zamiast być przepisywane ręcznie. To zwykle miejsce, gdzie system na zamówienie daje najwięcej oszczędności czasu, ale też jeden z głównych czynników kosztu. Poniżej, jak to spinamy i na co uważać.

Najczęstsze integracje

Jak je spinamy

Integracja działa najpewniej, gdy zewnętrzny system ma dobre, udokumentowane API. Wtedy łączymy systemy, obsługujemy błędy (co, gdy druga strona nie odpowie) i testujemy na realnych danych. Gorzej, gdy API jest ubogie lub niestabilne - wtedy integracja kosztuje więcej i wymaga obejść.

Co podbija koszt

To jeden z głównych czynników wyceny. → Ile kosztuje aplikacja na zamówienie

Pułapki

Najczęstsza: założenie, że integracja zrobiona raz działa wiecznie. Zewnętrzni dostawcy zmieniają API - dlatego integracje wymagają monitoringu i utrzymania. → Utrzymanie aplikacji po wdrożeniu

Typy integracji i jak się je realizuje (API, webhooki)

Większość integracji opiera się na dwóch wzorcach, które dobrze się uzupełniają.

Pierwszy to API typu request-response. Twoja aplikacja wysyła zapytanie do zewnętrznego systemu i czeka na odpowiedź - na przykład „wystaw fakturę z tymi pozycjami” albo „pobierz status przesyłki”. Inicjatywa jest po Twojej stronie, więc masz kontrolę nad tym, kiedy i co pytasz. Wadą jest to, że żeby dowiedzieć się o zmianie, musisz odpytywać (tzw. polling), co przy częstych sprawdzeniach bywa nieefektywne.

Drugi to webhooki. Tu role się odwracają: to dostawca powiadamia Twoją aplikację, gdy coś się wydarzy. Klient opłacił zamówienie, kurier odebrał paczkę, faktura zmieniła status - dostawca wysyła żądanie na wskazany przez Ciebie adres (URL). Webhooki są wydajne, bo eliminują ciągłe odpytywanie, ale wymagają publicznie dostępnego punktu odbioru i ostrożnej obsługi (o czym dalej).

W praktyce spina się oba podejścia. API służy do wykonywania akcji, webhooki - do reagowania na zdarzenia, których sami nie wywołaliśmy. Trzeci, prostszy wariant to eksport lub import plików (np. cykliczny eksport danych do systemu księgowego), stosowany, gdy druga strona nie udostępnia nowoczesnego API. Wybór wzorca zależy od tego, co oferuje dostawca - i to często przesądza o nakładzie pracy. → Aplikacja na zamówienie - przewodnik

Integracja płatności (np. Stripe/PayU) krok po kroku

Płatności to integracja, w której błędy kosztują najwięcej, bo dotyczą pieniędzy klienta. Schemat jest zwykle podobny niezależnie od dostawcy.

  1. Inicjacja płatności. Aplikacja tworzy w bramce obiekt płatności (kwota, waluta, dane zamówienia) i otrzymuje w zamian identyfikator oraz adres, na który kierujemy klienta.
  2. Przekierowanie lub formularz. Klient płaci po stronie bramki albo przez osadzony, certyfikowany formularz. Kluczowa zasada: dane kart nie przechodzą przez Twój serwer, co radykalnie zmniejsza zakres wymagań bezpieczeństwa.
  3. Powrót i potwierdzenie. Po zapłacie klient wraca do aplikacji. Tu uwaga - powrót klienta to nie jest wiarygodne źródło informacji o płatności. Klient może zamknąć kartę przed przekierowaniem.
  4. Webhook jako źródło prawdy. Status zamówienia zmieniamy dopiero na podstawie webhooka od bramki, potwierdzającego rzeczywiste zaksięgowanie środków.

Najczęstszy błąd to oznaczanie zamówienia jako opłaconego na podstawie powrotu klienta zamiast webhooka. Drugi to brak weryfikacji podpisu webhooka - bez tego ktoś mógłby podszyć się pod bramkę. Trzeci to ignorowanie idempotencji, przez co podwójnie wysłany webhook tworzy dwa zamówienia. Bezpieczna obsługa danych płatniczych to też temat szerszy. → Bezpieczeństwo danych w aplikacji

Integracja fakturowania i poczty (e-mail transakcyjny)

Fakturowanie zwykle spina się z systemem księgowym lub usługą wystawiania faktur przez API. Aplikacja przekazuje dane zamówienia (kontrahent, pozycje, stawki VAT), a system zwraca numer faktury i dokument PDF. Ważne jest, by numeracja i dane podatkowe powstawały po stronie systemu odpowiedzialnego za zgodność, a nie były wymyślane w aplikacji. Typowe pułapki to zaokrąglenia kwot, obsługa korekt oraz różne stawki VAT - warto je przetestować na realnych przypadkach, zanim trafią do produkcji.

Poczta transakcyjna to e-maile wywołane zdarzeniem: potwierdzenie zamówienia, faktura w załączniku, reset hasła. Różni się od newslettera tym, że musi dotrzeć niezawodnie i szybko. W praktyce wysyła się ją przez dostawcę e-maila transakcyjnego z gotowym API, co zdejmuje problem dostarczalności. Aby wiadomości nie lądowały w spamie, konfiguruje się rekordy SPF, DKIM i DMARC dla domeny nadawcy. Osobny wątek to odbiór poczty (IMAP) - na przykład wiązanie przychodzącej korespondencji z kontaktami w CRM. To bywa kłopotliwe, bo formaty wiadomości są nieprzewidywalne, a parsowanie treści wymaga obsługi wielu wyjątków.

Obsługa błędów, ponawianie i idempotencja

Integracja łączy systemy, nad którymi nie masz pełnej kontroli, więc założenie projektowe brzmi: druga strona kiedyś nie odpowie. Liczy się to, jak aplikacja się wtedy zachowa.

To właśnie te przypadki brzegowe, a nie „szczęśliwa ścieżka”, pochłaniają większość czasu i są głównym powodem, dla którego solidna integracja kosztuje więcej, niż się początkowo wydaje.

FAQ

Z jakimi systemami można zintegrować aplikację na zamówienie? Najczęściej z fakturowaniem, bramkami płatności, pocztą e-mail (IMAP/SMTP), API kurierów i systemami księgowymi. Zakres zależy od dostępności API danego dostawcy.

Co podbija koszt integracji? Brak dobrego API po stronie zewnętrznego systemu, konieczność obsługi wielu przypadków błędów oraz wymóg synchronizacji w czasie rzeczywistym. Im gorzej udokumentowane API, tym droższa integracja.

Czy integracja może się zepsuć po czasie? Tak - gdy zewnętrzny dostawca zmieni swoje API. Dlatego integracje wymagają monitoringu i okresowego utrzymania, ujętego w kosztach po wdrożeniu.

Czym różni się integracja przez API od webhooków? API to zapytania inicjowane przez Twoją aplikację (Ty pytasz, dostawca odpowiada). Webhook to powiadomienie wysyłane przez dostawcę, gdy coś się wydarzy (np. opłacenie faktury). W praktyce łączy się oba: API do akcji, webhook do reagowania na zdarzenia.

Co to jest idempotencja i dlaczego ma znaczenie przy płatnościach? Idempotencja oznacza, że to samo żądanie wykonane wielokrotnie daje ten sam efekt co jednokrotne. Przy płatnościach chroni przed podwójnym obciążeniem klienta, gdy żądanie zostanie powtórzone po przerwanym połączeniu. Realizuje się ją kluczem idempotentności wysyłanym w nagłówku.

Czy do wysyłki e-maili transakcyjnych potrzebny jest własny serwer SMTP? Nie jest konieczny. W praktyce częściej używa się dostawcy e-maila transakcyjnego z gotowym API, co zdejmuje problem dostarczalności i konfiguracji SPF, DKIM oraz DMARC. Własny SMTP bywa uzasadniony tylko przy szczególnych wymaganiach co do danych.


Czytaj dalej

Masz pomysł na system?

Zamieńmy go w działającą aplikację.

Bezpłatna konsultacja i wycena w 48h - bez zobowiązań, z jasnymi widełkami.