{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"BLIK Level 0 + OneClick (Płatności bez kodu)","description":"Znajdziesz tutaj wszystkie niezbędne informacje dotyczące integracji i obsługi systemu płatności SimPay.pl","siteUrl":"https://docs.simpay.pl","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"blik-level-0--oneclick-płatności-bez-kodu","__idx":0},"children":["BLIK Level 0 + OneClick (Płatności bez kodu)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Połączenie usług ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["BLIK Level 0"]}," oraz ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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 – ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["całkowicie bez przepisywania kodu BLIK"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"wymagania-formalne-i-rejestracja-usługi","__idx":1},"children":["Wymagania formalne i rejestracja usługi"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uruchomienie płatności bez kodu wiąże się z restrykcyjnymi procedurami bezpieczeństwa narzuconymi przez Polski Standard Płatności (PSP - operatora BLIK)."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Wymóg prowadzenia działalności"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Zgłoszenie do usług BLIK Level 0 oraz OneClick jest dostępne ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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ą."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"proces-aktywacji-krok-po-kroku","__idx":2},"children":["Proces aktywacji krok po kroku:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Zaloguj się do Panelu Partnera SimPay."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Przejdź do zakładki ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Szczegóły usługi > Kanały płatności"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Włącz najpierw kanał BLIK Level 0"]}," – jest on fundamentem technicznym."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Dopiero po aktywacji Level 0, możesz wysłać zgłoszenie o rejestrację modułu ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OneClick"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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:"," ","👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.blik.com/lp/payment-without-code/Level-0-Oneclick-Checklist.141951240.html#Level0OneclickChecklist-Level0zOneClickUID-anextensionoftheguidelinesforPaymentswithoutaBLIKcode"},"children":["Oficjalna Checklista BLIK - Payment without code"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"krok-1-pierwsza-płatność-i-rejestracja-aliasu","__idx":3},"children":["Krok 1: Pierwsza płatność i rejestracja aliasu"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Aby klient mógł płacić w przyszłości bez kodu, podczas jego pierwszej płatności musisz utworzyć tzw. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["alias"]}," (powiązanie Twojego konta użytkownika z systemem BLIK)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["W tym celu wysyłasz standardowe żądanie do BLIK Level 0, przekazując 6-cyfrowy kod w obiekcie ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ticket.T6"]},", a dodatkowo dołączasz obiekt ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alias"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/payment/paymentbliklevel0"},"children":["Zobacz dokładną specyfikację endpointu w API Reference"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"fragment-żądania-request","__idx":4},"children":["Fragment żądania (Request)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"ticket\": {\n    \"T6\": \"123456\"\n  },\n  \"alias\": {\n    \"label\": \"Label zgodny z certyfikacją BLIK\",\n    \"value\": \"unikalne_id_playera_lub_klienta_w_twoim_systemie\",\n    \"type\": \"UID\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}]}," – Twój wewnętrzny, unikalny identyfikator klienta (np. ID użytkownika z bazy danych)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]}," – Typ aliasu, dla integracji handlowych zawsze używaj wartości ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UID"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"krok-2-oczekiwanie-na-aktywację-ipn","__idx":5},"children":["Krok 2: Oczekiwanie na aktywację (IPN)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Po udanej płatności z kodem, aplikacja mobilna banku wyświetla komunikat podobny do: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Czy chcesz zapisać ten sklep jako zaufany?\""]},". Proces ten odbywa się asynchronicznie."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Twój system musi teraz nasłuchiwać dedykowanego powiadomienia IPN dotyczącego zmiany statusu aliasu: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blik:alias_status_changed"]}]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["W odpowiedzi webhooka otrzymasz m.in. pole ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.id"]}," zawierające unikalny identyfikator tego powiązania. Gdy status zmieni się na ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alias_active"]}]},", możesz zapisać identyfikator aliasu SimPay w swojej bazie danych przy koncie użytkownika."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/notifications/payment/events/blik_alias_status_changed"},"children":["Sprawdź strukturę powiadomienia blik:alias_status_changed"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"krok-3-kolejne-płatności-prawdziwy-oneclick","__idx":6},"children":["Krok 3: Kolejne płatności (Prawdziwy OneClick)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Gdy alias jest aktywny, kolejna płatność nie wymaga już od klienta podawania kodu. Inicjując nową transakcję, całkowicie pomijasz obiekt ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ticket"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Nasze API oferuje ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["dwie metody"]}," na zidentyfikowanie powracającego klienta."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/payment/paymentbliklevel0"},"children":["Zobacz endpoint płatności OneClick w API Reference"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"metoda-a-identyfikacja-za-pomocą-uuid","__idx":7},"children":["Metoda A: Identyfikacja za pomocą ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uuid"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"alias\": {\n    \"uuid\": \"019972b1-e4c0-714f-a10b-f88a158bee50\",\n    \"label\": \"Label zgodny z certyfikacją BLIK\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"metoda-b-identyfikacja-za-pomocą-pary-value-i-type","__idx":8},"children":["Metoda B: Identyfikacja za pomocą pary ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}," i ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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)."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"alias\": {\n    \"value\": \"unikalne_id_playera_lub_klienta_w_twoim_systemie\",\n    \"type\": \"UID\",\n    \"label\": \"Label zgodny z certyfikacją BLIK\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HTTP 204 No Content"]}]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"obsługa-błędu-wiele-aplikacji-bankowych--alias_not_unique-","__idx":9},"children":["Obsługa błędu: Wiele aplikacji bankowych (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALIAS_NOT_UNIQUE"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(Uwaga: Ten błąd może wystąpić ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["wyłącznie wtedy, gdy do autoryzacji używasz Metody B"]}," – czyli własnego ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},")."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["kilku różnych aplikacjach bankowych"]}," jednocześnie (np. aplikacja VeloBanku oraz PKO BP na jednym telefonie)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HTTP 400 Bad Request"]}]}," o kodzie ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALIAS_NOT_UNIQUE"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"odpowiedź-api-błąd-jednoznaczności-aliasu","__idx":10},"children":["Odpowiedź API (Błąd jednoznaczności aliasu)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"message\": \"Alias is not unique. Select interested alias by providing alias.blik_id alongside with alias.value and alias.type.\",\n  \"data\": {\n    \"alternatives\": [\n      {\n        \"value\": \"SIMSIM\",\n        \"type\": \"UID\",\n        \"label\": \"TEST APP 222\",\n        \"blik_id\": 953824\n      },\n      {\n        \"value\": \"SIMSIM\",\n        \"type\": \"UID\",\n        \"label\": \"TEST APP 111\",\n        \"blik_id\": 953793\n      }\n    ]\n  },\n  \"errorCode\": \"ALIAS_NOT_UNIQUE\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"jak-to-rozwiązać-w-kodzie","__idx":11},"children":["Jak to rozwiązać w kodzie?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["label"]},", np. ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Wybierz aplikację bankową: TEST APP 222 czy TEST APP 111\""]},")."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Gdy użytkownik kliknie w odpowiedni bank, ponawiasz żądanie płatności OneClick, dopisując do obiektu ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alias"]}," otrzymany identyfikator ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blik_id"]}]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"alias\": {\n    \"value\": \"SIMSIM\",\n    \"type\": \"UID\",\n    \"label\": \"TEST APP 222\",\n    \"blik_id\": 953824\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"powiadomienia-ipn-o-statusie-transakcji","__idx":12},"children":["Powiadomienia IPN o statusie transakcji"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Oprócz opisanego w Kroku 2 powiadomienia o statusie rejestracji samego aliasu (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blik:alias_status_changed"]},"), ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["W momencie, gdy klient autoryzuje (lub odrzuci) płatność na swoim telefonie, SimPay wyśle do Twojej aplikacji ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["dwa równoległe eventy"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction:status_changed"]}]}," – Ogólne powiadomienie systemowe o zmianie statusu transakcji w SimPay (np. przejście ze statusu nowej na opłaconą ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_paid"]}," lub odrzuconą). To na jego podstawie powinieneś finalizować zamówienie i wydawać towar."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/notifications/payment/events/transaction_status_changed"},"children":["Zobacz event transaction:status_changed"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/notifications/payment/events/transaction_blik_level0_code_status_changed"},"children":["Zobacz event transaction_blik_level0:code_status_changed"]}]}]}]},"headings":[{"value":"BLIK Level 0 + OneClick (Płatności bez kodu)","id":"blik-level-0--oneclick-płatności-bez-kodu","depth":1},{"value":"Wymagania formalne i rejestracja usługi","id":"wymagania-formalne-i-rejestracja-usługi","depth":2},{"value":"Proces aktywacji krok po kroku:","id":"proces-aktywacji-krok-po-kroku","depth":3},{"value":"Krok 1: Pierwsza płatność i rejestracja aliasu","id":"krok-1-pierwsza-płatność-i-rejestracja-aliasu","depth":2},{"value":"Fragment żądania (Request)","id":"fragment-żądania-request","depth":3},{"value":"Krok 2: Oczekiwanie na aktywację (IPN)","id":"krok-2-oczekiwanie-na-aktywację-ipn","depth":2},{"value":"Krok 3: Kolejne płatności (Prawdziwy OneClick)","id":"krok-3-kolejne-płatności-prawdziwy-oneclick","depth":2},{"value":"Metoda A: Identyfikacja za pomocą uuid","id":"metoda-a-identyfikacja-za-pomocą-uuid","depth":3},{"value":"Metoda B: Identyfikacja za pomocą pary value i type","id":"metoda-b-identyfikacja-za-pomocą-pary-value-i-type","depth":3},{"value":"Obsługa błędu: Wiele aplikacji bankowych ( ALIAS_NOT_UNIQUE )","id":"obsługa-błędu-wiele-aplikacji-bankowych--alias_not_unique-","depth":2},{"value":"Odpowiedź API (Błąd jednoznaczności aliasu)","id":"odpowiedź-api-błąd-jednoznaczności-aliasu","depth":3},{"value":"Jak to rozwiązać w kodzie?","id":"jak-to-rozwiązać-w-kodzie","depth":3},{"value":"Powiadomienia IPN o statusie transakcji","id":"powiadomienia-ipn-o-statusie-transakcji","depth":2}],"frontmatter":{"seo":{"title":"BLIK Level 0 + OneClick (Płatności bez kodu)"}},"lastModified":"2026-05-21T20:26:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/payment/blik/level0_oneclick","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}