Przejdź do głównej zawartości

Płatności cykliczne BLIK

Interfejs API został rozszerzony o możliwość realizacji transakcji cyklicznych bez udziału kupującego (tzw. MIT – Merchant Initiated Transaction). Warunkiem skorzystania z tej funkcjonalności jest wcześniejsza rejestracja płatności z udziałem kupującego (tzw. CIT – Customer Initiated Transaction), co skutkuje utworzeniem tokenu płatniczego typu PAYID.

Istotne informacje

Aby uruchomić usługę, niezbędne jest podpisanie aneksu do obowiązującej umowy.


Przy integracji płatności cyklicznych BLIK należy zapoznać się z dokumentacją i wymaganiami dostępnymi na stronie Płatności cyklicznych BLIK.


Klient ma możliwość samodzielnego usunięcia tokena po stronie banku. W przypadku takiego działania, przy pobraniu listy dostępnych tokenów usunięty token nie będzie już widoczny.

Ogólnie informacje o płatnościach cyklicznych BLIK

Po zapisaniu tokenu PAYID merchant uzyskuje możliwość inicjowania transakcji w cyklu, gdzie to sprzedawca decyduje o częstotliwości oraz wysokości obciążenia. W tym modelu:

  • Merchant może wykonywać transakcje o zmiennej kwocie i częstotliwości.
  • Maksymalna dopuszczalna kwota pojedynczej transakcji wynosi 2000 PLN (transakcje powyżej tej kwoty są automatycznie odrzucane).
  • W przypadku braku środków na koncie, przekroczenia limitów, braku obsługi płatności cyklicznych w danym banku lub innego problemu technicznego, system zwróci odpowiedni komunikat błędu, a płatność nie zostanie automatycznie ponowiona - merchant jest odpowiedzialny za ponowienie próby obciążenia.

Realizacja transakcji w modelu wiąże się z przejęciem przez merchanta odpowiedzialności za ewentualne oszustwa - wyrażane jest to poprzez ustawienie parametru recommendedAuthLevel na wartość NO_CONFIRMATION. Wysłanie tego parametru jednoznacznie wskazuje na świadome działanie merchanta.

Zwrot środków aktywacyjnych

Obecnie nie ma możliwości rejestracji płatności powtarzalnej z zerową kwotą. W przypadku, gdy aktywacja wiąże się z pobraniem środków, a nie jest to opłata za usługę, merchant ma obowiązek wykonania zwrotu aktywacyjnego obciążenia.

Wymogi i zalecenia dotyczące bezpieczeństwa

Zanim przystąpisz do integracji usługi, zapoznaj się z zaleceniami i wymogami przygotowanymi przez ekspertów ds. bezpieczeństwa w PayU. Ich przestrzeganie pomoże zminimalizować ryzyko związane z transakcjami oszukańczymi.

Płatność cykliczna BLIK z rejestracją tokena PAYID

Aby zarejestrować token PAYID, powinieneś rozszerzyć standardowe zamówienie o sekcję payMethods z obiektem blikData z parametrem register ustawionym na true i sekcję buyer rozszerzoną o extCustomerId. Dodatkowo musisz dodać sekcję recurring wskazującą na typ płatności.

Istotne sekcje żądania
{
...
"buyer": {
"extCustomerId": "",
"email": ""
},
"totalAmount": <opłata aktywacyjna>,
"payMethods": {
"payMethod": {
"type": "BLIK_AUTHORIZATION_CODE",
"value": "<kod T6 użyty do autoryzacji transakcji>",
"blikData": {
"aliasLabelProposal": "<tytuł płatności cyklicznej>",
"register": true,
"recurring": {
"type": "O",
"initializationDate": "<data pierwszej transakcji MIT>",
"expirationDate": "<data ważności tokenu PAYID>"
}
}
}
}
}

Szczegółowe informacje na temat parametrów znajdziesz w sekcji Create an Order w naszej referencji API.

Dodatkowe informacje

Jeśli sam zarządzasz tokenami swoich klientów, wartość wygenerowanego tokena PAYID powinieneś umieścić w polu registerTokenValue. W przeciwnym razie pomiń ten parametr podczas rejestracji tokena - PayU wygeneruje unikalną wartość automatycznie.


Parametry initializationDate i expirationDate są opcjonalne.


Wartość aliasLabelProposal powinna być czytelna dla kupującego i jednoznacznie wskazywać na konkretną transakcję cykliczną.


Obecnie aby zarejestrować płatność cykliczną BLIK wymagane jest przesłanie niezerowej kwoty aktywacyjnej. W przypadku, gdy aktywacja wiąże się z pobraniem środków, a nie jest to opłata za usługę, merchant ma obowiązek wykonania zwrotu aktywacyjnego obciążenia.


Możliwe jest przesłanie opcjonalnego parametru authorizeDespiteRecurringNotSupported (domyślna wartość falsse). Określa on, czy transakcja BLIK powinna zostać przetworzona nawet w przypadku, gdy bank kupującego nie obsługuje funkcji płatności cyklicznych BLIK.

Jeśli żądanie zostanie wysłane dla banku, który nie obsługuje płatności cyklicznych BLIK, PayU zwróci odpowiedź: AUTH_TOKEN_TYPE_NOT_SUPPORTED_BY_ISSUER (zgodnie z opisem w tabeli "Possible Errors for PAYID Token Registration" poniżej).

Błędy możliwe przy rejestracji tokena PAYID
Status HttpKod statusuOpis
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_EXPIRED
Kod autoryzacyjny wygasł.
400
AUTH_CODE_LIMIT_EXCEEDED / ERROR_AUTHORIZATION_CODE
Limit dla kodu autoryzacyjnego został przekroczony.
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_CANCEL
Kod autoryzacyjny został anulowany.
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_USED
Kod autoryzacyjny był już wykorzystany.
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_INVALID
Niepoprawny kod autoryzacyjny.
400
ERROR_VALUE_MISSING / MISSING_AUTHORIZATION_CODE
Błąd walidacji, kod autoryzacyjny T6 BLIK wymagany do autoryzacji.
400
ERROR_VALUE_INVALID / INVALID_BLIK_CODE
Niepoprawny składniowo kod autoryzacyjny BLIK. Kod autoryzacyjny BLIK powinien składać się z 6 cyfr.
400
ERROR_VALUE_INVALID / INVALID_AUTHORIZATION_CODE_USAGE
Pole authorizationCode nie może zostać użyte w tym kontekście.
400
ERROR_VALUE_INVALID / INVALID_RECOMMENDED_AUTH_LEVEL_USAGE
Pole recommendedAuthLevel nie może zostać użyte w tym kontekście.
400
ERROR_VALUE_INVALID / INVALID_APP_KEY_USAGE
Pole appKey nie może zostać użyte w tym kontekście.
400
ERROR_VALUE_MISSING / MISSING_REGISTER_TOKEN_VALUE
Pole registerTokenValue wymagane dla merchantów utrzymujących tokeny.
400
ERROR_VALUE_MISSING / INVALID_CURRENCY_CODE
Niepoprawny kod waluty.
400
ERROR_VALUE_MISSING / MISSING_BUYER_EMAIL
Błąd walidacji, brakuje pola email w sekcji buyer.
400
ERROR_VALUE_MISSING / MISSING_BUYER_EXT_CUSTOMER_ID
Błąd walidacji, brakuje pola extCustomerId w sekcji buyer.
400
ERROR_VALUE_INVALID / INVALID_COUNTRY_CODE
Błąd walidacji, pola countryCode w sekcji blikData. Użyto niewspierany kod kraju.
400
ERROR_VALUE_INVALID / INVALID_BLIK_RECURRING_TYPE
Błąd walidacji, pola type w sekcji recurring. Użyto niewspierany typ.
400
ERROR_VALUE_INVALID / MISSING_ALIAS_LABEL_PROPOSAL
Błąd walidacji, brakuje pola aliasLabelProposal w sekcji blikData.
400
ERROR_VALUE_INVALID / INVALID_INITIALIZATION_DATE
Błąd walidacji, pola initializationDate w sekcji recurring. Data nie może być późniejsza niż expirationDate.
400
ERROR_VALUE_INVALID / INVALID_EXPIRATION_DATE
Błąd walidacji, pola expirationDate w sekcji recurring. Data nie może być z przeszłości oraz nie może być wcześniejsza niż initializationDate. Data jeżeli została zdefiniowana nie może być dłużej ważna niż 10 lat.
400
ERROR_TOKEN / AUTH_TOKEN_EXISTS
Próba zarejestowania tokenu, który już istnieje.
400
BUSINESS_ERROR / RECURRING_TOKEN_PAYMENT_NOT_ALLOWED
Usługa płatności cyklicznych niezostała udostępniona przez PayU.
400
ERROR_TOKEN / AUTH_TOKEN_TYPE_NOT_SUPPORTED_BY_ISSUER
Brak możliwość rejestracji tokenu, wybrany bank nie wspiera płatności cyklicznych.

Płatność cykliczna BLIK z tokenem PAYID

Aby utworzyć kolejną płatność cykliczną BLIK, musisz rozszerzyć standardowe zamówienie o sekcję payMethods, zawierającą token PAYID oraz obiekt blikData. W obiekcie blikData oprócz identyfikatora aplikacji bankowej appKey, powinieneś dodać sekcję recurring, określającą typ żądania.

Brak pola bankApplicationReferences

Jeśli w odpowiedzi na zapytanie o dostępne metody płatności dla tokenu BLIK (type="PAYID") nie otrzymasz pola bankApplicationReferences, podczas tworzenia płatności z tym tokenem nie przesyłaj pola appKey.

Pole appKey powinieneś przesłać tylko wtedy, gdy w odpowiedzi dla tokenu PAYID znajduje się tablica bankApplicationReferences, a w jej obiektach występuje pole key. W takiej sytuacji użyj wartości pola key jako wartości pola appKey w żądaniu tworzenia płatności. note

sekcja payMethods dla płatności cyklicznej BLIK
{
...
"payMethods": {
"payMethod": {
"type": "BLIK_TOKEN",
"value": "<wartość tokenu PAYID, który zostanie użyty do autoryzacji>",
"blikData": {
"appKey":"<id danego przypisania aplikacji bankowej>",
"recommendedAuthLevel": "NO_CONFIRMATION",
"recurring": {
"type": "O"
}
}
}
}
}

Szczegółowe informacje na temat parametrów znajdziesz w sekcji Create an Order w naszej referencji API.

Dodatkowe informacje

Wysłanie parametru recommendedAuthLevel z wartością NO_CONFIRMATION jednoznacznie wskazuje na świadome działanie merchanta. Merchant przejmuje odpowiedzialność za ewentualne oszustwa.

Błędy możliwe przy płatności cyklicznej BLIK (MIT)
Status HttpKod StatusuOpis
400
ERROR_TOKEN / AUTH_TOKEN_NOT_FOUND
Podany token płatniczy nie istnieje.
400
ERROR_TOKEN / AUTH_TOKEN_NOT_ACTIVE
Podany token płatniczy nie jest aktywny.
400
ERROR_VALUE_MISSING / INVALID_CURRENCY_CODE
Niepoprawny kod waluty.
400
ERROR_VALUE_INVALID / INVALID_COUNTRY_CODE
Błąd walidacji, pola countryCode w sekcji blikData. Użyto niewspierany kod kraju.
400
ERROR_VALUE_MISSING / MISSING_APPKEY
Błąd walidacji, brakuje id przypisania danej aplikacji bankowej.
400
ERROR_VALUE_INVALID / INVALID_ALIAS_LABEL_PROPOSAL_USAGE
Pole aliasLabelProposal nie może być użyte podczas płatności tokenem, w przypadku tokenów zarządzanych przez PayU.
400
ERROR_VALUE_MISSING / MISSING_ALIAS_LABEL_PROPSAL
Pole aliasLabelProposal jest obowiązkowe podczas płatności tokenem PAYID, w przypadku tokenów zarządzanych przez merchanta.
400
ERROR_VALUE_INVALID / INVALID_REGISTER_TOKEN_VALUE_USAGE
Pole registerTokenValue nie może być użyte podczas płatności tokenem.
400
ERROR_VALUE_MISSING / MISSING_AUTHORIZATION_CODE_OR_TOKEN
Błąd walidacji, dane autoryzacyjne wymagane - brakujący token.
400
ERROR_VALUE_INVALID / AMBIGUOUS_AUTHORIZATION_USAGE
Podano dwa instrumenty do autoryzacji, w celu realizacji płatności tokenem powinno być wypełnione wyłącznie pole value, w którym umieszczony zostanie token.
400
ERROR_VALUE_MISSING / MISSING_BUYER_EMAIL
Błąd walidacji, brakuje pola email w sekcji buyer.
400
ERROR_VALUE_MISSING / MISSING_BUYER_EXT_CUSTOMER_ID
Błąd walidacji, brakuje pola extCustomerId w sekcji buyer.
400
ERROR_VALUE_INVALID / INVALID_BLIK_RECURRING_TYPE
Błąd walidacji, pola type w sekcji recurring. Użyto niewspieranej wartości.
400
ERROR_VALUE_INVALID / INVALID_INITIALIZATION_DATE_USAGE
Pole initializationDate nie może być użyte podczas płatności tokenem.
400
ERROR_VALUE_INVALID / INVALID_EXPIRATION_DATE_USAGE
Pole expirationDate nie może być użyte podczas płatności tokenem.
400
ERROR_VALUE_INVALID / TOTAL_AMOUNT_REQUIRE_SCA
Pole totalAmount nie może przekraczać wyznaczonego progu w ramach transakcji inicjowanych przez merchanta.
400
BUSINESS_ERROR / RECURRING_TOKEN_PAYMENT_NOT_ALLOWED
Usługa płatności cyklicznych niezostała udostępniona przez PayU.
400
ERROR_VALUE_INVALID / INITIALIZATION_DATE_NOT_MET
Błąd walidacji, pola initializationDate w sekcji recurring. Próba wykonania transakcji przed zdefiniowanym czasem.
400
ERROR_VALUE_INVALID / EXPIRATION_DATE_NOT_MET
Błąd walidacji, pola expirationDate w sekcji recurring. Próba wykonania transakcji po zdefiniowanym czasem.
400
ERROR_VALUE_INVALID / NO_CONFIRMATION_AUTH_LEVEL_REQUIRED
Błąd walidacji, pola recommendedAuthLevel w sekcji blikData. Wartość pola musi być ustawiona na NO_CONFIRMATION.