Przejdź do głównej zawartości

Płatności cykliczne BLIK

Płatności cykliczne BLIK pozwalają obciążać kupującego bez jego udziału (MIT – Merchant Initiated Transaction). Najpierw kupujący wykonuje płatność (CIT – Customer Initiated Transaction), która rejestruje token płatniczy PAYID.

Istotne informacje

Aby uruchomić usługę, podpisz aneks do obowiązującej umowy.


Przed integracją zapoznaj się z dokumentacją i wymaganiami na stronie Płatności cykliczne BLIK.


Kupujący może usunąć token w swoim banku. Usunięty token nie pojawia się już na liście dostępnych tokenów.

Ogólne informacje o płatnościach cyklicznych BLIK​

Po zapisaniu tokena PAYID merchant może inicjować transakcje cykliczne i sam decyduje o ich częstotliwości i kwocie. W tym modelu:

  • Merchant może wykonywać transakcje o zmiennej kwocie i częstotliwości.
  • Maksymalna 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 zwraca odpowiedni komunikat błędu, a płatność nie jest automatycznie ponawiana – merchant odpowiada za ponowienie próby obciążenia.

W tym modelu merchant przejmuje odpowiedzialność za ewentualne oszustwa. Merchant potwierdza to, ustawiając parametr recommendedAuthLevel na NO_CONFIRMATION.

Zwrot środków aktywacyjnych

Obecnie nie można zarejestrować płatności cyklicznej z zerową kwotą. Jeśli aktywacja wiąże się z pobraniem środków, a nie jest to opłata za usługę, merchant musi zwrócić kwotę aktywacyjną.

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, rozszerz standardowe zamówienie o sekcję buyer z polami extCustomerId i email oraz o sekcję payMethods z obiektem blikData, w którym parametr register ma wartość true. W blikData dodaj też obiekt recurring określający typ płatności.

Istotne sekcje żądania
{
...
"buyer": {
"extCustomerId": "<id kupującego w systemie merchanta>",
"email": "<adres e-mail kupującego>"
},
"totalAmount": <opłata aktywacyjna>,
"payMethods": {
"payMethod": {
"type": "BLIK_AUTHORIZATION_CODE",
"value": "<kod autoryzacyjny BLIK>",
"blikData": {
"aliasLabelProposal": "<tytuł płatności cyklicznej>",
"register": true,
"recurring": {
"type": "O",
"initializationDate": "<data pierwszej transakcji MIT>",
"expirationDate": "<data ważności tokena PAYID>"
}
}
}
}
}

Szczegóły parametrów znajdziesz w sekcji Create an Order w naszej referencji API.

Dodatkowe informacje

Jeśli sam zarządzasz tokenami swoich kupujących, umieść wartość wygenerowanego tokena PAYID 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ą.


Możesz przesłać opcjonalny parametr authorizeDespiteRecurringNotSupported (domyślna wartość false). Określa on, czy transakcja BLIK powinna zostać przetworzona nawet wtedy, gdy bank kupującego nie obsługuje 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 błąd AUTH_TOKEN_TYPE_NOT_SUPPORTED_BY_ISSUER (zobacz tabelę poniżej).

Status HTTPOpis
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_EXPIRED
Kod autoryzacyjny wygasł.
400
ERROR_AUTHORIZATION_CODE / AUTH_CODE_LIMIT_EXCEEDED
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 został 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 jest wymagany do autoryzacji.
400
ERROR_VALUE_INVALID / INVALID_BLIK_CODE
Niepoprawny składniowo kod autoryzacyjny BLIK. Kod musi 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 jest wymagane dla merchantów zarządzających własnymi tokenami.
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 nieobsługiwanego kodu kraju.
400
ERROR_VALUE_INVALID / INVALID_BLIK_RECURRING_TYPE
Błąd walidacji pola type w sekcji recurring. Użyto nieobsługiwanego typu.
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ż wartość 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 ani wcześniejsza niż wartość initializationDate. Jeśli została podana, nie może być późniejsza niż 10 lat od teraz.
400
ERROR_TOKEN / AUTH_TOKEN_EXISTS
Nie udało się zarejestrować tokena, ponieważ już istnieje.
400
BUSINESS_ERROR / RECURRING_TOKEN_PAYMENT_NOT_ALLOWED
PayU nie udostępniło Ci usługi płatności cyklicznych.
400
ERROR_TOKEN / AUTH_TOKEN_TYPE_NOT_SUPPORTED_BY_ISSUER
Nie można zarejestrować tokena, ponieważ wybrany bank nie obsługuje płatności cyklicznych.

Płatność cykliczna BLIK z tokenem PAYID​

Aby utworzyć kolejną płatność cykliczną BLIK, rozszerz standardowe zamówienie o sekcję payMethods z tokenem PAYID i obiektem blikData. W blikData umieść identyfikator aplikacji bankowej appKey i obiekt recurring określający typ żądania.

Brak pola bankApplicationReferences

Jeśli w odpowiedzi na żądanie pobrania dostępnych metod płatności nie otrzymasz pola bankApplicationReferences dla tokena BLIK (type="PAYID"), podczas tworzenia płatności z tym tokenem nie przesyłaj pola appKey.

Przesyłaj pole appKey tylko wtedy, gdy w odpowiedzi dla tokena 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 utworzenia płatności.

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

Szczegóły parametrów znajdziesz w sekcji Create an Order w naszej referencji API.

Dodatkowe informacje

Ustawiając parametr recommendedAuthLevel na NO_CONFIRMATION, merchant potwierdza, że przejmuje odpowiedzialność za ewentualne oszustwa.

Status HTTPOpis
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 nieobsługiwanego kodu kraju.
400
ERROR_VALUE_MISSING / MISSING_APPKEY
Błąd walidacji. Brakuje pola appKey w sekcji blikData.
400
ERROR_VALUE_INVALID / INVALID_ALIAS_LABEL_PROPOSAL_USAGE
Pole aliasLabelProposal nie może być użyte podczas płatności tokenem, jeśli tokenami zarządza PayU.
400
ERROR_VALUE_MISSING / MISSING_ALIAS_LABEL_PROPOSAL
Pole aliasLabelProposal jest wymagane podczas płatności tokenem PAYID, jeśli tokenami zarządza merchant.
400
ERROR_VALUE_INVALID / INVALID_REGISTER_TOKEN_VALUE_USAGE
Pole registerTokenValue nie może być użyte podczas płatności tokenem PAYID.
400
ERROR_VALUE_MISSING / MISSING_AUTHORIZATION_CODE_OR_TOKEN
Błąd walidacji. Dane autoryzacyjne są wymagane – brakuje tokena.
400
ERROR_VALUE_INVALID / AMBIGUOUS_AUTHORIZATION_USAGE
Podano dwie metody autoryzacji. Aby zapłacić tokenem, wypełnij wyłącznie pole value, umieszczając w nim 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 nieobsługiwanej 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
Wartość totalAmount nie może przekraczać progu ustalonego dla transakcji inicjowanych przez merchanta.
400
BUSINESS_ERROR / RECURRING_TOKEN_PAYMENT_NOT_ALLOWED
PayU nie udostępniło Ci usługi płatności cyklicznych.
400
ERROR_VALUE_INVALID / INITIALIZATION_DATE_NOT_MET
Błąd walidacji pola initializationDate w sekcji recurring. Próba wykonania transakcji przed zdefiniowaną datą.
400
ERROR_VALUE_INVALID / EXPIRATION_DATE_NOT_MET
Błąd walidacji pola expirationDate w sekcji recurring. Próba wykonania transakcji po zdefiniowanej dacie.
400
ERROR_VALUE_INVALID / NO_CONFIRMATION_AUTH_LEVEL_REQUIRED
Błąd walidacji pola recommendedAuthLevel w sekcji blikData. Pole musi mieć wartość NO_CONFIRMATION.