Przejdź do treści
Ostatnia aktualizacja

BLIK Level 0 + OneClick (Płatności bez kodu)

Połączenie usług BLIK Level 0 oraz OneClick pozwala na stworzenie najszybszego procesu zakupowego (checkoutu) na polskim rynku. W tym modelu klient wpisuje 6-cyfrowy kod BLIK bezpośrednio na stronie Twojego sklepu (Level 0), a przy okazji pierwszej płatności może zapisać Twój sklep jako zaufany. Każda kolejna płatność w Twoim serwisie będzie wymagała od niego już tylko jednego kliknięcia i potwierdzenia w aplikacji bankowej – całkowicie bez przepisywania kodu BLIK.


Wymagania formalne i rejestracja usługi

Uruchomienie płatności bez kodu wiąże się z restrykcyjnymi procedurami bezpieczeństwa narzuconymi przez Polski Standard Płatności (PSP - operatora BLIK).

Wymóg prowadzenia działalności

Zgłoszenie do usług BLIK Level 0 oraz OneClick jest dostępne wyłącznie dla podmiotów posiadających zarejestrowaną działalność gospodarczą ("z firmą"). SimPay nie oferuje wsparcia w tym zakresie dla osób prowadzących działalność nierejestrowaną.

Proces aktywacji krok po kroku:

  1. Zaloguj się do Panelu Partnera SimPay.
  2. Przejdź do zakładki Szczegóły usługi > Kanały płatności.
  3. Włącz najpierw kanał BLIK Level 0 – jest on fundamentem technicznym.
  4. Dopiero po aktywacji Level 0, możesz wysłać zgłoszenie o rejestrację modułu OneClick.

Twój sklep przed produkcyjnym uruchomieniem OneClick musi bezwzględnie spełniać oficjalne wytyczne i wymagania wizerunkowe. Zapoznaj się z nimi i dostosuj swój serwis: 👉 Oficjalna Checklista BLIK - Payment without code


Krok 1: Pierwsza płatność i rejestracja aliasu

Aby klient mógł płacić w przyszłości bez kodu, podczas jego pierwszej płatności musisz utworzyć tzw. alias (powiązanie Twojego konta użytkownika z systemem BLIK).

W tym celu wysyłasz standardowe żądanie do BLIK Level 0, przekazując 6-cyfrowy kod w obiekcie ticket.T6, a dodatkowo dołączasz obiekt alias.

👉 Zobacz dokładną specyfikację endpointu w API Reference

Fragment żądania (Request)

{
  "ticket": {
    "T6": "123456"
  },
  "alias": {
    "label": "Label zgodny z certyfikacją BLIK",
    "value": "unikalne_id_playera_lub_klienta_w_twoim_systemie",
    "type": "UID"
  }
}
  • label – Etykieta, która wyświetli się klientowi w jego aplikacji bankowej podczas potwierdzania zapytania o dodanie sklepu do zaufanych. Musi być zgodna z certyfikacją BLIK.
  • value – Twój wewnętrzny, unikalny identyfikator klienta (np. ID użytkownika z bazy danych).
  • type – Typ aliasu, dla integracji handlowych zawsze używaj wartości UID.

Krok 2: Oczekiwanie na aktywację (IPN)

Po udanej płatności z kodem, aplikacja mobilna banku wyświetla komunikat podobny do: "Czy chcesz zapisać ten sklep jako zaufany?". Proces ten odbywa się asynchronicznie.

Twój system musi teraz nasłuchiwać dedykowanego powiadomienia IPN dotyczącego zmiany statusu aliasu: blik:alias_status_changed.

W odpowiedzi webhooka otrzymasz m.in. pole data.id zawierające unikalny identyfikator tego powiązania. Gdy status zmieni się na alias_active, możesz zapisać identyfikator aliasu SimPay w swojej bazie danych przy koncie użytkownika.

👉 Sprawdź strukturę powiadomienia blik:alias_status_changed


Krok 3: Kolejne płatności (Prawdziwy OneClick)

Gdy alias jest aktywny, kolejna płatność nie wymaga już od klienta podawania kodu. Inicjując nową transakcję, całkowicie pomijasz obiekt ticket.

Nasze API oferuje dwie metody na zidentyfikowanie powracającego klienta.

👉 Zobacz endpoint płatności OneClick w API Reference

Metoda A: Identyfikacja za pomocą uuid

Przekazujesz indywidualny identyfikator aliasu zarejestrowany w SimPay, który otrzymałeś wcześniej w powiadomieniu IPN. Ponieważ wskazuje on na jedną konkretną aplikację bankową, transakcja zawsze przejdzie bezbłędnie.

{
  "alias": {
    "uuid": "019972b1-e4c0-714f-a10b-f88a158bee50",
    "label": "Label zgodny z certyfikacją BLIK"
  }
}

Metoda B: Identyfikacja za pomocą pary value i type

Przekazujesz swoje własne ID użytkownika z bazy danych. Jeśli użytkownik ma podpiętych kilka banków pod to ID, ta metoda może wymagać dodatkowej obsługi (zobacz sekcję błędu poniżej).

{
  "alias": {
    "value": "unikalne_id_playera_lub_klienta_w_twoim_systemie",
    "type": "UID",
    "label": "Label zgodny z certyfikacją BLIK"
  }
}

W obu przypadkach, po udanym żądaniu, aplikacja mobilna banku wyśle powiadomienie push bezpośrednio na telefon klienta z prośbą o autoryzację transakcji. Nasze API odpowie statusem HTTP 204 No Content.


Obsługa błędu: Wiele aplikacji bankowych (ALIAS_NOT_UNIQUE)

(Uwaga: Ten błąd może wystąpić wyłącznie wtedy, gdy do autoryzacji używasz Metody B – czyli własnego value + type).

Bardzo częstym scenariuszem jest sytuacja, w której klient posiada ten sam unikalny identyfikator aliasu (np. ten sam login/e-mail w Twoim sklepie) zarejestrowany w kilku różnych aplikacjach bankowych jednocześnie (np. aplikacja VeloBanku oraz PKO BP na jednym telefonie).

W takim wypadku system BLIK nie wie, do którego banku wysłać prośbę o płatność, a API SimPay zwróci błąd HTTP 400 Bad Request o kodzie ALIAS_NOT_UNIQUE.

Odpowiedź API (Błąd jednoznaczności aliasu)

{
  "success": false,
  "message": "Alias is not unique. Select interested alias by providing alias.blik_id alongside with alias.value and alias.type.",
  "data": {
    "alternatives": [
      {
        "value": "SIMSIM",
        "type": "UID",
        "label": "TEST APP 222",
        "blik_id": 953824
      },
      {
        "value": "SIMSIM",
        "type": "UID",
        "label": "TEST APP 111",
        "blik_id": 953793
      }
    ]
  },
  "errorCode": "ALIAS_NOT_UNIQUE"
}

Jak to rozwiązać w kodzie?

Gdy Twój backend otrzyma taki błąd, musisz wyświetlić użytkownikowi na stronie okienko z wyborem banku (wykorzystując nazwy przesłane w polach label, np. "Wybierz aplikację bankową: TEST APP 222 czy TEST APP 111").

Gdy użytkownik kliknie w odpowiedni bank, ponawiasz żądanie płatności OneClick, dopisując do obiektu alias otrzymany identyfikator blik_id:

{
  "alias": {
    "value": "SIMSIM",
    "type": "UID",
    "label": "TEST APP 222",
    "blik_id": 953824
  }
}

Powiadomienia IPN o statusie transakcji

Oprócz opisanego w Kroku 2 powiadomienia o statusie rejestracji samego aliasu (blik:alias_status_changed), przy każdej realizowanej transakcji (zarówno pierwszej autoryzowanej kodem, jak i każdej kolejnej OneClick) Twój system otrzyma standardowe powiadomienia IPN informujące o przepływie pieniędzy.

W momencie, gdy klient autoryzuje (lub odrzuci) płatność na swoim telefonie, SimPay wyśle do Twojej aplikacji dwa równoległe eventy:

  1. transaction:status_changed – Ogólne powiadomienie systemowe o zmianie statusu transakcji w SimPay (np. przejście ze statusu nowej na opłaconą transaction_paid lub odrzuconą). To na jego podstawie powinieneś finalizować zamówienie i wydawać towar.
  2. transaction_blik_level0:code_status_changed – Dedykowane powiadomienie specyficzne dla modułu BLIK Level 0. Zawiera ono szczegółowe, niskopoziomowe informacje techniczne bezpośrednio z Polskiego Standardu Płatności (PSP) dotyczące statusu samej próby autoryzacji kodu lub aliasu.

👉 Zobacz event transaction:status_changed

👉 Zobacz event transaction_blik_level0:code_status_changed