Przejdź do głównej zawartości

Opłata aktywacyjna i natychmiastowa aktywacja

Ostatnim krokiem onboardingu jest opłata aktywacyjna. Merchant wykonuje ją bezpośrednio ze swojego banku, bez przepisywania numerów rachunku i tytułu. Opłata pełni dwie role naraz: pokrywa koszt weryfikacji i potwierdza rachunek, na który merchant będzie otrzymywał wypłaty.

Do tego dochodzi krok opcjonalny - merchant loguje się do tego samego rachunku, a dpay potwierdza, że rachunek faktycznie należy do niego. Ten krok skraca aktywację z 1-2 dni roboczych do kilku minut.

Opłata jest bezzwrotna

Opłata pokrywa koszt weryfikacji, który ponosimy niezależnie od jej wyniku. Musisz poinformować o tym merchanta przed rozpoczęciem płatności - w naszym hostowanym flow jest to osobna, świadoma zgoda, a nie drobny druk. Jeśli budujesz własny interfejs, odpowiedzialność za ten komunikat jest po Twojej stronie.

Cały przepływ

Krok 1: pokaż listę banków

Zwracamy wyłącznie banki dostępne w danej chwili - wyłączone i chwilowo niesprawne są już odfiltrowane. Wynik zmienia się rzadko, więc warto go u siebie cache'ować.

GET/api/partner/v1/onboarding/{ref}/activation/banksBanki, przez które można opłacić aktywację.Pełny kontrakt w API Reference

Krok 2: pokaż obie kategorie bankowości

Banki różnią się tym, gdzie obsługują firmy. Część prowadzi konta firmowe w zwykłej bankowości internetowej, część ma osobny system dla firm. Nie da się tego wywnioskować z formy prawnej merchanta - dlatego pokaż obie kategorie i pozwól wybrać:

Wartość account_variantEtykieta dla merchantaKiedy
retailBankowość indywidualnaZwykłe logowanie; w wielu bankach także konta firmowe
companyBankowość firmowaOsobny system dla firm

GET /activation zwraca suggested_variant - użyj go jako domyślnego zaznaczenia, nie jako rozstrzygnięcia. Zły wariant kończy się tym, że merchant nie widzi swojego rachunku i nie jest w stanie zapłacić.

Krok 3: rozpocznij płatność

Kwoty nie podajesz - ustala ją dpay na podstawie typu podmiotu.

POST/api/partner/v1/onboarding/{ref}/activationRozpocznij opłatę aktywacyjną i odbierz adres banku.Pełny kontrakt w API Reference

Merchant musi zapłacić z rachunku zgłoszonego do wypłat. Płatność z innego konta nie aktywuje konta. Część banków pozwala nam z góry ograniczyć wybór do właściwego rachunku (supports_sender_account na liście banków); w pozostałych sprawdzamy zgodność po fakcie, więc warto o tym wymogu napisać w swoim interfejsie.

Nie obciążaj merchanta dwa razy

Powtórne wywołanie w trakcie trwającej płatności zwraca istniejącą próbę, nie tworzy drugiej. Po zaksięgowaniu opłaty kolejne wywołania zwracają 409 - opłata jest bezzwrotna i nigdy nie jest pobierana dwukrotnie. Po płatności odrzuconej lub anulowanej merchant może zacząć od nowa.

Krok 4: zaproponuj natychmiastową aktywację

Po zaksięgowaniu opłaty merchant ma wybór. Postaw go jasno, bo obie drogi są poprawne:

  • Aktywuj teraz - merchant loguje się do tego samego rachunku, aktywacja w kilka minut
  • Poczekam - bez logowania, aktywacja po zaksięgowaniu przelewu, 1-2 dni robocze
POST/api/partner/v1/onboarding/{ref}/activation/verify-ownerPotwierdzenie właściciela rachunku - natychmiastowa aktywacja.Pełny kontrakt w API Reference

Ten krok nic nie kosztuje - opłata jest już rozliczona. Jeśli potwierdzenie się nie powiedzie, merchant poprawia rachunek do wypłat i powtarza wyłącznie ten krok.

Krok 5: odpytuj status

GET/api/partner/v1/onboarding/{ref}/activationStan opłaty, potwierdzenia właściciela i aktywacji konta.Pełny kontrakt w API Reference

Potwierdzenie z banku przychodzi z bardzo różnym opóźnieniem - od sekund do godzin. Każdy stan nieterminalny traktuj jako „czekamy", nie jako niepowodzenie.

Jak czytać odpowiedź

PoleUwaga
statusStan płatności. null znaczy, że płatność nie została jeszcze rozpoczęta
sender_account_matchnull to nie to samo co false. null znaczy „nie ustalono" - bank nie podał rachunku nadawcy. false znaczy realną niezgodność
owner_resultmanual znaczy, że sprawę ogląda człowiek. Nie komunikuj tego merchantowi jako odmowy
activatedJedyne pole, po którym poznasz, że konto jest gotowe do przyjmowania płatności

Ścieżka zapasowa

Merchant zawsze może opłacić aktywację zwykłym przelewem - z danymi do przepisania i aktywacją po zaksięgowaniu. Trzymaj tę drogę widoczną, bo bywa jedyną możliwą:

  • banku merchanta nie ma na liście
  • usługa jest chwilowo niedostępna (503 na GET /activation/banks albo POST /activation)
  • merchant nie chce logować się do banku w cudzym interfejsie

Kwota jest w obu drogach taka sama; różni się tylko sposób zapłaty i czas aktywacji.

Czego nie da się przenieść do Twojego UI

Autoryzacja płatności i logowanie do banku zawsze odbywają się po stronie banku merchanta - dostajesz adres, pod który masz go skierować. Nie pośrednicz w danych logowania i nie osadzaj strony banku w ramce: banki blokują osadzanie, a próba skończy się pustym ekranem. Jeśli prowadzisz onboarding w iframe, otwórz adres banku w nowej karcie i odpytuj status u siebie.