curl and Node.js.
What you need
Creating a product and registering a webhook are one-time steps. If you have not done them yet, start with Configuration and come back here.
1. Create a payment
Store the
externalId parameter from the returned redirectUrl (here ec6RtwTZKb). It is a payment hash generated by Paymove - different from your own externalId - and it is what you use to check the status later.Working in Node.js or TypeScript? Instead of hand-written
fetch, use the official SDK - npm install @paymove-io/sdk. It is MIT-licensed, has zero dependencies, requires Node 18+ and ships TypeScript types. It assembles the nested request body for you and returns typed errors. Details: JavaScript SDK.The SDK does not include webhook signature verification - you write step 3 yourself either way.2. Redirect the customer
details.returnUrl.
3. Receive and verify the webhook
This is the only trustworthy confirmation of payment. The handler below does four things: takes the raw body, verifies the signature, responds immediately and fulfils the order idempotently.expectedCode (200 by default) - the response body is not inspected.
By default the webhook arrives only for the
COMPLETED status. If you also need notifications about cancellations and failures, write to integration@paymove.io. Full description: Payment statuses.4. Fallback status check
If the customer returned toreturnUrl but the webhook has not arrived yet, you can poll for the status. Use the payment hash you stored in step 1:
Before going live
- Switch the base URL to
https://api.paymove.ioand the key tosk_live_…. - Make sure
externalIdis unique per order - reusing it returns the old payment with the old amount. - Make sure the amount passed to
priceis computed server-side, not sent from the browser. - Set
retrieswhen registering the webhook - it defaults to0, meaning no retries.
What’s next
REST API
Every parameter, full responses and changing a payment’s amount.
Signature verification
Code for Node.js, Python and Java plus a test vector.
Error codes
What each error means and how to handle it.
JavaScript SDK
A ready-made client for Node.js.