payrix-node-sdk
v1.0.1
Published
Simple Node.js SDK for Payrix payment API
Readme
payrix-node-sdk
A simple Node.js library for Payrix — create payments and verify webhooks.
Installation
npm install payrix-node-sdk
# or
pnpm add payrix-node-sdkQuick Start
import { PayrixClient } from "payrix-node-sdk";
const payrix = new PayrixClient({
apiKey: "ak_xxx",
apiSecret: "sk_xxx",
projectId: "your-project-id",
webhookSecret: "whsec_xxx", // optional, for verifyWebhook
});
// Create a payment
const { checkoutUrl, invoiceId } = await payrix.createPayment({
amount: 100,
currencyCode: "USD",
successRedirectUrl: "https://example.com/payment/success",
cancelRedirectUrl: "https://example.com/payment/failed",
callbackUrl: "https://example.com/api/webhook",
orderId: "order-123",
description: "Payment for goods",
});
// Redirect customer to checkout
// res.redirect(checkoutUrl);API
new PayrixClient(config)
| Parameter | Type | Required | Description | |----------------|--------|----------|--------------------------------------| | apiKey | string | yes | API Key from Payrix dashboard | | apiSecret | string | yes | API Secret from Payrix dashboard | | projectId | string | yes | Project ID from Payrix dashboard | | baseUrl | string | no | Base API URL (default: payrix.fi) | | webhookSecret | string | no | Secret for webhook verification |
payrix.createPayment(params)
Creates an invoice and returns the checkout URL.
| Parameter | Type | Required | Description | |--------------------|--------|----------|--------------------------------------------------| | amount | number | yes | Amount (e.g. 100.50) | | successRedirectUrl | string | yes | Where to redirect after successful payment | | cancelRedirectUrl | string | yes | Where to redirect on cancel/error | | callbackUrl | string | no | Server-to-server webhook URL | | currencyCode | string | no | Currency (default: "USD") | | orderId | string | no | Order ID for tracking | | description | string | no | Invoice description |
payrix.verifyWebhook(payload, signature)
Verifies the webhook signature from Payrix. Uses the x-webhook-signature header.
// Express
app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
const signature = req.headers["x-webhook-signature"];
if (!payrix.verifyWebhook(req.body, signature)) {
return res.status(403).send("Invalid signature");
}
// handle event
res.status(200).send("OK");
});License
MIT
