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: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:How the webhook works
Payment statuses in Paymove:The status is always sent as a string (e.g.
"COMPLETED"). The numbers found in older integrations are an internal database representation and never appear in the API or in webhooks.Webhook payload
The payload shape depends on whether you set arequestTemplate.
Without a requestTemplate Paymove sends the full object (empty fields are omitted):
requestTemplate the payload is exactly what your template renders. For the template from step 2:
Signature verification
Every webhook request carries anX-Paymove-Signature header. Verify it before trusting the payload - without verification, anyone who knows your URL can impersonate Paymove and have an order fulfilled without paying.
Ready-to-copy code for Node.js, Python and Java: Webhook signature verification.
Required response
Your server must respond with an HTTP status equal toexpectedCode. The customary body to return alongside it is:
The response body is never inspected.
expectedResponse is stored on the webhook and echoed back by the API, but it is never compared against what your server returns - any body will do.retries specifies - 0 by default, meaning not at all. With retries set, the next attempts follow after 1 s, 5 s, 5 min, 1 h, and then every 3 h.
Paymove applies no timeout to webhook calls. Respond immediately and do the actual order processing asynchronously - otherwise a slow endpoint blocks processing.
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: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.