X-API-KEY header.
Examples use the sandbox environment:
https://gateway-api.sandbox.paymove.io. You need your partnerId and the productId of the store created in the Payment Gateway: basic integration tutorial.Step 1: Register a webhook
InrequestTemplate you define the request body Paymove will send to your endpoint. You can use the variables {{externalId}} (your order identifier) and {{price}} (the amount) - Paymove substitutes them when sending.
Response (200):
id field in the response is the webhook identifier (webhookId) you will use in step 2.
Step 2: Assign the webhook to your store
The webhook only starts working once it is linked to a product. In the URL, replacewebhookId (from step 1) and the productId of your store.
endpoint.
Verify the configuration
You can list the products linked to a webhook with:What does a payment notification look like?
After a completed payment, Paymove sends a request to yourendpoint matching the requestTemplate and configured headers. For the template from step 1, the body looks like this:
orderId is the externalId you passed when creating the payment - it lets you unambiguously match the notification to an order in your system.
The shape above is the result of the
requestTemplate. With an empty template, Paymove sends the full payment object instead - the field set is described in Configuration.expectedCode (customarily 200 with a { "status": "ok" } body, though the body is never inspected) - only then does Paymove consider the delivery successful. A 201 or 204 response against expectedCode: 200 counts as a failure and is not retried. Deliveries that end in a 4xx, a 5xx or a network error are retried as many times as retries specifies - 0 by default, meaning not at all.
What’s next?
Payment Gateway: basic integration
The full payment flow: product, payment, customer redirect.
Webhooks
Payment notification configuration details.