@asentum/pay
v0.1.0
Published
TypeScript SDK for Asentum Pay. Accept on-chain payments with a few lines of code.
Downloads
177
Maintainers
Readme
@asentum/pay
TypeScript SDK for Asentum Pay. Accept on-chain payments with a few lines of code. Works in Node, browsers, Bun, Deno, Cloudflare Workers.
Install
npm install @asentum/payQuick start
import { Asentum } from '@asentum/pay';
const pay = new Asentum('sk_test_...');
// One-shot charge
const charge = await pay.charges.create({
amount: '50.00',
currency: 'aUSD',
description: 'Order #1234',
});
// Hosted checkout
const session = await pay.checkout.sessions.create({
lineItems: [{ name: 'Pro plan', amount: '20.00', currency: 'aUSD' }],
successUrl: 'https://myshop.com/done',
cancelUrl: 'https://myshop.com/cancel',
});
// Redirect the user to session.urlResources
| Resource | Methods |
| - | - |
| pay.charges | create, retrieve, list |
| pay.customers | create, retrieve, update, list |
| pay.checkout.sessions | create, retrieve, list |
| pay.webhooks | create, retrieve, delete, list, verify |
Subscriptions (pay.subscriptions) ship in v0.2 alongside the protocol cron layer (ARC-21).
Verifying webhooks
import { Asentum } from '@asentum/pay';
const pay = new Asentum(process.env.ASENTUM_API_KEY);
// In your webhook handler:
const event = pay.webhooks.verify({
payload: rawBody,
signatureHeader: req.headers['x-asentum-signature'],
secret: process.env.ASENTUM_WEBHOOK_SECRET,
});
switch (event.type) {
case 'charge.succeeded': /* ... */ break;
case 'checkout.session.completed': /* ... */ break;
}Errors
All API failures throw a PayApiError with status, code, and requestId fields.
import { PayApiError } from '@asentum/pay';
try {
await pay.charges.create({ amount: 'nope', currency: 'aUSD' });
} catch (err) {
if (err instanceof PayApiError) {
console.error(`${err.status} ${err.code}: ${err.message}`);
}
}Status
This is a v0 release covering one-shot payments. Subscriptions, customer portal, and the broader product surface land in v0.2.
Full docs at pay.asentum.com.
