Skip to main content
Read-side access to who you bill and what they owe. List methods return a PagePromise you can await for one page or for await to auto-paginate.
Credits are first-class: every customer can hold one or more credit wallets alongside their dollar balances. listCreditAccounts returns them.

unitpay.customers.get

Fetch one customer by ID. Returns Promise<Customer> (id, email, name, status, type, salesMotion, address fields, metadata, …).
const customer = await unitpay.customers.get('cus_123');

unitpay.customers.list

List customers. Takes optional query params (Record<string, unknown>); returns PagePromise<Customer>.
// One page
const { data, hasMore, nextCursor } = await unitpay.customers.list();

// Auto-paginate every customer
for await (const customer of unitpay.customers.list()) {
  console.log(customer.id);
}

unitpay.customers.listInvoices

Invoices for a customer. Returns PagePromise<Invoice> (totalAmount, amountDue, amountPaid, currency, status, dueDate, paidAt, …).
for await (const invoice of unitpay.customers.listInvoices('cus_123')) {
  console.log(invoice.invoiceNumber, invoice.status, invoice.amountDue);
}

unitpay.customers.listPaymentMethods

Payment methods on file. Returns PagePromise<PaymentMethod> (type, status, isDefault, and card: { brand, last4, expMonth, expYear }).
const { data } = await unitpay.customers.listPaymentMethods('cus_123');

unitpay.customers.listCreditAccounts

The customer’s credit wallets. Returns PagePromise<CreditAccount> — one per credit currency, with balance, available, reserved, and currencyId.
for await (const wallet of unitpay.customers.listCreditAccounts('cus_123')) {
  console.log(wallet.currencyId, wallet.available, 'of', wallet.balance);
}

unitpay.subscriptions.list

List subscriptions. Filter with query params{ customerId, status }. This is also how you list one customer’s subscriptions (there’s no customer-nested route). Returns PagePromise<Subscription> (planId, status, billingInterval, collectionMethod, currentBillingPeriodEnd, …).
const { data } = await unitpay.subscriptions.list({
  customerId: 'cus_123',
  status: 'active',
});

unitpay.subscriptions.cancel

Cancel a subscription by ID. Optional params (Record<string, unknown>) controls cancellation behavior (e.g. immediate vs. at period end). Returns Promise<Subscription>.
const sub = await unitpay.subscriptions.cancel('sub_123');

unitpay.subscriptions.uncancel

Reverse a pending cancellation before it takes effect. Returns Promise<Subscription>.
const sub = await unitpay.subscriptions.uncancel('sub_123');

See also

Usage & ingestion

Track billable events.

Portal sessions

Mint the token for customer-facing UI.