Skip to main content
Integracja z bramką płatniczą Paymove składa się z czterech kroków: tworzysz produkt, rejestrujesz webhook, przypisujesz go do produktu, a następnie tworzysz płatności przez SDK lub REST API.

1. Utworzenie produktu

Produkt reprezentuje Twój sklep w systemie Paymove. Wszystkie płatności i subprodukty są tworzone w ramach tego produktu. Przykładowy request tworzenia produktu:

2. Rejestracja webhooka

Webhook to adres URL po Twojej stronie, który Paymove wywołuje po każdej zmianie statusu płatności. Dzięki temu nie musisz ręcznie sprawdzać statusu - zamówienia mogą być realizowane automatycznie. Lista możliwych statusów: tabela statusów. Przykładowy request rejestracji webhooka:

Jak działa webhook

Domyślnie webhook jest wysyłany wyłącznie dla statusu COMPLETED. Powiadomienia o pozostałych statusach (CANCELED, ERROR, REFUNDED) wymagają włączenia po stronie Paymove dla konkretnego produktu - napisz na integration@paymove.io.
Statusy płatności w Paymove:
Status jest zawsze przesyłany jako łańcuch znaków (np. "COMPLETED"). Liczby spotykane w starszych integracjach są wewnętrzną reprezentacją bazodanową i nie pojawiają się w API ani w webhookach.

Payload webhooka

Kształt payloadu zależy od tego, czy ustawiłeś requestTemplate. Bez requestTemplate Paymove wysyła pełny obiekt (pola puste są pomijane):
W domyślnym payloadzie price to kwota pomniejszona o prowizję Paymove, a nie kwota pobrana od klienta. Jeśli weryfikujesz zgodność kwoty, porównuj ją z wartością zapisaną u siebie przy tworzeniu płatności, a nie z tym polem.
Z requestTemplate payload to dokładnie to, co wyrenderuje Twój szablon. Dla szablonu z punktu 2:

Weryfikacja podpisu

Każde żądanie webhooka zawiera nagłówek X-Paymove-Signature. Zweryfikuj go, zanim zaufasz treści - bez tego każdy, kto zna Twój URL, może podszyć się pod Paymove i zrealizować zamówienie bez płatności. Gotowy kod w Node.js, Pythonie i Javie: Weryfikacja podpisu webhooka.

Wymagana odpowiedź

Twój serwer musi odpowiedzieć kodem HTTP równym expectedCode. Przyjęło się zwracać przy tym:
O powodzeniu doręczenia decyduje wyłącznie kod HTTP, i musi być dokładnie równy expectedCode. Przy domyślnym 200 odpowiedź 201 lub 204 jest traktowana jako niepowodzenie - i, co gorsza, nie jest ponawiana: harmonogram ponowień uruchamiają tylko kody 4xx, 5xx i błędy sieci. Zły kod z rodziny 2xx bezpowrotnie gubi powiadomienie.
Treść odpowiedzi nie jest w ogóle sprawdzana. Pole expectedResponse jest zapisywane przy webhooku i zwracane w odpowiedzi API, ale nigdy nie jest porównywane z tym, co zwróci Twój serwer - możesz odesłać dowolne body.
Jeśli doręczenie się nie powiedzie, webhook zostanie ponowiony tyle razy, ile wskazuje retries - domyślnie 0, czyli ani razu. Przy ustawionym retries kolejne próby następują po 1 s, 5 s, 5 min, 1 h, a następnie co 3 h.
Wywołania webhooka nie mają limitu czasu po stronie Paymove. Odpowiadaj natychmiast, a właściwe przetwarzanie zamówienia wykonuj asynchronicznie - inaczej wolny endpoint będzie blokował przetwarzanie.

3. Przypisanie webhooka do produktu

Po utworzeniu produktu i zarejestrowaniu webhooka należy je ze sobą powiązać. Dzięki temu każde zdarzenie płatności dotyczące tego produktu automatycznie trafia pod wskazany URL webhooka. Przykładowy request:

4. Tworzenie płatności

Po skonfigurowaniu produktu i webhooka możesz zacząć tworzyć płatności. Wybierz metodę integracji:

SDK

Pakiet Node.js - zainicjalizuj klienta i wywołaj createPayment.

REST API

Bezpośrednie wywołania HTTP - działa z każdym językiem.