Billing
API Reference
Billing methods available in the Buildspace SDK.
Server SDK
import Buildspace from "@buildspacestudio/sdk";
const bs = new Buildspace(process.env.BUILDSPACE_SECRET_KEY!);bs.billing.getStatus()returns{ enabled, mode, status, testMode }bs.billing.listProducts()returns{ products }bs.billing.listPrices()returns{ prices }bs.billing.createCheckout({ priceId?, lookupKey?, successUrl, cancelUrl, quantity?, metadata?, checkoutRequestId?, userId?, appUserId? })returns{ id?, stripe_checkout_session_id, url }bs.billing.createPortalSession({ returnUrl, userId?, appUserId? })returns{ url }bs.billing.getSubscription({ userId?, appUserId? })returns{ subscription }bs.billing.getEntitlements({ userId?, appUserId? })returns{ active, subscription }
Use userId for Buildspace-authenticated users and appUserId when your app manages its own auth.
Client SDK
import { createClient } from "@buildspacestudio/sdk/client";
const bs = createClient(process.env.NEXT_PUBLIC_BUILDSPACE_PUBLISHABLE_KEY!);bs.billing.getStatus()returns{ enabled, mode, status, testMode }bs.billing.listProducts()returns{ products }bs.billing.listPrices()returns{ prices }bs.billing.redirectToCheckout({ priceId?, lookupKey?, successUrl, cancelUrl, quantity?, metadata?, checkoutRequestId? })returnsPromise<void>bs.billing.redirectToPortal({ returnUrl })returnsPromise<void>bs.billing.manageSubscription({ returnUrl })returnsPromise<void>bs.billing.getSubscription()returns{ subscription }bs.billing.getEntitlements()returns{ active, subscription }
Client billing calls use the signed-in user session. They do not accept explicit userId or appUserId.