paykit

Customers

Sync your app's billing identity into PayKit and keep provider mappings internal.

PayKit customers represent your application's billing identity, not a provider-native object.

Sync a customer

const customer = await paykit.customer.sync({
  referenceId: "user_123",
  email: "jane@example.com",
  name: "Jane Doe",
  metadata: { company: "Acme" },
});

referenceId is the stable link to your app's user or account record.

Read or delete a customer

const customer = await paykit.customer.get({
  referenceId: "user_123",
});

await paykit.customer.delete({
  referenceId: "user_123",
});

Delete is a PayKit-side soft delete or anonymize step. It does not promise provider-side deletion.

Scoped usage

const billing = paykit.asCustomer({
  referenceId: "user_123",
  email: "jane@example.com",
  name: "Jane Doe",
});

await billing.checkout.create({
  providerId: "stripe",
  amount: 2900,
  description: "Starter plan",
  successURL: "https://app.example.com/billing/success",
});

Scoped APIs remove repeated customerId plumbing in common flows.