Documentation Index
Fetch the complete documentation index at: https://docs.usepaykit.dev/llms.txt
Use this file to discover all available pages before exploring further.
npm install @paykit-sdk/polar
Setup
Environment variables
Direct config
import { PayKit } from '@paykit-sdk/core';
import { polar } from '@paykit-sdk/polar';
export const paykit = new PayKit(polar());
Required env vars:POLAR_ACCESS_TOKEN=polar_oat_...
POLAR_WEBHOOK_SECRET=your-webhook-secret
import { PayKit } from '@paykit-sdk/core';
import { createPolar } from '@paykit-sdk/polar';
export const paykit = new PayKit(
createPolar({ accessToken: 'polar_oat_...', isSandbox: true }),
);
Webhooks
Enable these events in your Polar dashboard:
order.paid
order.created
customer.created
customer.updated
customer.deleted
subscription.created
subscription.updated
subscription.revoked
refund.created
const webhook = paykit.webhooks
.setup({ webhookSecret: process.env.POLAR_WEBHOOK_SECRET! })
.on('payment.created', async event => { /* ... */ })
.on('subscription.created', async event => { /* ... */ })
.on('customer.created', async event => { /* ... */ })
.on('refund.created', async event => { /* ... */ });
await webhook.handle({
body: rawBody,
headersAsObject: Object.fromEntries(request.headers),
fullUrl: request.url,
});
Raw Polar events
paykit.webhooks
.setup({ webhookSecret: process.env.POLAR_WEBHOOK_SECRET! })
.on('polar.order.paid', async event => {
// typed against Polar's API types
})
.on('polar.subscription.revoked', async event => { /* ... */ });