Initialization
import { coss } from '@coss';coss.payments.init({apiKey: process.env.COSS_KEY,environment: 'production', // or 'sandbox'});
Products
// Create a productawait coss.payments.products.create({name: 'Pro Plan',description: 'Access to premium features',});// List productsawait coss.payments.products.list();// Retrieve a productawait coss.payments.products.retrieve('prod_abc123');// Update a productawait coss.payments.products.update('prod_abc123', {description: 'Updated description',});// Delete a productawait coss.payments.products.delete('prod_abc123');
Prices
// Create a price for a productawait coss.payments.prices.create({productId: 'prod_abc123',unitAmount: 2000, // in centscurrency: 'usd',recurring: { interval: 'month' },});// List pricesawait coss.payments.prices.list();
Customers
// Create a customerawait coss.payments.customers.create({email: 'jane@example.com',name: 'Jane Doe',});// Retrieve a customerawait coss.payments.customers.retrieve('cus_abc123');
Subscriptions
// Create a subscriptionawait coss.payments.subscriptions.create({customerId: 'cus_abc123',priceId: 'price_abc123',});// Retrieve a subscriptionawait coss.payments.subscriptions.retrieve('sub_abc123');// Update a subscription (e.g., upgrade plan)await coss.payments.subscriptions.update('sub_abc123', {priceId: 'price_def456',});// Cancel a subscriptionawait coss.payments.subscriptions.cancel('sub_abc123');
Invoices
// Create an invoice manuallyawait coss.payments.invoices.create({customerId: 'cus_abc123',items: [{ priceId: 'price_abc123', quantity: 1 },],});// Finalize and send the invoiceawait coss.payments.invoices.finalize('inv_abc123');// Pay an invoiceawait coss.payments.invoices.pay('inv_abc123');
Webhooks
// Webhook eventscoss.payments.webhooks.on('invoice.paid', (event) => {console.log('Invoice paid:', event.data);});coss.payments.webhooks.on('subscription.created', (event) => {console.log('Subscription created:', event.data);});
Utilities
// Validate webhook signatureconst isValid = coss.payments.utils.verifySignature({payload: req.body,signature: req.headers['coss-payments-signature'],secret: 'whsec_payments_123',});