Skip to content

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
Status 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.

Download OpenAPI description
Languages
Servers
Sandbox
https://api.sandbox.planetpay.pl
Produkcja
https://api.planetpay.pl

Wysłanie metody uwierzytelniającej i pobranie tokenu JWT jest wymagane do poprawnego procesowania płatności przez bramkę PlanetPay

Operations

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.

Operations

Kontynuacja odrzuconej płatności

Request

Awaryjna metoda rejestrująca nową płatność na podstawie poprzedniej, która zakończyła się niepowodzeniem (status REJECTED/CANCELLED/ERROR). Dla płatności rejestrowany jest nowy identyfikator paymentId.

Security
bearerAuth
Path
paymentIdstringrequired

Identyfikator płatności w systemie operatora płatności

curl -i -X POST \
  'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/retry' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

OK

Body*/*
paymentIdstring

Identyfikator płatności w systemie operatora płatności

subpaymentsArray of objects(SubpaymentResponse)

Lista subtransakcji przy płatnościach z MARKETPLACE

statusstring

Aktualny status płatności

dataRequeststring

Zadanie dodatkowych danych

acsDataobject(AcsData)

Dane potrzebne do wykonania ACS challenge

redirectURLstring

Adres URL dla kontynuacji flow webowego

rejectCodestring

Powód odrzucenia (w przypadku niepowodzenia)

rejectInfostring

Dodatkowe informacje o powodzie odrzucenia Płatności

tokenizerIdstring

Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)

blikObjectobject(BlikTransactionDto)

Struktura zapytania BLIK

optionsobject(PaymentOptionsInfoResponse)

Inne parametry sterujace

channelstring

Kanal płatności

Enum"PAYWALL""MOBILE""WEBAPI""EBOK""CSS"
methodstring

Metoda płatności

Enum"CARD""PBL""BLIK""GPAY""APAY""UNKNOWN""C2P"
apaySessionstring

Obiekt sesji APAY do inicjalizacji płatności

reattemptstring

Informacja o ograniczeniach w wykonywaniu płatności. Dopuszczalne wartości: NEVER - nie wysyłaj wiecej komunikatów na ten numer karty; NEVER_RECURRING - nie wysyłaj wiecej komunikatów dla płatności powtarzalnej; LATER - spróbuj poźniej

Enum"NEVER""NEVER_RECURRING""LATER"

Generowanie nowego linku do płatności

Request

W sytuacji gdy płatność nie została dokończona przez klienta z jakiegoś powodu (zagubiony link do płatności) możemy wygenerować nowy link z tym samym paymentId i nowym tokenem JWT typu CLIENT. Wygenerowanie nowego linka jest możliwe wyłącznie jeżeli płatność znajduje się w statusie NEW. Dotyczy wyłącznie kanału PAYWALL. Uwaga: niezrealizowana płatność może zostać automatycznie anulowana po przekroczeniu czasu ważności linka (validTime).

Security
bearerAuth
Path
paymentIdstringrequired

Identyfikator płatności w systemie operatora płatności

curl -i -X POST \
  'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/restore' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

OK

Body*/*
paymentIdstring

Identyfikator płatności w systemie operatora płatności

subpaymentsArray of objects(SubpaymentResponse)

Lista subtransakcji przy płatnościach z MARKETPLACE

statusstring

Aktualny status płatności

dataRequeststring

Zadanie dodatkowych danych

acsDataobject(AcsData)

Dane potrzebne do wykonania ACS challenge

redirectURLstring

Adres URL dla kontynuacji flow webowego

rejectCodestring

Powód odrzucenia (w przypadku niepowodzenia)

rejectInfostring

Dodatkowe informacje o powodzie odrzucenia Płatności

tokenizerIdstring

Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)

blikObjectobject(BlikTransactionDto)

Struktura zapytania BLIK

optionsobject(PaymentOptionsInfoResponse)

Inne parametry sterujace

channelstring

Kanal płatności

Enum"PAYWALL""MOBILE""WEBAPI""EBOK""CSS"
methodstring

Metoda płatności

Enum"CARD""PBL""BLIK""GPAY""APAY""UNKNOWN""C2P"
apaySessionstring

Obiekt sesji APAY do inicjalizacji płatności

reattemptstring

Informacja o ograniczeniach w wykonywaniu płatności. Dopuszczalne wartości: NEVER - nie wysyłaj wiecej komunikatów na ten numer karty; NEVER_RECURRING - nie wysyłaj wiecej komunikatów dla płatności powtarzalnej; LATER - spróbuj poźniej

Enum"NEVER""NEVER_RECURRING""LATER"

Realizacja zwrotu środkow dla przeprocesowanych płatności

Request

Realizacja zwrotu środków do klienta. Muszą zostać spełnione następujące warunki: • oryginalna płatność jest w statusie COMPLETED lub SETTLED • kwota zwrotu (lub suma kwot zwrotów częściowych) dla danej płatności nie przekracza kwoty oryginalnej płatności • merchant zapewnił środki na pokrycie kwoty zwrotu. Każda zarejestrowana operacja zwrotu otrzymuje unikatowy identyfikator refundId.

Security
bearerAuth
Path
paymentIdstringrequired

Identyfikator płatności w systemie operatora płatności

Headers
X-PSP-Certificationstring

Wymuszenie odpytania systemu operatora

Bodyrequired
subpaymentIdstring or null

Identyfikator subtransakcji

amountnumber or null

Kwota zwrotu dla zwrotów częściowych; domyślnie zwracana jest pełna kwota (Format: 000.00)

descriptionstring or null

Dodatkowe informacje o powodzie zwrotu

extRefundIdstring or null

Identyfikator zwrotu w zewnętrznym systemie

curl -i -X POST \
  'https://api.sandbox.planetpay.pl/v1/ecommerce/payment/{paymentId}/refund' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -d '{
    "subpaymentId": "string",
    "amount": 0,
    "description": "string",
    "extRefundId": "string"
  }'

Responses

OK

Body*/*
paymentIdstring

Identyfikator płatności w systemie operatora płatności

subpaymentIdstring

Identyfikator subtransakcji

refundIdstring

Identyfikator zwrotu (zgodny formatem z identyfikatorem płatności)

statusstring

Status zwrotu

rejectCodestring

Powód odrzucenia (w przypadku niepowodzenia)

rejectInfostring

Dodatkowe informacje o powodzie odrzucenia płatności

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).

Operations

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.

Operations