@pawpayments/sdk package is the official Node.js SDK for the Native V2 API. It covers the same REST resources as the Python SDK, uses only built-in fetch at runtime (no HTTP dependencies), ships ES modules and CommonJS builds plus .d.ts, and exposes webhook verification helpers aligned with other official integrations.
Install from npm
The published npm package.
View source on GitHub
Source, releases, and issue tracker.
| Property | Value |
|---|---|
| Package name | @pawpayments/sdk |
| npm | @pawpayments/sdk |
| GitHub | pawpayments/node-sdk |
| Minimum Node.js | 18 |
| Runtime dependencies | None (fetch required) |
Installation
Quick start
PawPaymentsOptions also accepts baseUrl (default https://api.pawpayments.com), timeoutMs, and a custom fetch implementation for constrained runtimes.
Resources
Successful calls return unwrappedresult payloads (or list envelopes where the API paginates). Failures throw PawPaymentsApiError with code, httpStatus, message, and optional details.
| Attribute | Methods |
|---|---|
paw.assets | list() |
paw.rates | get({ base, assets }) |
paw.balance | get() |
paw.invoices | create(), get(id), list(), notify(id) |
paw.payouts | create(params, { uniqId }), get(id), list(), batch(items, { uniqId }) |
paw.ledger | list({ ... }) |
paw.notifications | list(), test(url?) |
paw.permanent | create(), get(id), list(), deactivate(id) |
payouts.create and payouts.batch accept optional uniqId for idempotency (UUIDv4). If omitted, the SDK uses crypto.randomUUID(); duplicates within two hours yield HTTP 409.
Webhook verification
Validate against the raw body buffer orUint8Array your framework exposes — parsing JSON first and re-stringifying will change bytes and fail HMAC checks.
permanent_address_id should return 200 OK without duplicating checkout-specific side effects, consistent with the PHP plugins.

