跳到主要内容

std/build/billing

std/build/billing

Type Aliases

BillingCatalogue

type BillingCatalogue = Schema.Schema.Type<typeof BillingCatalogueSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:150


BillingCatalogueInterval

type BillingCatalogueInterval = Schema.Schema.Type<typeof BillingCatalogueIntervalSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:12


BillingCataloguePlan

type BillingCataloguePlan = Schema.Schema.Type<typeof BillingCataloguePlanSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:83


BillingCataloguePrice

type BillingCataloguePrice = Schema.Schema.Type<typeof BillingCataloguePriceSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:71


BillingCataloguePriceModel

type BillingCataloguePriceModel = Schema.Schema.Type<typeof BillingCataloguePriceModelSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:14


BillingCatalogueProduct

type BillingCatalogueProduct = Schema.Schema.Type<typeof BillingCatalogueProductSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:115


BillingCatalogueProviderPriceIds

type BillingCatalogueProviderPriceIds = Schema.Schema.Type<typeof BillingCatalogueProviderPriceIdsSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:49


BillingCatalogueTier

type BillingCatalogueTier = Schema.Schema.Type<typeof BillingCatalogueTierSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:42


BillingProviderEnvironment

type BillingProviderEnvironment = Schema.Schema.Type<typeof BillingProviderEnvironmentSchema>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:44

Variables

AI_METERED_PRICES

const AI_METERED_PRICES: readonly [{
  checkout: true;
  description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
  id: "ai-provider-cost-micros-monthly";
  interval: "month";
  meterId: "bolt_ai_cost_sgd_micros_v1";
  model: "metered";
  name: "AI usage";
  stripePriceIds: {
     production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
     sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
  };
  unitAmountDecimal: "0.0001";
}];

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:155


AI_USAGE_METER_ID

const AI_USAGE_METER_ID: "bolt_ai_cost_sgd_micros_v1" = "bolt_ai_cost_sgd_micros_v1";

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:15


BILLING_CURRENCY

const BILLING_CURRENCY: "SGD";

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:2


BillingCatalogueIntervalSchema

const BillingCatalogueIntervalSchema: Schema.Literals<readonly ["month", "year"]>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:11

The Stripe catalogue surfaces (plans, prices, products) are declared here without a transport dependency, with the shape owned once by these schemas — a host that pushes the catalogue to Stripe decodes from the same source of truth the type is derived from.


BillingCataloguePlanSchema

const BillingCataloguePlanSchema: Schema.Struct<{
  allowPromotionCodes: Schema.Boolean;
  id: Schema.String;
  trialDays: Schema.Number;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:78

A plan is the base subscription: a flat fee plus the metered prices in the same product. The paywall checkout subscribes the plan plus every metered price as separate subscription items, so what a plan names is the trial, not seat licensing. There is no seat model: the base fee is stated once per workspace, whatever the headcount.


BillingCataloguePriceModelSchema

const BillingCataloguePriceModelSchema: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:13


BillingCataloguePriceSchema

const BillingCataloguePriceSchema: Schema.Struct<{
  amount: Schema.optional<Schema.String>;
  checkout: Schema.Boolean;
  description: Schema.String;
  dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
  id: Schema.String;
  interval: Schema.Literals<readonly ["month", "year"]>;
  meterId: Schema.optional<Schema.String>;
  model: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;
  name: Schema.String;
  stripePriceIds: Schema.Struct<{
     production: Schema.NullishOr<Schema.String>;
     sandbox: Schema.NullishOr<Schema.String>;
  }>;
  tiers: Schema.optional<Schema.$Array<Schema.Struct<{
     amount: Schema.String;
     upTo: Schema.Union<readonly [Schema.Number, Schema.Literal<"inf">]>;
  }>>>;
  tiersMode: Schema.optional<Schema.Literals<readonly ["graduated", "volume"]>>;
  unitAmountDecimal: Schema.optional<Schema.String>;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:50


BillingCatalogueProductSchema

const BillingCatalogueProductSchema: Schema.Struct<{
  description: Schema.String;
  id: Schema.String;
  name: Schema.String;
  plans: Schema.$Array<Schema.Struct<{
     allowPromotionCodes: Schema.Boolean;
     id: Schema.String;
     trialDays: Schema.Number;
  }>>;
  prices: Schema.$Array<Schema.Struct<{
     amount: Schema.optional<Schema.String>;
     checkout: Schema.Boolean;
     description: Schema.String;
     dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
     id: Schema.String;
     interval: Schema.Literals<readonly ["month", "year"]>;
     meterId: Schema.optional<Schema.String>;
     model: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;
     name: Schema.String;
     stripePriceIds: Schema.Struct<{
        production: Schema.NullishOr<Schema.String>;
        sandbox: Schema.NullishOr<Schema.String>;
     }>;
     tiers: Schema.optional<Schema.$Array<Schema.Struct<{
        amount: Schema.String;
        upTo: Schema.Union<readonly ...>;
     }>>>;
     tiersMode: Schema.optional<Schema.Literals<readonly ["graduated", "volume"]>>;
     unitAmountDecimal: Schema.optional<Schema.String>;
  }>>;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:84


BillingCatalogueProviderPriceIdsSchema

const BillingCatalogueProviderPriceIdsSchema: Schema.Struct<{
  production: Schema.NullishOr<Schema.String>;
  sandbox: Schema.NullishOr<Schema.String>;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:45


BillingCatalogueSchema

const BillingCatalogueSchema: Schema.Struct<{
  currency: Schema.Literal<"SGD">;
  products: Schema.$Array<Schema.Struct<{
     description: Schema.String;
     id: Schema.String;
     name: Schema.String;
     plans: Schema.$Array<Schema.Struct<{
        allowPromotionCodes: Schema.Boolean;
        id: Schema.String;
        trialDays: Schema.Number;
     }>>;
     prices: Schema.$Array<Schema.Struct<{
        amount: Schema.optional<Schema.String>;
        checkout: Schema.Boolean;
        description: Schema.String;
        dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
        id: Schema.String;
        interval: Schema.Literals<readonly [..., ...]>;
        meterId: Schema.optional<Schema.String>;
        model: Schema.Literals<readonly [..., ..., ...]>;
        name: Schema.String;
        stripePriceIds: Schema.Struct<{
           production: Schema.NullishOr<...>;
           sandbox: Schema.NullishOr<...>;
        }>;
        tiers: Schema.optional<Schema.$Array<Schema.Struct<...>>>;
        tiersMode: Schema.optional<Schema.Literals<readonly ...>>;
        unitAmountDecimal: Schema.optional<Schema.String>;
     }>>;
  }>>;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:116


BillingCatalogueTierSchema

const BillingCatalogueTierSchema: Schema.Struct<{
  amount: Schema.String;
  upTo: Schema.Union<readonly [Schema.Number, Schema.Literal<"inf">]>;
}>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:38


BillingProviderEnvironmentSchema

const BillingProviderEnvironmentSchema: Schema.Literals<readonly ["sandbox", "production"]>;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:43


CURRENCY_MINOR_UNITS_PER_MAJOR_UNIT

const CURRENCY_MINOR_UNITS_PER_MAJOR_UNIT: 100 = 100;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:4


DEFAULT_BILLING_TRIAL_DAYS

const DEFAULT_BILLING_TRIAL_DAYS: 30 = 30;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:3


LATEST_CATALOGUE

const LATEST_CATALOGUE: object;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:235

Type Declaration

currency
readonly currency: "SGD";

products
readonly products: readonly [{
  description: "A flat base fee per workspace, plus separately metered compute, disc, files, and AI usage.";
  id: "platform";
  name: "Norbital Platform";
  plans: readonly [{
     allowPromotionCodes: true;
     id: "platform";
     trialDays: 30;
  }];
  prices: readonly [{
     checkout: true;
     description: "SGD 0.0005 per worker-thread ELU active second. Memory infrastructure cost is included in the price; memory is not separately metered or hard-walled per worker. Stripe records milliseconds.";
     id: "compute-second-monthly";
     interval: "month";
     meterId: "bolt_compute_seconds_v1";
     model: "metered";
     name: "Compute usage";
     stripePriceIds: {
        production: "price_1U5gPrLlQVSVzCBMefEfyUnM";
        sandbox: "price_1U5gO4LvWjJB44nUCUzkwD61";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "SGD 3.00 per GB-month for tenant database storage, measured in GB-hours.";
     id: "disc-gb-hour-monthly";
     interval: "month";
     meterId: "bolt_disc_gb_hours_v1";
     model: "metered";
     name: "Disc usage";
     stripePriceIds: {
        production: "price_1U5gPrLlQVSVzCBM3ctzic6b";
        sandbox: "price_1U5gOQLvWjJB44nUkHqcqjGn";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "SGD 0.25 per GB-month for tenant object storage, measured in GB-hours.";
     id: "files-gb-hour-monthly";
     interval: "month";
     meterId: "bolt_files_gb_hours_v1";
     model: "metered";
     name: "Files usage";
     stripePriceIds: {
        production: "price_1U5gPsLlQVSVzCBMHKfK5Ker";
        sandbox: "price_1U5gORLvWjJB44nUzycz1ITJ";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
     id: "ai-provider-cost-micros-monthly";
     interval: "month";
     meterId: "bolt_ai_cost_sgd_micros_v1";
     model: "metered";
     name: "AI usage";
     stripePriceIds: {
        production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
        sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
     };
     unitAmountDecimal: "0.0001";
  }];
}];

LATEST_CATALOGUE_PLANS

const LATEST_CATALOGUE_PLANS: readonly BillingCataloguePlan[];

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:234


LATEST_CATALOGUE_PRICES

const LATEST_CATALOGUE_PRICES: readonly BillingCataloguePrice[];

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:232


LATEST_CATALOGUE_PRODUCTS

const LATEST_CATALOGUE_PRODUCTS: readonly [{
  description: "A flat base fee per workspace, plus separately metered compute, disc, files, and AI usage.";
  id: "platform";
  name: "Norbital Platform";
  plans: readonly [{
     allowPromotionCodes: true;
     id: "platform";
     trialDays: 30;
  }];
  prices: readonly [{
     checkout: true;
     description: "SGD 0.0005 per worker-thread ELU active second. Memory infrastructure cost is included in the price; memory is not separately metered or hard-walled per worker. Stripe records milliseconds.";
     id: "compute-second-monthly";
     interval: "month";
     meterId: "bolt_compute_seconds_v1";
     model: "metered";
     name: "Compute usage";
     stripePriceIds: {
        production: "price_1U5gPrLlQVSVzCBMefEfyUnM";
        sandbox: "price_1U5gO4LvWjJB44nUCUzkwD61";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "SGD 3.00 per GB-month for tenant database storage, measured in GB-hours.";
     id: "disc-gb-hour-monthly";
     interval: "month";
     meterId: "bolt_disc_gb_hours_v1";
     model: "metered";
     name: "Disc usage";
     stripePriceIds: {
        production: "price_1U5gPrLlQVSVzCBM3ctzic6b";
        sandbox: "price_1U5gOQLvWjJB44nUkHqcqjGn";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "SGD 0.25 per GB-month for tenant object storage, measured in GB-hours.";
     id: "files-gb-hour-monthly";
     interval: "month";
     meterId: "bolt_files_gb_hours_v1";
     model: "metered";
     name: "Files usage";
     stripePriceIds: {
        production: "price_1U5gPsLlQVSVzCBMHKfK5Ker";
        sandbox: "price_1U5gORLvWjJB44nUzycz1ITJ";
     };
     unitAmountDecimal: string;
   }, {
     checkout: true;
     description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
     id: "ai-provider-cost-micros-monthly";
     interval: "month";
     meterId: "bolt_ai_cost_sgd_micros_v1";
     model: "metered";
     name: "AI usage";
     stripePriceIds: {
        production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
        sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
     };
     unitAmountDecimal: "0.0001";
  }];
}];

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:169


PLATFORM_PRODUCT_ID

const PLATFORM_PRODUCT_ID: "platform" = "platform";

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:5


USAGE_METER_IDS

const USAGE_METER_IDS: object;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:16

Type Declaration

ai
readonly ai: "bolt_ai_cost_sgd_micros_v1";

compute
readonly compute: "bolt_compute_seconds_v1";

disc
readonly disc: "bolt_disc_gb_hours_v1";

files
readonly files: "bolt_files_gb_hours_v1";

USAGE_METER_UNITS

const USAGE_METER_UNITS: object;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:22

Type Declaration

ai
readonly ai: "micro-SGD";

compute
readonly compute: "millisecond";

disc
readonly disc: "micro-GB-hour";

files
readonly files: "micro-GB-hour";

Functions

aiProviderCostSgdMicros()

function aiProviderCostSgdMicros(providerCostUsd): number;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:37

What a tenant owes for one turn, in micro-SGD, given what the provider charged for it in USD.

The single conversion for AI spend: the ledger prices an observation with it, the Stripe meter reports the quantity it returns, and the agent panel shows a conversation's total through it. There used to be three — a factored one here that nothing called, and the same literal written out twice more where the meter actually ran — so the published rate and the billed rate could differ with nothing in the code to say which one was the price.

Parameters

Parameter Type
providerCostUsd number

Returns

number


calculateCatalogueMeterCostSgdMicros()

function calculateCatalogueMeterCostSgdMicros(meterId, quantity): number;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:233

Parameters

Parameter Type
meterId string
quantity number

Returns

number


formatBillingAmountFromMinorUnits()

function formatBillingAmountFromMinorUnits(amountMinorUnits, options?): string;

Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:151

Parameters

Parameter Type
amountMinorUnits string | number
options? { maximumFractionDigits?: number; minimumFractionDigits?: number; }
options.maximumFractionDigits? number
options.minimumFractionDigits? number

Returns

string

References

AI_SGD_PER_PROVIDER_USD

Re-exports AI_SGD_PER_PROVIDER_USD


BILLING_ACCESS_TIERS

Re-exports BILLING_ACCESS_TIERS


BILLING_RATE_CARD_VERSION

Re-exports BILLING_RATE_CARD_VERSION


BillingAccessTier

Re-exports BillingAccessTier


COMPUTE_SGD_PER_SECOND

Re-exports COMPUTE_SGD_PER_SECOND


DISC_SGD_PER_GB_MONTH

Re-exports DISC_SGD_PER_GB_MONTH


EXTERNAL_CLOUD_RATE_CARD_USD

Re-exports EXTERNAL_CLOUD_RATE_CARD_USD


FILES_SGD_PER_GB_MONTH

Re-exports FILES_SGD_PER_GB_MONTH


HOURS_PER_BILLING_MONTH

Re-exports HOURS_PER_BILLING_MONTH


LOCAL_CLOUD_RATE_CARD

Re-exports LOCAL_CLOUD_RATE_CARD