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.