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.
Pracujesz z agentem AI? Kroki 1-3 wykona za Ciebie - wystarczy klucz API i partnerId, o nazwę sklepu i resztę pól zapyta sam. Zobacz Integrację z agentami AI.

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 zakończonej 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

Statusy płatności w Paymove:

Payload webhooka

Kształt payloadu zależy od tego, czy ustawiłeś requestTemplate. Bez requestTemplate Paymove wysyła pełny obiekt płatności. Pola bez wartości są pomijane, więc konkretne powiadomienie może zawierać ich mniej:
Z requestTemplate payload to dokładnie to, co wyrenderuje Twój szablon - ani mniej, ani więcej. Dla szablonu z punktu 2:
W szablonie możesz użyć każdego pola domyślnego payloadu:
Wartości podstawiane w szablonie tekstowym trafiają do payloadu jako łańcuchy znaków - "price": "{{price}}" da "1000", a nie 1000. Zmienna bez wartości renderuje się jako pusty tekst.
Payload zawiera wyłącznie pola wypisane w szablonie. Jeśli chcesz rozróżniać statusy płatności, dodaj do niego {{status}} - inaczej Twój endpoint nie odróżni powiadomień.

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.