Visa Mobile
Visa Mobile to metoda płatności kartą, w trakcie której płatnik podaje numer telefonu zarejestrowany w usłudze Visa Mobile, a następnie zatwierdza płatność w swojej aplikacji bankowej lub aplikacji Visa Mobile.
Aby skorzystać z Visa Mobile, płatnik musi aktywować usługę w aplikacji mobilnej swojego banku lub zainstalować i aktywować aplikację Visa Mobile na swoim telefonie. Dostępność Visa Mobile w aplikacji bankowej jest uzależniona od udziału banku w programie Visa Mobile. W przypadku gdy bank nie udostępnia takiej możliwości, jego karty mogą być wykorzystane do płatności Visa Mobile z wykorzystaniem aplikacji Visa Mobile. Więcej o tym jakie banki i w jakim zakresie uczestniczą w tej usłudze znajdziesz tutaj.
Zanim zaczniesz
Upewnij się, że:
- Posiadasz dane autoryzacyjne do API.
- Obsługujesz webhook transakcji.
- Posiadasz włączone płatności kartowe.
- Posiadasz włączony kanał płatności Visa Mobile.
Visa Mobile aktualnie jest dostępna tylko dla agenta rozliczeniowego Elavon. Sprawdź, czy twoje płatności kartowe są realizowane za pośrednictwem tego agenta rozliczeniowego.
Transakcja Visa Mobile
Realizuj płatności Visa Mobile wykorzystując endpoint zakładania transakcji podając groupId: 171
.
Wyślij zapytanie o utworzenie transakcji Visa Mobile
Aby utworzyć transakcję Visa Mobile, 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. |
pay.groupId | Identyfikator grupy płatności dla Visa Mobile: 171. |
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa płatność Visa Mobile", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "groupId": 171 } }
Przykład:
curl --location 'https://api.tpay.com/transactions' \ --header 'Authorization: Bearer <access_token> \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 0.1, "description": "Testowa płatność Visa Mobile", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "groupId": 171 } }'
Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated
.
Najważniejsze parametry odpowiedzi:
result | success - Transakcja została utworzona pomyślnie. |
status | pending - Transakcja oczekuje opłacenia. |
transactionPaymentUrl | Adres URL, na który należy przekierować płatnika. |
Przykładowa odpowiedź:
{ "result": "success", "requestId": "f2a39301d8c269e69f8d", "transactionId": "ta_NmLeGv2e85MBGbEP", "title": "TR-BRA-CPBRFHX", "posId": "ps_NyRBLzV5kelrpjaM", "status": "pending", "date": { "creation": "2024-06-07 21:54:16", "realization": null }, "amount": 0.1, "currency": "PLN", "description": "Testowa płatność Visa Mobile", "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-CPBRFHX&uid=01HZT487JQ5PVSX4ZMJ9KWW57D" }
Parametr transactionId
przechowaj w swoim systemie. Więcej o transactionId.
Przekieruj płatnika na Panel Transakcyjny
Przekieruj płatnika na URL zawarty w odpowiedzi w polu transactionPaymentUrl
.
Następnie płatnik wprowadza numer telefonu w formularzu płatności i go zatwierdza.
Bank wysyła powiadomienie push do aplikacji banku płatnika lub do aplikacji Visa Mobile w celu zatwierdzenia płatności. Po otrzymaniu powiadomienia w aplikacji płatnik ma 5 minut na zatwierdzenie transakcji. Po tym czasie transakcja zostaje anulowana.
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 Ciebie o statusie transakcji na webhook transakcyjny. Sprawdź szczegóły.
Visa Mobile on-site
Visa Mobile on-site jest to integracja płatności Visa Mobile w Twojej witrynie/aplikacji mobilnej.
Polega na umieszczeniu formularza do wpisania numeru telefonu, co umożliwia płatnikom dokonanie płatności bezpośrednio z poziomu Twojej witryny lub aplikacji mobilnej. Płatność odbywa się bez przekierowania na Panel Transakcyjny.
Metoda Visa Mobile on-site aktualnie jest dostępna tylko dla agenta rozliczeniowego Elavon. Sprawdź, czy twoje płatności kartowe są realizowane za pośrednictwem tego agenta.
Zbuduj formularz płatności Visa Mobile
W celu realizacji płatności Visa Mobile wyświetl formularz płatności w swoim systemie.
- Wyświetl Visa Mobile jako dostępna metoda płatności
- Umieść pole, w którym płatnik może wpisać numer telefonu wraz z międzynarodowym kodem telefonicznym.
- Zrealizuj mechanizm walidowania numeru przed wysłaniem płatności:
- Typ - string.
- Minimalna długość: 7 znaków.
- Maksymalna długość: 15 znaków.
- Wyłącznie znaki numeryczne bez żadnych przerw czy znaków specjalnych.
- Konieczne jest przekazanie telefonicznego kodu kraju przed numerem płatnika w formacie XXYYYYYYYYY (np. 48123456789).
Wyślij zapytanie o utworzenie transakcji Visa Mobile, podając numer telefonu
Aby utworzyć transakcję Visa Mobile, 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.phone | Numer telefonu wraz z numerem kierunkowym. |
payer.name | Imię i nazwisko płatnika. |
groupId | Identyfikator grupy płatności dla Visa Mobile: 177. |
Podstawowe body żądania powinno wyglądać następująco:
{ "amount": 0.1, "description": "Testowa płatność Visa Mobile", "payer": { "email": "[email protected]", "name": "Jan Nowak", "phone": "48123456789" }, "pay": { "groupId": 171 } }
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ść Visa Mobile", "payer": { "email": "[email protected]", "name": "Jan Nowak", "phone": "48123456789", }, "pay": { "groupId": 171 } }'
Pole payer.phone
jest opcjonalne. Jeśli nie zostanie podane, w odpowiedzi zostanie wygenerowany URL do Panelu Transakcyjnego. Po otwarciu URL w przeglądarce płatnik będzie miał możliwość samodzielnie wprowadzić numer telefonu, niezbędny dla płatności Visa Mobile.
Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated
.
Transakcja założona prawidłowo
Jeśli numer telefonu jest zarejestrowany w Visa Mobile oraz udało się zainicjalizować transakcję to:
- zostanie zwrócony parametr
payments.status
:pending
- nie zostanie zwrócony parametr
transactionPaymentUrl
Po zainicjowaniu takiej transakcji w aplikacji płatnika (aplikacji Visa Mobile albo aplikacji banku, który wspiera ten rodzaj płatności) zostanie wysłana notyfikacja z prośbą o potwierdzenie płatności.
Obsłuż powiadomienie
Poinformujemy Twój system o statusie transakcji za pośrednictwem webhooka. Sprawdź szczegóły.
Wyświetl wynik transakcji
Po otrzymaniu notyfikacji o statusie transakcji wykorzystaj pole tr_status
i wyświetl wynik transakcji.
Transakcja nie została poprawnie zarejestrowana
Jeśli numer telefonu nie jest zarejestrowany w Visa Mobile lub nie uda się poprawnie założyć transakcji to:
- zostanie zwrócony parametr
payments.status
:declined
- zostanie zwrócony parametr
transactionPaymentUrl
wraz z URL do Panelu Transakcyjnego, na który możesz przekierować płatnika w celu dokończenia płatności, lub wyświetlić stosowny komunikat w celu zweryfikowania numeru telefonu.
Numer telefonu jest niepoprawny
Jeśli numer telefonu jest niepoprawny, tj. nie spełnia wymogów walidacyjnych opisanych powyżej, to podczas tworzenia transakcji zwrócimy HTTP Status 400 - Bad Request
.