Przejdź do głównej treści
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:
POST https://gateway-api.sandbox.paymove.io/api/product/pay
{
  "partnerId": "{{partnerId}}",
  "productType": "PAY",
  "id": "2f6c19e8-84a7-4f50-b950-8d5a05e0bbf2",
  "name": "MerchantShop",
  "fullName": "Merchant Shop Sp. z o.o.",
  "shortName": "MShop",
  "location": "PL",
  "timezone": "Europe/Warsaw",
  "productMetadata": {
    "locale": "pl-PL"
  }
}
PoleOpis
partnerIdIdentyfikator partnera (wewnętrzny, nadawany przez Paymove)
productTypeTyp produktu - PAY dla bramki płatniczej
idUUID produktu
nameNazwa skrócona produktu
fullNamePełna nazwa firmy
shortNameNazwa wyświetlana
locationLokalizacja (kod kraju)
timezoneStrefa czasowa IANA (np. Europe/Warsaw)
productMetadata.localeOpcjonalnie - domyślny język checkoutu (np. pl-PL)

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:
POST https://gateway-api.sandbox.paymove.io/api/pay/plugin/webhook
{
  "name": "PaymentSuccessHook",
  "endpoint": "https://merchant-shop.com/api/payments/webhook",
  "method": "POST",
  "requestTemplate": {
    "orderId": "{{externalId}}",
    "price": "{{price}}"
  },
  "responseTemplate": {
    "status": "ok"
  },
  "expectedCode": 200,
  "expectedResponse": "{ \"status\": \"ok\" }",
  "retries": 3,
  "partnerId": "{{partnerId}}",
  "type": "PAYMENT",
  "headers": {
    "Content-Type": ["application/json"]
  }
}
PoleOpis
nameNazwa webhooka
endpointURL, na który Paymove wyśle powiadomienie po udanej płatności
methodMetoda HTTP (POST)
requestTemplateSzablon payloadu - zmienne {{externalId}} i {{price}} są podstawiane dynamicznie
responseTemplateOczekiwana struktura odpowiedzi od merchanta
expectedCodeOczekiwany kod HTTP odpowiedzi (200)
expectedResponseOczekiwana odpowiedź jako string JSON
retriesLiczba ponownych prób w przypadku niepowodzenia
partnerIdIdentyfikator partnera (wewnętrzny)
typeTyp zdarzenia (PAYMENT)
headersNagłówki HTTP dołączane do webhooka

Jak działa webhook

Paymove informuje webhook o zmianach statusu płatności. Powiadomienia są wysyłane dla następujących statusów:
StatusKod
INITIALIZED-2
CANCELED-1
PENDING0
COMPLETED1
ERRORbłąd
REFUNDED2
WAITING_FOR_EXTERNAL_ACTION3
Od partnera zależy, czy dany status będzie obsłużony - konfiguracja jest ustalana indywidualnie w systemie partnera. Gdy płatność zakończy się sukcesem, Paymove wysyła POST na Twój URL z następującym payloadem:
{
  "orderId": "order-123",
  "price": "1000"
}
PoleOpis
orderIdTwój identyfikator zamówienia (externalId z żądania tworzenia płatności)
priceKwota w groszach (jako string)

Wymagana odpowiedź

Twój serwer musi odpowiedzieć:
{ "status": "ok" }
W przypadku braku prawidłowej odpowiedzi (HTTP 200 z oczekiwanym body) webhook zostanie ponowiony - domyślna konfiguracja to 3 ponowne próby.

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:
POST https://gateway-api.sandbox.paymove.io/api/pay/plugin/webhook/{webhookId}/products/{merchantId}
ParametrOpis
webhookIdIdentyfikator webhooka otrzymany w punkcie 2
merchantIdUUID produktu utworzonego w punkcie 1

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.