chargebee
Version:
A library for integrating with Chargebee.
120 lines (117 loc) • 3.86 kB
TypeScript
///<reference path='./../core.d.ts'/>
///<reference path='./../index.d.ts'/>
declare module 'chargebee' {
export interface QuotedSubscription {
id: string;
plan_id: string;
plan_quantity: number;
plan_unit_price?: number;
setup_fee?: number;
billing_period?: number;
billing_period_unit?: 'day' | 'week' | 'month' | 'year';
start_date?: number;
trial_end?: number;
remaining_billing_cycles?: number;
po_number?: string;
auto_collection?: AutoCollectionEnum;
plan_quantity_in_decimal?: string;
plan_unit_price_in_decimal?: string;
changes_scheduled_at?: number;
change_option?: 'end_of_term' | 'specific_date' | 'immediately';
contract_term_billing_cycle_on_renewal?: number;
addons?: QuotedSubscription.Addon[];
event_based_addons?: QuotedSubscription.EventBasedAddon[];
coupons?: QuotedSubscription.Coupon[];
subscription_items?: QuotedSubscription.SubscriptionItem[];
item_tiers?: QuotedSubscription.ItemTier[];
quoted_contract_term?: QuotedSubscription.QuotedContractTerm;
}
export namespace QuotedSubscription {
export interface Addon {
id: string;
quantity?: number;
unit_price?: number;
amount?: number;
trial_end?: number;
remaining_billing_cycles?: number;
quantity_in_decimal?: string;
unit_price_in_decimal?: string;
amount_in_decimal?: string;
proration_type?: 'full_term' | 'partial_term' | 'none';
}
export interface EventBasedAddon {
id: string;
quantity: number;
unit_price: number;
service_period_in_days?: number;
on_event:
| 'subscription_creation'
| 'subscription_trial_start'
| 'plan_activation'
| 'subscription_activation'
| 'contract_termination';
charge_once: boolean;
quantity_in_decimal?: string;
unit_price_in_decimal?: string;
}
export interface Coupon {
coupon_id: string;
}
export interface SubscriptionItem {
item_price_id: string;
item_type: 'plan' | 'addon' | 'charge';
quantity?: number;
quantity_in_decimal?: string;
metered_quantity?: string;
last_calculated_at?: number;
unit_price?: number;
unit_price_in_decimal?: string;
amount?: number;
current_term_start?: number;
current_term_end?: number;
next_billing_at?: number;
amount_in_decimal?: string;
billing_period?: number;
billing_period_unit?: 'day' | 'week' | 'month' | 'year';
free_quantity?: number;
free_quantity_in_decimal?: string;
trial_end?: number;
billing_cycles?: number;
service_period_days?: number;
charge_on_event?:
| 'subscription_creation'
| 'subscription_trial_start'
| 'plan_activation'
| 'subscription_activation'
| 'contract_termination';
charge_once?: boolean;
charge_on_option?: 'immediately' | 'on_event';
proration_type?: 'full_term' | 'partial_term' | 'none';
usage_accumulation_reset_frequency?:
| 'never'
| 'subscription_billing_frequency';
}
export interface ItemTier {
item_price_id: string;
starting_unit: number;
ending_unit?: number;
price: number;
starting_unit_in_decimal?: string;
ending_unit_in_decimal?: string;
price_in_decimal?: string;
pricing_type?: 'per_unit' | 'flat_fee' | 'package';
package_size?: number;
index: number;
}
export interface QuotedContractTerm {
contract_start: number;
contract_end: number;
billing_cycle: number;
action_at_term_end: 'renew' | 'evergreen' | 'cancel' | 'renew_once';
total_contract_value: number;
cancellation_cutoff_period?: number;
}
// REQUEST PARAMS
//---------------
}
}