Kwota dopelnienia
Planet Pay Merchant API (2.1.15)
Poniższa dokumentacja techniczna (Merchant API) umożliwia wdrożenie wszystkich dostępnych metod płatności oraz funkcjonalności oferowanych przez bramkę płatniczą Planet Pay.
Słownik pojęć:
Secret - poufny klucz przyznawany Merchantowi przez Planet Pay
Merchant - właściciel punktu sprzedaży zarejestrowany w systemie operatora płatności
Agent - podmiot pośredniczący w transakcji (np. operator aplikacji mobilnej)
Klient - klient końcowy (wykonujący i opłacający zamówienie)
MID - merchant identification number - numer merchanta/agenta nadawany przez operatora płatności
SCA - silne uwierzytelnienie klienta; środek wprowadzony przez dyrektywę PSD2 w celu zwiększenia bezpieczeństwa płatności internetowych
Statusy Płatności:
Flow statusów płatności przedstawia się nastepująco NEW - PENDING - COMPLETED/REJECTED - CANCELLED/ERROR/SETTLED
Wywołanie metody payment powoduje zarejestrowanie w systemie płatności ze statusem NEW.
Płatność utrzymuje się w statusie NEW do momentu określenia metody płatności i instrumentu płatniczego.
Płatność zmienia status na PENDING w momencie rozpoczęcia procesowania transakcji (np. inicjalizacja 3DS w przypadku płatności kartą lub komunikacja z systemami PSP w przypadku transakcji BLIK).
Płatność, która zakończyła się powodzeniem, otrzymuje status COMPLETED.
Płatność po rozliczeniu ostatecznie otrzymuje status SETTLED.
Płatność w statusie NEW i PENDING może zostać anulowana. Płatność otrzymuje wtedy status CANCELLED.
Dopuszczalne jest anulowanie płatności w statusie COMPLETED w przypadku braku możliwości zrealizowania zlecenia przez merchanta.
Anulowanie płatności w statusie COMPLETED nie jest możliwe, jeżeli istnieje choć jedno dopełnienie (capture) lub wykonany został zwrot (refund).
Błąd systemowy może spowodować oznaczenie transakcji statusem ERROR.
Notyfikacje
Notyfikacje dotyczące płatności powinny być przyjmowane na dedykowany endpoint /payment niezależnie od typu płatności.
API wspólne dla wszystkich metod płatności. Poszczególne metody i kanały płatności mogą się różnić zakresem pól obowiązkowych. Operator płatności nadaje każdemu zleceniu płatności unikatowy numer paymentId, który może zostać wykorzystany przez merchanta np. do pobrania aktualnego statusu płatności. Status płatności może być również wysłany do merchanta kanałem notyfikacji (powiadomienia asynchroniczne). Wszystkie wywołania API wymagają podania tokenu autoryzacyjnego w nagłówku żądania.
Request
Preautoryzacja (transKind=PREAUTH) skutkuje blokadą środków i wymaga wykonania operacji dopełnienia w celu obciążenia klienta. Blokada środków domyślnie zakładana jest na 30 dni (wartość ta może być ustawiona niżej poprzez parametry konfiguracyjne merchanta). Dopełnienie zatwierdza ostateczną kwotę płatności i kieruje ją do rozliczenia (do tego czasu transakcja jest utrzymywana w statusie COMPLETED). Dopełnienie może być zrealizowane na kwotę równą lub mniejszą względem preautoryzacji.
- application/json;charset=UTF-8
- application/json
- Sandboxhttps://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/capture
- Produkcjahttps://api.planetpay.pl/v1/ecommerce/payment/{paymentId}/capture
- cURL
- Python
- JS
- application/json;charset=UTF-8
- application/json
curl -i -X POST \
'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/capture' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"amount": 0,
"description": "string"
}'Request
Płatność w statusie NEW i PENDING może zostać anulowana. Płatność otrzymuje status CANCELLED. Możliwe jest w pewnych sytuacjach anulowanie płatności w statusie COMPLETED, co skutkuje odwróceniem oryginalnej transakcji (reversal) bez ostatecznego skutku finansowego dla klienta. W szczególności można anulować preautoryzację, co skutkuje zwolnieniem blokady środków.
- Sandboxhttps://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/cancel
- Produkcjahttps://api.planetpay.pl/v1/ecommerce/payment/{paymentId}/cancel
- cURL
- Python
- JS
curl -i -X POST \
'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/cancel' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reason": "FRAUD"
}'Request
Dodatkowy krok dla flow mobilnego do określenia organizacji płatniczej i używanej wersji protokołu 3DSecure. Wersja protokołu ustalana jest jako najwyższa możliwa z zakresów obsługiwanych przez komponenty: SDK, ACS, 3DS i DS. Drugi wariant metody na potrzeby wywołań z payment SDK zakłada, że płatność została już wcześniej zainicjalizowana (znamy instrument)
- application/json;charset=UTF-8
- application/json
- Sandboxhttps://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/binInfo
- Produkcjahttps://api.planetpay.pl/v1/ecommerce/payment/{paymentId}/binInfo
- cURL
- Python
- JS
- application/json;charset=UTF-8
- application/json
curl -i -X POST \
'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/binInfo' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"channel": "PAYWALL",
"sdkStartProtocol": "string",
"sdkEndProtocol": "string"
}'Dostępna jest tokenizacja kart klienta w oparciu o wewnętrzne mechanizmy bramki ecommmerce (COF) lub tokenizacja w oparciu o usługi organizacji płatniczej Visa VTS/Mastercard SCOF (NETWORK). Proces może być kilkuetapowy, w związku z czym cały flow tokenizacji spina identyfikator o nazwie tokenizerId. Do operacji na tokenie (usunięcie/modyfikacja) należy wykorzystywać identyfikator tokenu (nie tokenizacji).
System wysyła do merchanta notyfikacje w reakcji na określone zdarzenia systemowe. Notyfikacje wysyłane są jeżeli w parametryzacji merchanta podany został URL API implementującego poniższą specyfikację. System generuje żądania metodą POST. Oczekujemy, że odbiorca zwróci kod HTTP 200 po przyjęciu komunikatu. Wysyłka notyfikacji jest ponawiana w przypadku błędów sieciowych (HTTP 50X). Notyfikacje nie będą ponawiane w przypadku, gdy system nie przyjął komunikatu (HTTP 40X). Notyfikacje zawierają cyfrowy podpis, który wysyłany jest w nagłówku Signature jako wartość hex. Podpis wyliczany jest algorytmem HMAC-SHA256 z wartości wszystkich pól komunikatu (konkatenacja). Do wyliczenia podpisu obowiązuje kolejność pól prezentowana w niniejszej specyfikacji. Tajny klucz dla algorytmu ustawiany jest w parametryzacji merchanta.