1. Create a product
A product represents your store in the Paymove system. All payments and subproducts are created within this product. Example product creation request:| Field | Description |
|---|---|
partnerId | Partner identifier (internal, assigned by Paymove) |
productType | Product type - PAY for payment gateway |
id | Product UUID |
name | Short product name |
fullName | Full company name |
shortName | Display name |
location | Location (country code) |
timezone | IANA timezone (e.g. Europe/Warsaw) |
productMetadata.locale | Optional - default checkout language (e.g. pl-PL) |
2. Register a webhook
A webhook is a URL on your side that Paymove calls whenever a payment status changes. This way you don’t need to manually check the status - orders can be fulfilled automatically. For the list of possible statuses, see the status table. Example webhook registration request:| Field | Description |
|---|---|
name | Webhook name |
endpoint | URL where Paymove sends a notification after a successful payment |
method | HTTP method (POST) |
requestTemplate | Payload template - variables {{externalId}} and {{price}} are dynamically substituted |
responseTemplate | Expected response structure from the merchant |
expectedCode | Expected HTTP response code (200) |
expectedResponse | Expected response as a JSON string |
retries | Number of retry attempts on failure |
partnerId | Partner identifier (internal) |
type | Event type (PAYMENT) |
headers | HTTP headers attached to the webhook |
How the webhook works
Paymove notifies the webhook about payment status changes. Notifications are sent for the following statuses:| Status | Code |
|---|---|
INITIALIZED | -2 |
CANCELED | -1 |
PENDING | 0 |
COMPLETED | 1 |
ERROR | error |
REFUNDED | 2 |
WAITING_FOR_EXTERNAL_ACTION | 3 |
POST to your URL with the following payload:
| Field | Description |
|---|---|
orderId | Your order identifier (externalId from the payment creation request) |
price | Amount in minor units (as a string) |
Required response
Your server must respond with:200 with the expected body) is not received, the webhook will be retried - the default configuration is 3 retry attempts.
3. Assign webhook to product
After creating a product and registering a webhook, you need to link them together. This way every payment event related to this product is automatically sent to the specified webhook URL. Example request:| Parameter | Description |
|---|---|
webhookId | Webhook identifier received in point 2 |
merchantId | Product UUID created in point 1 |
4. Creating payments
After configuring the product and webhook, you can start creating payments. Choose your integration method:SDK
Node.js package - initialize the client and call
createPayment.REST API
Direct HTTP calls - works with any language.
