Transakcja BLIK
Realizuj płatności BLIK wykorzystując endpoint zakładania transakcji podając groupId: 150
.
Wyślij zapytanie o utworzenie transakcji BLIK
Aby utworzyć transakcję BLIK, wyślij żądanie POST
na endpoint:
https://api.tpay.com/transactions
Sprawdź szczegóły w dokumentacji API Reference: POST /transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla płatnika. |
payer.email | Adres e-mail płatnika. |
payer.name | Imię i nazwisko płatnika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
Parametr taxId
W transakcjach B2B standardowo stosuje się identyfikację kontrahentów za pomocą numeru NIP. Podanie tego parametru może być wymagane w przypadku niektórych operacji księgowych. W związku z tym zalecamy podanie parametru taxId
(numer NIP płatnika) w zapytaniu.
- Kiedy go użyć? Dodaj ten parametr, jeśli realizujesz transakcje B2B i posiadasz numer NIP kontrahenta.
- Czy jest obowiązkowy? Nie, pole
taxId
jest opcjonalne. Jeśli go nie podasz, transakcja zostanie przetworzona bez uwzględnienia numeru NIP.
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa płatność BLIK", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "groupId": 150 } }
Przykład:
curl --location 'https://api.tpay.com/transactions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <access_token> \ --data-raw '{ "amount": 0.1, "description": "Testowa płatność BLIK", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "groupId": 150 } }'
Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie. |
payments.status | pending – Transakcja oczekuje opłacenia. |
transactionPaymentUrl | Adres url, na który należy przekierować płatnika. |
Przykładowa odpowiedź:
{ "result": "success", "requestId": "b6325d51e8c4b9130476", "transactionId": "ta_jrkNGj5L29pnlbqw", "title": "TR-BRA-CCP1S9X", "posId": "ps_NyRBLzV5kelrpjaM", "status": "pending", "date": { "creation": "2024-05-08 21:01:15", "realization": null }, "amount": 0.1, "currency": "PLN", "description": "Testowa płatność BLIK", "hiddenDescription": "", "payer": { "payerId": "py_a9rjlZWxRLdG1bqY", "email": "[email protected]", "name": "Jan Nowak", "phone": "", "address": "", "city": "", "country": "PL", "postalCode": "" }, "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null } }, "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CCP1S9X&uid=01HXCS9KVQBDZDDWDHP1TZKJ1K" }
Przekieruj płatnika na Panel Transakcyjny
Przekieruj płatnika na URL zawarty w odpowiedzi w polu transactionPaymentUrl
.
Następnie płatnik generuje 6-cyfrowy kod w aplikacji banku, przepisuje jego numer na formularzu płatności eBLIK i zatwierdza formularz.
Bank wysyła powiadomienie push do aplikacji banku płatnika w celu zatwierdzenia płatności.
Płatnik zostanie przekierowany na stronę sukcesu lub porażki
Gdy płatność zostanie zakończona, płatnik zostanie przekierowany na stronę sukcesu (success page) lub stronę porażki (error page) w zależności od tego, czy transakcja się udała.
Obsłuż powiadomienie
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
BLIK Level 0
BLIK w wersji Level 0, inaczej BLIK on-site, polega na udostępnieniu w sklepie pola do wprowadzenia sześciocyfrowego kodu BLIK. Płatnik wpisuje wygenerowany kod BLIK w Twoim systemie. Następnie, podczas tworzenia transakcji, przekazujesz ten kod w polu *blikToken*
. Płatność odbywa się bez przekierowania na formularz eBLIK.
Zbuduj formularz płatności BLIK
W celu realizacji płatności BLIK Level 0 wyświetl formularz płatności w swoim systemie.
- Wyświetl BLIK jako dostępna metoda płatności.
- Umieść pole, w którym płatnik może wpisać 6-cyfrowy kod BLIK.
- Umieść regulamin Tpay - dostepny pod tym linkiem oraz klauzulę o przetwarzaniu danych osobowych - dostępny pod tym linkiem
Wyślij zapytanie o utworzenie transakcji BLIK Level 0
Aby utworzyć transakcję BLIK Level 0, wyślij żądanie POST
na endpoint:
https://api.tpay.com/transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla płatnika. |
payer.email | Adres e-mail płatnika. |
payer.name | Imię i nazwisko płatnika. |
payer.ip | Adres IP płatnika (dopuszczalne są adresy IP V4 i V6). |
payer.userAgent | User Agent przeglądarki płatnika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
blikPaymentData.blikToken | 6-cyfrowy kod BLIK wpisany przez płatnika na formularzu. |
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa płatność BLIK", "payer": { "email": "[email protected]", "name": "Jan Nowak", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "blikToken": "908118" } } }
Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie. |
payments.status | pending – Transakcja oczekuje opłacenia. |
Przykładowa odpowiedź:
{ "result": "success", "requestId": "b6325d51e8c4b9130476", "transactionId": "ta_jrkNGj5L29pnlbqw", "title": "TR-BRA-CCP1S9X", "posId": "ps_NyRBLzV5kelrpjaM", "status": "pending", "date": { "creation": "2024-05-08 21:01:15", "realization": null }, "amount": 0.1, "currency": "PLN", "description": "Testowa transakcja BLIK", "hiddenDescription": "", "payer": { "payerId": "py_a9rjlZ3qyPPG1bqY", "email": "<[email protected]>", "name": "Jan Nowak", "phone": "", "address": "", "city": "", "country": "PL", "postalCode": "", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null } }, "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CCP1S9X&uid=01HXCS9KVQBDZDDWDHP1TZKJ1K" }
Wyświetl ekran oczekiwania
Wyświetl płatnikowi ekran oczekiwania. Umieść w nim informacje, że oczekujemy na akceptację płatności.
Bank wysyła powiadomienie push do aplikacji banku płatnika w celu zatwierdzenia płatności.
Obsłuż powiadomienie
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
Wyświetl wynik transakcji
Po otrzymaniu notyfikacji o statusie transakcji wykorzystaj pole tr_status
.
BLIK One Click
BLIK one click jest rozszerzeniem płatności Level 0 o możliwość zapamiętania sklepu, z którego jest realizowana płatność. Gdy płatnik podczas transakcji zapamięta sklep, kolejne transakcje nie będą wymagały podawania 6 cyfrowego kodu BLIK, a jedynie zatwierdzenia transakcji w aplikacji bankowej.
W celu rejestracji płatnika w BLIK One Click należy podać 6-cyfrowy kod BLIK wraz z aliasem użytkownika. Przy kolejnych płatnościach wystarczy tylko przesłać alias podany przy pierwszej płatności.
Zanim zaczniesz
Upewnij się, że:
- Zrealizowałeś płatność BLIK Level 0.
Wyślij zapytanie o utworzenie transakcji BLIK Level 0 wraz z autoryzacją w BLIK One Click
W celu wysłania zaproszenia do włączenia Płatności Powtarzalnej zrealizuj Płatność BLIK Level 0 dodając odpowiednie pola dotyczące Płatności Powtarzalnej
Wyślij żądanie POST
na endpoint:
https://api.tpay.com/transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla płatnika. |
payer.email | Adres e-mail płatnika. |
payer.name | Imię i nazwisko płatnika. |
payer.ip | Adres IP płatnika (dopuszczalne są adresy IP V4 i V6). |
payer.userAgent | User Agent przeglądarki płatnika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
blikPaymentData.blikToken | 6-cyfrowy kod BLIK wpisany przez płatnika na formularzu. |
blikPaymentData.aliases.value | Unikalny alias per użytkownik nadany przez system sprzedawcy. |
blikPaymentData.aliases.label | Nazwa sklepu bądź opcjonalnie nazwa nadana przez użytkownika. |
blikPaymentData.aliases.type | UID. |
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa transakcja BLIK", "payer": { "email": "<[email protected]>", "name": "Jan Nowak", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "blikToken": "908118", "aliases": { "value": "user_unique_alias_123", "type": "UID", "label": "Shop label" } } } }
Po wysłaniu żądania zwrócimy schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie. |
payments.status | pending – Transakcja oczekuje opłacenia. |
Przykładowa odpowiedź:
{ "result": "success", "requestId": "b6325d51e8c4b9130476", "transactionId": "ta_jrkNGj5L29pnlbqw", "title": "TR-BRA-CCP1S9X", "posId": "ps_NyRBLzV5kelrpjaM", "status": "pending", "date": { "creation": "2024-05-08 21:01:15", "realization": null }, "amount": 0.1, "currency": "PLN", "description": "Testowa transakcja BLIK", "hiddenDescription": "", "payer": { "payerId": "py_a9rjlZ3qyPPG1bqY", "email": "<[email protected]>", "name": "Jan Nowak", "phone": "", "address": "", "city": "", "country": "PL", "postalCode": "", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null } }, "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CCP1S9X&uid=01HXCS9KVQBDZDDWDHP1TZKJ1K" }
Wyświetl ekran oczekiwania
Wyświetl płatnikowi ekran oczekiwania. Umieść w nim informacje, że oczekujemy na akceptację płatności.
Bank wysyła powiadomienie push do aplikacji banku płatnika w celu zatwierdzenia płatności.
Obsłuż notyfikacje
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
Autoryzacja aliasu
Po pozytywnej autoryzacji płatności, płatnik w aplikacji banku otrzyma notyfikacje push w celu akceptacji wysłanego aliasu.
Obsłuż notyfikacje o statusie utworzenia aliasu
Oczekuj na webhook notyfikacji o statusie aliasu. Adres webhook’a musi być statyczny i wprowadzony w ustawieniach konta sprzedawcy w Panelu Akceptanta w zakładce Ustawienia->Powiadomienia.
Gdy alias zostanie zaakceptowany, wyślemy Ci jego dane w celu potwierdzenia utworzenia aliasu.
Parametry notyfikacji:
id | Identyfikator akceptanta. |
event | ALIAS_REGISTER. |
msg_value.value | Unikalny identyfikator aliasu podany podczas realizacji transakcji. |
msg_value.type | UID. |
msg_value.expirationDate | Data ważności aliasu. Jeśli w notyfikacji brakuje tego parametru, oznacza to, że alias nie wygasa. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Odpowiedz na nasze powiadomienie statusem HTTP 200
z body:
Treść notyfikacji jest podpisana za pomocą JSON Web Signature.
Sprawdź, czy notyfikacja pochodzi od Tpay.
Zapisz parametr msg_value.value dla dalszych transakcji, skoreluj tę wartość z płatnikiem/użytkownikiem twojego systemu, w celu późniejszej obsługi płatności.
Wyświetl wynik transakcji
Po otrzymaniu notyfikacji o statusie transakcji wykorzystaj pole tr_status
.
Wyślij zapytanie o utworzenie transakcji wykorzystując zarejestrowany alias
Podczas realizacji kolejnej płatności przez płatnika, nie musisz wyświetlać formularza do wpisania kodu BLIK. Wystarczy zapisany alias.
Wyślij żądanie POST
na endpoint
https://api.tpay.com/transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla płatnika. |
payer.email | Adres e-mail płatnika. |
payer.name | Imię i nazwisko płatnika. |
payer.ip | Adres IP płatnika (dopuszczalne są adresy IP V4 i V6). |
payer.userAgent | User Agent przeglądarki płatnika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
blikPaymentData.aliases.value | Unikalny alias per użytkownik nadany przez system sprzedawcy. Zapisany podczas autoryzacji płatnika w BLIK One Click. |
blikPaymentData.aliases.type | UID. |
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa transakcja BLIK", "payer": { "email": "<[email protected]>", "name": "Jan Nowak", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "aliases": { "value": "user_unique_alias_123", "type": "UID" } } } }
Po wysłaniu żądania zwrócimy schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie. |
payments.status | pending – Transakcja oczekuje opłacenia. |
Wyświetl ekran oczekiwania
Wyświetl płatnikowi ekran oczekiwania. Umieść w nim informacje, że oczekujemy na akceptację płatności.
Bank wysyła powiadomienie push do aplikacji banku płatnika w celu zatwierdzenia płatności.
Obsłuż powiadomienie
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
Usunięcie aliasu
Zrealizuj możliwość usuwania aliasu BLIK w Twoim systemie przez płatnika.
Wyślij żądanie DELETE
na endpoint:
https://api.tpay.com/blik/alias/{aliasValue}
Parametry żądania:
aliasValue | Wartość aliasu do usunięcia. |
type | UID. |
Przykładowe body żądania:
Obsłuż powiadomienie o wygaśnięciu, usunięciu aliasu
Alias może zostać usunięty lub może upłynąć data jego ważności.
Przygotuj endpoint odbierający notyfikacje o aliasach BLIK na wiadomość odnośnie do wygaśniecia lub usunięcia zapisanego aliasu.
Parametry notyfikacji o usunięciu aliasu:
id | Identyfikator akceptanta. |
event | ALIAS_UNREGISTER. |
msg_value.value | Unikalny identyfikator aliasu podany podczas realizacji transakcji. |
msg_value.type | UID. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Obsłuż po odbiorze notyfikacji usunięcie aliasu.
Parametry notyfikacji o wygaśnieciu aliasu:
id | Identyfikator akceptanta. |
event | ALIAS_EXPIRED. |
msg_value.value | Unikalny identyfikator aliasu podany podczas realizacji transakcji. |
msg_value.type | UID. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Obsłuż po odbiorze notyfikacji usunięcie aliasu.
Obsłuż sytuacje, gdy alias nie jest unikalny
Jeżeli aktywnych jest wiele aliasów (użytkownik rejestrował alias wielokrotnie w różnych aplikacjach bankowych), próba płatności nie powiedzie się, a odpowiedź zawiera listę dostępnych aliasów aplikacji bankowych.
Przykładowa odpowiedź:
{ "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null }, "errors": [ { "errorCode": "payment_failed", "errorMessage": "aliases: Too many aliases found for aliasValue: user_unique_alias_123" } ], "alternatives": [ { "applicationName": "My qwerty bank", "applicationCode": "1ec8f352-463c-6334-be44-9fede70e64b8" }, { "applicationName": "My azerty bank", "applicationCode": "1ec8fe63-ea6e-6b48-ac6f-f7f170888d37" } ] } }
Obsłuż wyświetlenie płatnikowi listę alternatywnych aliasów, aby pozwolić mu wybrać interesujący go alias. Następnie podaj applicationCode
w polu key
, podczas opłacania ponownie transakcji.
Przykład:
BLIK Płatności Powtarzalne
Płatności Powtarzalne BLIK są rozszerzeniem płatności Level 0. Płatności Powtarzalne BLIK pozwalają sprzedawcy na inicjowanie i pobieranie płatności od płatników, którzy wyrazili na to zgodę.
W procesie metody Płatności Powtarzalnych BLIK występują dwa kluczowe zdarzenia:
- Włączenie Płatności Powtarzalnej, która jest wyrażoną przez użytkownika zgodą na inicjowanie przez akceptanta transakcji powtarzalnych. Taka zgoda jest inicjowana przez użytkownika w witrynie/aplikacji sprzedawcy i potwierdzana w aplikacji bankowej użytkownika. Użytkownik może również zobaczyć i anulować wszystkie Płatności Powtarzalne w swojej aplikacji bankowej.
- Transakcja Powtarzalna – pojedyncza transakcja zainicjowana przez sprzedawcę na podstawie Płatności Powtarzalnej włączonej przez użytkownika.
Gdy użytkownik podczas pierwszej transakcji zgodzi się na włączenie Płatności Powtarzalnej BLIK, kolejne transakcje nie będą wymagały podawania 6-cyfrowego kodu BLIK, a z jego perspektywy będą realizowały się automatycznie lub po zatwierdzeniu transakcji w aplikacji bankowej w zależności od modelu. Kolejne obciążenia konta płatnika są inicjowane przez system sprzedawcy i wymagają każdorazowo tworzenia transakcji. Dostępne są trzy modele Płatności Powtarzalnych A, M i O.
Model A
- Płatności Powtarzalne BLIK na kwotę stałą
Stosowany do rozliczenia stałej kwoty, w stałej częstotliwości, np. spłata produktu rozłożona na równe raty w ustalonym czasie lub opłata za Płatność Powtarzalną w serwisie streamingowym. W tym modelu należność jest pobierana użytkownikowi bez konieczności jej potwierdzania w aplikacji mobilnej banku.
Model M
- Płatności Powtarzalne BLIK na kwotę zmienną
Stosowany do rozliczania zmiennej kwoty ze zadeklarowaną bądź zmienną częstotliwością. Ważność Płatności Powtarzalnej może być konkretnie określoną datą lub oznaczona jako bezterminowa/do odwołania. W tym modelu aplikacja mobilna banku każdorazowo wyświetla użytkownikowi prośbę o zatwierdzenie płatności. Czas na zatwierdzenie płatności wynosi 72 godziny.
Model O
- Płatności Powtarzalne BLIK na kwotę zmienną
Stosowany do rozliczania zmiennej kwoty ze zadeklarowaną bądź zmienną częstotliwością. Ważność Płatności Powtarzalnej może być konkretnie określoną datą lub oznaczona jako bezterminowa/do odwołania. W tym modelu należność jest pobierana użytkownikowi bez konieczności jej potwierdzania w aplikacji mobilnej banku.
Więcej o modelach i ich zastosowania znajdziesz tutaj: BLIK Guidelines
Wykorzystanie modelu O jest ograniczone i wymaga dodatkowej akceptacji przez Tpay. Skontaktuj się ze swoim opiekunem w Tpay lub z Biurem Obsługi Klienta
Włączenie Płatności Powtarzalnej nie musi wiązać się z pobraniem opłaty od użytkownika. Ten rodzaj rejestracji opisano niżej, w rozdziale Zaproszenie do założenia Płatności Powtarzalnej BLIK Płatności Powtarzalne bez pobierania opłaty
W celu włączenia Płatności Powtarzalnej BLIK należy podać 6-cyfrowy kod BLIK wraz z aliasem Płatności Powtarzalnej. Przy kolejnych płatnościach wystarczy tylko przesłać alias podany przy pierwszej płatności.
Parametry Płatności Powtarzalnej przesłane w zaproszeniu są prezentowane użytkownikowi w aplikacji banku następująco w zależności od modelu:
Model A
Model M
Model O
Implementacja Płatności Powtarzalnych BLIK musi być wykonana zgodnie z wytycznymi BLIK
Zanim zaczniesz
Upewnij się, że:
- Zrealizowałeś płatność BLIK Level 0
Wyślij zapytanie o utworzenie transakcji BLIK Level 0 wraz z autoryzacją w BLIK Płatności Powtarzalne
W celu autoryzowania użytkownika w BLIK Płatności Powtarzalne zrealizuj płatność BLIK Level 0 dodając alias.
Wyślij żądanie POST
na endpoint:
https://api.tpay.com/transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla użytkownika. |
payer.email | Adres e-mail płatnika. |
payer.name | Imię i nazwisko płatnika. |
payer.ip | Adres IP płatnika (dopuszczalne są adresy IP V4 i V6). |
payer.userAgent | User Agent przeglądarki płatnika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
blikPaymentData.blikToken | 6-cyfrowy kod BLIK wpisany przez użytkownika na formularzu. |
blikPaymentData.refuseNoPayId | true/false płatność zostanie odrzucona automatycznie, jeśli podany kod BLIK został wygenerowany w aplikacji banku, który obecnie nie obsługuje Płatności Powtarzalnych BLIK. |
blikPaymentData.aliases.value | Unikalny identyfikator Płatności Powtarzalnej |
blikPaymentData.aliases.label | Unikalna nazwa Płatności Powtarzalnej, składająca się z np.: emaila lub nazwy użytkownika i nazwy planu (np. „[email protected] Plan Gold+”), umożliwiająca jednoznaczne rozpoznanie Płatności na liście płatności w aplikacji banku. Należy uwzględnić możliwość:
|
blikPaymentData.aliases.type | PAYID. |
blikPaymentData.aliases.autopayment.model | Model, w którym rejestrujemy alias (A, M lub O). |
blikPaymentData.aliases.autopayment.frequency | Częstotliwość pobieranej opłaty np. 1M - raz na miesiąc Regexp /^[1-9] ([0-9]{0,2}[DWMY])/ Wymagane dla Modelu A, Opcjonalne dla modelu M, nieprzesyłane dla modelu O. |
blikPaymentData.aliases.autopayment.singleLimitAmount | Maksymalna kwota jednorazowej płatności (w złotówkach, stosowana w modelu A). |
blikPaymentData.aliases.autopayment.totalLimitAmount | Łączna kwota należności (w złotówkach, stosowana w modelu A). |
blikPaymentData.aliases.autopayment.currency | Waluta Płatności Powtarzalnej – obecnie wyłącznie PLN. |
blikPaymentData.aliases.autopayment.initDate | Data pierwszej Transakcji Powtarzalnej (wymagane w modelu A, opcjonalne dla modelu O, nieprzesyłane dla modelu M). |
blikPaymentData.aliases.autopayment.expirationDate | Data wygaśnięcia Płatności Powtarzalnej (wymagane w modelu A). Jeśli parametr nie zostanie przesłany w modelach M lub O, zostanie wygenerowana Płatność Powtarzalna bezterminowa. |
Podstawowe body żądania w modelu A powinno wyglądać następująco:
{ "amount": 20.08, "description": "Założenie Płatności Powtarzalnej", "hiddenDescription": "MyShop:user:172838953:2024-06", "payer": { "email": "[email protected]", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "blikToken": "777777", "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "label": "MyShop, sklep z duszą", "type": "PAYID", "autopayment": { "model": "A", "frequency": "1M", "singleLimitAmount": 10.0, "totalLimitAmount": 100.0, "currency": "PLN", "initDate": "2024-10-30 00:00:00", "expirationDate": "2025-01-01 00:00:00" } } } } }
Podstawowe body żądania w modelu M powinno wyglądać następująco:
{ "amount": 21.08, "description": "Założenie Płatności Powtarzalnej", "hiddenDescription": "MyShop:user:172838953:2024-06", "payer": { "email": "[email protected]", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "blikToken": "777777", "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "label": "MyShop, sklep z duszą", "type": "PAYID", "autopayment": { "model": "M" } } } } }
Podstawowe body żądania w modelu O powinno wyglądać następująco:
{ "amount": 21.08, "description": "Założenie Płatności Powtarzalnej", "hiddenDescription": "MyShop:user:172838953:2024-06", "payer": { "email": "[email protected]", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "pay": { "groupId": 150, "blikPaymentData": { "blikToken": "777777", "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "label": "MyShop, sklep z duszą", "type": "PAYID", "autopayment": { "model": "O" } } } } }
Po wysłaniu żądania zwrócimy schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie. |
payments.status | pending – Transakcja oczekuje opłacenia. |
Przykładowa odpowiedź:
{ "result": "success", "requestId": "b6325d51e8c4b9130476", "transactionId": "ta_jrkNGj5L29pnlbqw", "title": "TR-BRA-CCP1S9X", "posId": "ps_NyRBLzV5kelrpjaM", "status": "pending", "date": { "creation": "2024-05-08 21:01:15", "realization": null }, "amount": 21.08, "currency": "PLN", "description": "Założenie Płatności Powtarzalnej", "hiddenDescription": "", "payer": { "payerId": "py_a9rjlZ3qyPPG1bqY", "email": "<[email protected]>", "name": "Jan Nowak", "phone": "", "address": "", "city": "", "country": "PL", "postalCode": "", "ip": "127.0.0.1", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" }, "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null } }, "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CCP1S9X&uid=01HXCS9KVQBDZDDWDHP1TZKJ1K" }
Wyświetl ekran oczekiwania
Wyświetl użytkownikowi ekran oczekiwania. Umieść w nim informacje, że oczekujemy na akceptację płatności.
Bank wysyła powiadomienie push do aplikacji banku użytkownika w celu zatwierdzenia płatności.
Obsłuż notyfikacje
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
Autoryzacja Płatności Powtarzalnej
Po pozytywnej autoryzacji płatności, użytkownik w aplikacji banku otrzyma notyfikacje push w celu akceptacji wysłanej Płatności Powtarzalnej.
Obsłuż notyfikacje o statusie utworzenia Płatności Powtarzalnej
Oczekuj na webhook notyfikacji o statusie Płatności Powtarzalnej. Adres webhook’a musi być statyczny i wprowadzony w ustawieniach konta sprzedawcy w Panelu Akceptanta w zakładce Ustawienia > Powiadomienia.
Gdy alias zostanie zaakceptowany, wyślemy Ci jego dane w celu potwierdzenia utworzenia Płatności Powtarzalnej.
Parametry notyfikacji:
id | Identyfikator akceptanta. |
event | ALIAS_REGISTER. |
msg_value.value | Unikalny identyfikator Płatności Powtarzalnej podany podczas realizacji transakcji. |
msg_value.type | PAYID. |
msg_value.expirationDate | Data ważności Płatności Powtarzalnej. Jeśli w notyfikacji brakuje tego parametru, oznacza to, że alias nie wygasa. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Odpowiedz na nasze powiadomienie statusem HTTP 200
z body:
Treść notyfikacji jest podpisana za pomocą JSON Web Signature.
Sprawdź, czy notyfikacja pochodzi od Tpay.
Zapisz parametr msg_value.value
dla dalszych transakcji, skoreluj tę wartość z użytkownikiem twojego systemu, w celu późniejszej obsługi płatności.
Wyświetl wynik transakcji
Po otrzymaniu notyfikacji o statusie transakcji wykorzystaj pole tr_status
.
Wyślij zapytanie o utworzenie transakcji wykorzystując zarejestrowany alias
W celu pobrania kolejnej płatności wynikającej z zawartej Płatności Powtarzalnej utwórz transakcję, podając wcześniej zapisany alias użytkownika.
Wyślij żądanie POST
na endpoint:
https://api.tpay.com/transactions
W zapytaniu określ następujące parametry:
amount | Kwota transakcji (w złotówkach). |
description | Opis transakcji widoczny dla użytkownika. |
email | Adres e-mail użytkownika. |
name | Imię i nazwisko użytkownika. |
groupId | Identyfikator grupy płatności dla BLIK: 150. |
blikPaymentData.type | Dla płatności powtarzalnych type: 2. |
blikPaymentData.aliases.value | Unikalny alias per użytkownik. Zapisany podczas autoryzacji użytkownika w BLIK Płatności Powtarzalne. |
blikPaymentData.aliases.type | PAYID. |
blikPaymentData.aliases.noDelay | true/false – Parametr dostępny dla modeli A i O, powoduje natychmiastową próbę pobrania środków. W modelu A bez tego parametru użytkownik ma 72h na zatwierdzenie płatności. |
blikPaymentData.aliases.recommendedAuthLevel | Żądanie wykonania obciążenia bez potwierdzenia użytkownika. Parametr dostępny i wymagany tylko w modelu O. Wartość NOCONFREQ. |
Podstawowe body żądania w modelach A i M powinno wyglądać następująco:
{ "amount": 27.08, "description": "Płatność za 07/2024", "hiddenDescription": "MyShop:user:172838953:2024-07", "payer": { "email": "[email protected]" }, "pay": { "groupId": 150, "blikPaymentData": { "type": 2, "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "type": "PAYID" } } } }
Podstawowe body żądania w modelu O powinno wyglądać następująco:
{ "amount": 27.08, "description": "Płatność za 07/2024", "hiddenDescription": "MyShop:user:172838953:2024-07", "payer": { "email": "[email protected]" }, "pay": { "groupId": 150, "blikPaymentData": { "type": 2, "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "type": "PAYID", "recommendedAuthLevel": "NOCONFREQ" } } } }
Po wysłaniu żądania zwrócimy schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Transakcja została utworzona pomyślnie |
payments.status | pending – Transakcja oczekuje opłacenia |
Obsłuż powiadomienie
Poinformujemy Cię o statusie transakcji za pośrednictwem notyfikacji po zaksięgowaniu transakcji.
Usunięcie Płatności Powtarzalnej
Zrealizuj możliwość usuwania Płatności Powtarzalnej BLIK w Twoim systemie przez użytkownika.
Wyślij żądanie DELETE
na endpoint:
https://api.tpay.com/blik/alias/{aliasValue}
Parametry żądania:
aliasValue | wartość Płatności Powtarzalnej do usunięcia. |
type | PAYID. |
Przykładowe body żądania:
Obsłuż powiadomienie o wygaśnięciu, usunięciu Płatności Powtarzalnej
Płatność Powtarzalna może zostać usunięta lub może upłynąć data jego ważności.
Przygotuj endpoint odbierający notyfikacje o aliasach BLIK na wiadomość dotyczącą wygaśnięcia lub usunięcia zapisanej Płatności Powtarzalnej.
Parametry notyfikacji o usunięciu Płatności Powtarzalnej:
id | Identyfikator akceptanta. |
event | ALIAS_UNREGISTER. |
msg_value.value | Unikalny alias per użytkownik. Zapisany podczas autoryzacji użytkownika w BLIK Płatności Powtarzalne. |
msg_value.type | PAYID. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Obsłuż po odbiorze notyfikacji usunięcie Płatności Powtarzalnej.
Parametry notyfikacji o wygaśnięciu Płatności Powtarzalnej:
id | Identyfikator akceptanta. |
event | ALIAS_EXPIRED. |
msg_value.value | Unikalny alias per użytkownik. Zapisany podczas autoryzacji użytkownika w BLIK Płatności Powtarzalne. |
msg_value.type | PAYID. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Obsłuż po odbiorze notyfikacji usunięcie Płatności Powtarzalnej.
Obsłuż sytuację, gdy alias nie jest unikalny
Jeżeli aktywnych jest wiele Płatności Powtarzalnych dla tego samego aliasu, próba pobrania środków nie powiedzie się, a odpowiedź będzie zawierała listę zawartych Płatności Powtarzalnych wraz z nazwami (parametr blikPaymentData.aliases.label
). Jeśli nie chcesz doprowadzać do wystąpienia tej sytuacji, możesz wygenerować dla użytkownika unikatowy alias per każda zawarta Płatność Powtarzalna.
Przykładowa odpowiedź:
{ "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null }, "errors": [ { "errorCode": "payment_failed", "errorMessage": "aliases: Too many aliases found for aliasValue: user_unique_alias_123" } ], "alternatives": [ { "applicationName": "Subscription 1", "applicationCode": "1ec8f352-463c-6334-be44-9fede70e64b8" }, { "applicationName": "Subscription 2", "applicationCode": "1ec8fe63-ea6e-6b48-ac6f-f7f170888d37" } ] } }
Obsłuż wyświetlenie użytkownikowi listy alternatywnych aliasów, aby pozwolić mu wybrać interesujący go alias. Następnie podaj applicationCode
w polu key
, podczas opłacania ponownie transakcji.
Przykład:
Wyślij zaproszenie do włączenia Płatności Powtarzalnej BLIK bez pobierania opłaty dodając odpowiednie pola dotyczące Płatności Powtarzalnej
Wyślij żądanie POST
na endpoint:
https://api.tpay.com/blik/alias
W zapytaniu określ następujące parametry:
description | Opis transakcji widoczny dla użytkownika. |
lang | Język, w którym będzie prowadzona komunikacja z użytkownikiem (pl lub en). |
blikPaymentData.blikToken | 6-cyfrowy kod BLIK wpisany przez użytkownika na formularzu. |
blikPaymentData.refuseNoPayId | true/false płatność zostanie odrzucona automatycznie, jeśli podany kod BLIK został wygenerowany w aplikacji banku, który obecnie nie obsługuje Płatności Powtarzalnych BLIK. |
blikPaymentData.aliases.value | Unikalny identyfikator Płatności Powtarzalnej |
blikPaymentData.aliases.label | Unikalna nazwa Płatności Powtarzalnej, składająca się z np.: emaila lub nazwy użytkownika i nazwy planu (np. „[email protected] Plan Gold+”), umożliwiająca jednoznaczne rozpoznanie Płatności na liście płatności w aplikacji banku. Należy uwzględnić możliwość:
|
blikPaymentData.aliases.type | PAYID. |
blikPaymentData.aliases.autopayment.model | Model, w którym rejestrujemy alias (A, M lub O). |
blikPaymentData.aliases.autopayment.frequency | Częstotliwość pobieranej opłaty np. 1M - raz na miesiąc. Wartości powinny składać się z liczby zawierającej od 1 do 3 cyfr, nierozpoczynającej się od zera, oraz jednoliterowego skrótu na oznaczenie okresu: D, W, M lub Y. Wymagane dla Modelu A, Opcjonalne dla modelu M, nieprzesyłane dla modelu O. |
blikPaymentData.aliases.autopayment.singleLimitAmount | Maksymalna kwota jednorazowej płatności (w złotówkach, stosowana w modelu A). |
blikPaymentData.aliases.autopayment.totalLimitAmount | Łączna kwota należności (w złotówkach, stosowana w modelu A). |
blikPaymentData.aliases.autopayment.currency | Waluta Płatności Powtarzalnej – obecnie wyłącznie PLN. |
blikPaymentData.aliases.autopayment.initDate | Data pierwszej Transakcji Powtarzalnej (wymagane w modelu A, opcjonalne dla modelu O, nieprzesyłane dla modelu M). |
blikPaymentData.aliases.autopayment.expirationDate | Data wygaśnięcia Płatności Powtarzalnej (wymagane w modelu A). Jeśli parametr nie zostanie przesłany w modelach M lub O, zostanie wygenerowana Płatność Powtarzalna bezterminowa. |
Podstawowe body żądania w modelu A powinno wyglądać następująco:
{ "description": "Założenie Płatności Powtarzalnej", "pay": { "blikPaymentData": { "blikToken": "777777", "aliases": { "value": "172838953_he7vqanrfazzaeyb3q", "label": "MyShop, sklep z duszą", "type": "PAYID", "autopayment": { "model": "A", "frequency": "1M", "singleLimitAmount": 10.0, "totalLimitAmount": 100.0, "currency": "PLN", "initDate": "2024-10-30 00:00:00", "expirationDate": "2025-01-01 00:00:00" } } } } }
Podstawowe body żądania w modelu M powinno wyglądać następująco:
Podstawowe body żądania w modelu O powinno wyglądać następująco:
Po wysłaniu żądania zwrócimy schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success – Żądanie zostało poprawnie obsłużone. |
payments.status | correct – Poprawnie zainicjowano zapisywanie Płatności Powtarzalnej. |
Przykładowa odpowiedź:
Wyświetl ekran oczekiwania
Wyświetl użytkownikowi ekran oczekiwania. Umieść w nim informacje, że oczekujemy na akceptację Płatności Powtarzalnej.
Autoryzacja Płatności Powtarzalnej
Bank wysyła powiadomienie push do aplikacji banku użytkownika w celu zatwierdzenia Płatności Powtarzalnej.
Obsłuż notyfikacje o statusie utworzenia Płatności Powtarzalnej
Oczekuj na webhook notyfikacji o statusie Płatności Powtarzalnej. Adres webhook’a musi być statyczny i wprowadzony w ustawieniach konta sprzedawcy w Panelu Akceptanta w zakładce Ustawienia->Powiadomienia.
Gdy alias zostanie zaakceptowany, wyślemy Ci jego dane w celu potwierdzenia utworzenia Płatności Powtarzalnej.
Parametry notyfikacji:
id | Identyfikator akceptanta. |
event | ALIAS_REGISTER. |
msg_value.value | Unikalny identyfikator Płatności Powtarzalnej podany podczas realizacji transakcji. |
msg_value.type | PAYID. |
msg_value.expirationDate | Data ważności Płatności Powtarzalnej. Jeśli w notyfikacji brakuje tego parametru, oznacza to, że alias nie wygasa. |
md5sum | Unikalna wartość md5 (parametr przestarzały). |
Przykład:
Odpowiedz na nasze powiadomienie statusem HTTP 200
z body:
Treść notyfikacji jest podpisana za pomocą JSON Web Signature.
Sprawdź, czy notyfikacja pochodzi od Tpay.
Zapisz parametr msg_value.value
dla dalszych transakcji, skoreluj tę wartość z użytkownikiem twojego systemu, w celu późniejszej obsługi płatności.
Wyświetl wynik zawarcia Płatności Powtarzalnej
Po otrzymaniu notyfikacji o rejestracji Płatności Powtarzalnej wyświetl użytkownikowi ekran sukcesu.