UNPKG

@maxio-com/advanced-billing-sdk

Version:

Ultimate billing and pricing flexibility for B2B SaaS. Maxio integrates directly into your product, so you can seamlessly manage your product catalog, bill customers, and collect payments.

77 lines (73 loc) 3.18 kB
/** * AdvancedBilling * * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { bigint, boolean, expandoObject, nullable, number, optional, Schema, string, } from '../schema'; import { ExpirationIntervalUnit, expirationIntervalUnitSchema, } from './expirationIntervalUnit'; import { IntervalUnit, intervalUnitSchema } from './intervalUnit'; export interface CreateProductPricePoint { /** The product price point name */ name: string; /** The product price point API handle */ handle?: string; /** The product price point price, in integer cents */ priceInCents: bigint; /** The numerical interval. i.e. an interval of ‘30’ coupled with an interval_unit of day would mean this product price point would renew every 30 days */ interval: number; /** A string representing the interval unit for this product price point, either month or day */ intervalUnit: IntervalUnit; /** The product price point trial price, in integer cents */ trialPriceInCents?: bigint; /** The numerical trial interval. i.e. an interval of ‘30’ coupled with a trial_interval_unit of day would mean this product price point trial would last 30 days. */ trialInterval?: number; /** A string representing the trial interval unit for this product price point, either month or day */ trialIntervalUnit?: IntervalUnit; trialType?: string; /** The product price point initial charge, in integer cents */ initialChargeInCents?: bigint; initialChargeAfterTrial?: boolean; /** The numerical expiration interval. i.e. an expiration_interval of ‘30’ coupled with an expiration_interval_unit of day would mean this product price point would expire after 30 days. */ expirationInterval?: number; /** A string representing the expiration interval unit for this product price point, either month, day or never */ expirationIntervalUnit?: ExpirationIntervalUnit | null; /** Whether or not to use the site's exchange rate or define your own pricing when your site has multiple currencies defined. */ useSiteExchangeRate?: boolean; [key: string]: unknown; } export const createProductPricePointSchema: Schema<CreateProductPricePoint> = expandoObject( { name: ['name', string()], handle: ['handle', optional(string())], priceInCents: ['price_in_cents', bigint()], interval: ['interval', number()], intervalUnit: ['interval_unit', intervalUnitSchema], trialPriceInCents: ['trial_price_in_cents', optional(bigint())], trialInterval: ['trial_interval', optional(number())], trialIntervalUnit: ['trial_interval_unit', optional(intervalUnitSchema)], trialType: ['trial_type', optional(string())], initialChargeInCents: ['initial_charge_in_cents', optional(bigint())], initialChargeAfterTrial: [ 'initial_charge_after_trial', optional(boolean()), ], expirationInterval: ['expiration_interval', optional(number())], expirationIntervalUnit: [ 'expiration_interval_unit', optional(nullable(expirationIntervalUnitSchema)), ], useSiteExchangeRate: ['use_site_exchange_rate', optional(boolean())], } );