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": {
"registerTokenValue": "<wartość rejestrowanego tokenu PAYID>",
"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.

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.

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.