chargebee
Version:
A library for integrating with Chargebee.
1,178 lines • 66.7 kB
JavaScript
// Generated Zod schemas: Estimate
// Actions: createSubscription, createSubItemEstimate, createSubForCustomerEstimate, createSubItemForCustomerEstimate, updateSubscription, updateSubscriptionForItems, renewalEstimate, advanceInvoiceEstimate, regenerateInvoiceEstimate, upcomingInvoicesEstimate, changeTermEnd, cancelSubscription, cancelSubscriptionForItems, pauseSubscription, resumeSubscription, giftSubscription, giftSubscriptionForItems, createInvoice, createInvoiceForItems, paymentSchedules
// Do not edit manually – regenerate via sdk-generator
import { z } from 'zod';
//Estimate.createSubscription
const CreateSubscriptionEstimateSubscriptionSchema = z.object({
id: z.string().max(50).optional(),
plan_id: z.string().max(100),
plan_quantity: z.number().int().min(1).optional(),
plan_quantity_in_decimal: z.string().max(33).optional(),
plan_unit_price: z.number().int().min(0).optional(),
plan_unit_price_in_decimal: z.string().max(39).optional(),
setup_fee: z.number().int().min(0).optional(),
trial_end: z.number().int().optional(),
start_date: z.number().int().optional(),
coupon: z.string().max(100).optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
contract_term_billing_cycle_on_renewal: z
.number()
.int()
.min(1)
.max(100)
.optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const CreateSubscriptionEstimateBillingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubscriptionEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubscriptionEstimateCustomerSchema = z.object({
vat_number: z.string().max(20).optional(),
vat_number_prefix: z.string().max(10).optional(),
registered_for_gst: z.boolean().optional(),
taxability: z.enum(['taxable', 'exempt']).optional(),
entity_code: z
.enum([
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'p',
'q',
'r',
'med1',
'med2',
])
.optional(),
exempt_number: z.string().max(100).optional(),
exemption_details: z.array(z.string().optional()).optional(),
customer_type: z
.enum(['residential', 'business', 'senior_citizen', 'industrial'])
.optional(),
});
const CreateSubscriptionEstimateContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateSubscriptionEstimateAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
});
const CreateSubscriptionEstimateEventBasedAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
service_period_in_days: z
.array(z.number().int().min(1).max(4000).optional())
.optional(),
on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().default(true).optional()).optional(),
charge_on: z.array(z.enum(['immediately', 'on_event']).optional()).optional(),
});
const CreateSubscriptionEstimateTaxProvidersFieldsSchema = z.object({
provider_name: z.array(z.string().max(50).optional()).optional(),
field_id: z.array(z.string().max(50).optional()).optional(),
field_value: z.array(z.string().max(50).optional()).optional(),
});
const CreateSubscriptionEstimateBodySchema = z.looseObject({
billing_cycles: z.number().int().min(0).optional(),
mandatory_addons_to_remove: z
.array(z.string().max(100).optional())
.optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
invoice_immediately: z.boolean().optional(),
invoice_date: z.number().int().optional(),
client_profile_id: z.string().max(50).optional(),
subscription: CreateSubscriptionEstimateSubscriptionSchema.optional(),
billing_address: CreateSubscriptionEstimateBillingAddressSchema.optional(),
shipping_address: CreateSubscriptionEstimateShippingAddressSchema.optional(),
customer: CreateSubscriptionEstimateCustomerSchema.optional(),
contract_term: CreateSubscriptionEstimateContractTermSchema.optional(),
addons: CreateSubscriptionEstimateAddonsSchema.optional(),
event_based_addons: CreateSubscriptionEstimateEventBasedAddonsSchema.optional(),
tax_providers_fields: CreateSubscriptionEstimateTaxProvidersFieldsSchema.optional(),
});
export { CreateSubscriptionEstimateBodySchema };
//Estimate.createSubItemEstimate
const CreateSubItemEstimateEstimateSubscriptionSchema = z.object({
id: z.string().max(50).optional(),
trial_end: z.number().int().optional(),
setup_fee: z.number().int().min(0).optional(),
start_date: z.number().int().optional(),
coupon: z.string().max(100).optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
contract_term_billing_cycle_on_renewal: z
.number()
.int()
.min(1)
.max(100)
.optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const CreateSubItemEstimateEstimateBillingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubItemEstimateEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubItemEstimateEstimateCustomerSchema = z.object({
vat_number: z.string().max(20).optional(),
vat_number_prefix: z.string().max(10).optional(),
registered_for_gst: z.boolean().optional(),
taxability: z.enum(['taxable', 'exempt']).optional(),
entity_code: z
.enum([
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'p',
'q',
'r',
'med1',
'med2',
])
.optional(),
exempt_number: z.string().max(100).optional(),
exemption_details: z.array(z.string().optional()).optional(),
customer_type: z
.enum(['residential', 'business', 'senior_citizen', 'industrial'])
.optional(),
});
const CreateSubItemEstimateEstimateContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
contract_start: z.number().int().optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateSubItemEstimateEstimateSubscriptionItemsSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const CreateSubItemEstimateEstimateDiscountsSchema = z.object({
apply_on: z
.array(z.enum(['invoice_amount', 'specific_item_price']).optional())
.optional(),
duration_type: z.array(z.enum(['one_time', 'forever', 'limited_period']).optional()),
percentage: z.array(z.number().min(0.01).max(100).optional()).optional(),
amount: z.array(z.number().int().min(0).optional()).optional(),
period: z.array(z.number().int().min(1).optional()).optional(),
period_unit: z
.array(z.enum(['day', 'week', 'month', 'year']).optional())
.optional(),
included_in_mrr: z.array(z.boolean().optional()).optional(),
item_price_id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
});
const CreateSubItemEstimateEstimateItemTiersSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
starting_unit: z.array(z.number().int().min(1).optional()).optional(),
ending_unit: z.array(z.number().int().optional()).optional(),
price: z.array(z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
ending_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
price_in_decimal: z.array(z.string().max(39).optional()).optional(),
pricing_type: z
.array(z.enum(['per_unit', 'flat_fee', 'package']).optional())
.optional(),
package_size: z.array(z.number().int().min(1).optional()).optional(),
});
const CreateSubItemEstimateEstimateTaxProvidersFieldsSchema = z.object({
provider_name: z.array(z.string().max(50).optional()).optional(),
field_id: z.array(z.string().max(50).optional()).optional(),
field_value: z.array(z.string().max(50).optional()).optional(),
});
const CreateSubItemEstimateEstimateBodySchema = z.looseObject({
billing_cycles: z.number().int().min(0).optional(),
mandatory_items_to_remove: z.array(z.string().max(100).optional()).optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
invoice_immediately: z.boolean().optional(),
invoice_date: z.number().int().optional(),
client_profile_id: z.string().max(50).optional(),
subscription: CreateSubItemEstimateEstimateSubscriptionSchema.optional(),
billing_address: CreateSubItemEstimateEstimateBillingAddressSchema.optional(),
shipping_address: CreateSubItemEstimateEstimateShippingAddressSchema.optional(),
customer: CreateSubItemEstimateEstimateCustomerSchema.optional(),
contract_term: CreateSubItemEstimateEstimateContractTermSchema.optional(),
subscription_items: CreateSubItemEstimateEstimateSubscriptionItemsSchema.optional(),
discounts: CreateSubItemEstimateEstimateDiscountsSchema.optional(),
item_tiers: CreateSubItemEstimateEstimateItemTiersSchema.optional(),
tax_providers_fields: CreateSubItemEstimateEstimateTaxProvidersFieldsSchema.optional(),
});
export { CreateSubItemEstimateEstimateBodySchema };
//Estimate.createSubForCustomerEstimate
const CreateSubForCustomerEstimateEstimateSubscriptionSchema = z.object({
id: z.string().max(50).optional(),
plan_id: z.string().max(100),
plan_quantity: z.number().int().min(1).optional(),
plan_quantity_in_decimal: z.string().max(33).optional(),
plan_unit_price: z.number().int().min(0).optional(),
plan_unit_price_in_decimal: z.string().max(39).optional(),
setup_fee: z.number().int().min(0).optional(),
trial_end: z.number().int().optional(),
start_date: z.number().int().optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
contract_term_billing_cycle_on_renewal: z
.number()
.int()
.min(1)
.max(100)
.optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const CreateSubForCustomerEstimateEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubForCustomerEstimateEstimateContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateSubForCustomerEstimateEstimateAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
});
const CreateSubForCustomerEstimateEstimateEventBasedAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
service_period_in_days: z
.array(z.number().int().min(1).max(4000).optional())
.optional(),
on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().default(true).optional()).optional(),
charge_on: z.array(z.enum(['immediately', 'on_event']).optional()).optional(),
});
const CreateSubForCustomerEstimateEstimateBodySchema = z.looseObject({
use_existing_balances: z.boolean().default(true).optional(),
invoice_immediately: z.boolean().optional(),
billing_cycles: z.number().int().min(0).optional(),
mandatory_addons_to_remove: z
.array(z.string().max(100).optional())
.optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
invoice_date: z.number().int().optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
subscription: CreateSubForCustomerEstimateEstimateSubscriptionSchema.optional(),
shipping_address: CreateSubForCustomerEstimateEstimateShippingAddressSchema.optional(),
contract_term: CreateSubForCustomerEstimateEstimateContractTermSchema.optional(),
addons: CreateSubForCustomerEstimateEstimateAddonsSchema.optional(),
event_based_addons: CreateSubForCustomerEstimateEstimateEventBasedAddonsSchema.optional(),
});
export { CreateSubForCustomerEstimateEstimateBodySchema };
//Estimate.createSubItemForCustomerEstimate
const CreateSubItemForCustomerEstimateEstimateSubscriptionSchema = z.object({
id: z.string().max(50).optional(),
trial_end: z.number().int().optional(),
setup_fee: z.number().int().min(0).optional(),
start_date: z.number().int().optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
contract_term_billing_cycle_on_renewal: z
.number()
.int()
.min(1)
.max(100)
.optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const CreateSubItemForCustomerEstimateEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubItemForCustomerEstimateEstimateBillingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const CreateSubItemForCustomerEstimateEstimateContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
contract_start: z.number().int().optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateSubItemForCustomerEstimateEstimateBillingOverrideSchema = z.object({
max_excess_payment_usage: z.number().int().min(-1).optional(),
max_refundable_credits_usage: z.number().int().min(-1).optional(),
});
const CreateSubItemForCustomerEstimateEstimateSubscriptionItemsSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
item_type: z
.array(z.enum(['plan', 'addon', 'charge']).optional())
.optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const CreateSubItemForCustomerEstimateEstimateDiscountsSchema = z.object({
apply_on: z
.array(z.enum(['invoice_amount', 'specific_item_price']).optional())
.optional(),
duration_type: z.array(z.enum(['one_time', 'forever', 'limited_period']).optional()),
percentage: z.array(z.number().min(0.01).max(100).optional()).optional(),
amount: z.array(z.number().int().min(0).optional()).optional(),
period: z.array(z.number().int().min(1).optional()).optional(),
period_unit: z
.array(z.enum(['day', 'week', 'month', 'year']).optional())
.optional(),
included_in_mrr: z.array(z.boolean().optional()).optional(),
item_price_id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
});
const CreateSubItemForCustomerEstimateEstimateItemTiersSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
starting_unit: z.array(z.number().int().min(1).optional()).optional(),
ending_unit: z.array(z.number().int().optional()).optional(),
price: z.array(z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
ending_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
price_in_decimal: z.array(z.string().max(39).optional()).optional(),
pricing_type: z
.array(z.enum(['per_unit', 'flat_fee', 'package']).optional())
.optional(),
package_size: z.array(z.number().int().min(1).optional()).optional(),
});
const CreateSubItemForCustomerEstimateEstimateBodySchema = z.looseObject({
use_existing_balances: z.boolean().default(true).optional(),
invoice_immediately: z.boolean().optional(),
billing_cycles: z.number().int().min(0).optional(),
mandatory_items_to_remove: z.array(z.string().max(100).optional()).optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
invoice_date: z.number().int().optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
subscription: CreateSubItemForCustomerEstimateEstimateSubscriptionSchema.optional(),
shipping_address: CreateSubItemForCustomerEstimateEstimateShippingAddressSchema.optional(),
billing_address: CreateSubItemForCustomerEstimateEstimateBillingAddressSchema.optional(),
contract_term: CreateSubItemForCustomerEstimateEstimateContractTermSchema.optional(),
billing_override: CreateSubItemForCustomerEstimateEstimateBillingOverrideSchema.optional(),
subscription_items: CreateSubItemForCustomerEstimateEstimateSubscriptionItemsSchema.optional(),
discounts: CreateSubItemForCustomerEstimateEstimateDiscountsSchema.optional(),
item_tiers: CreateSubItemForCustomerEstimateEstimateItemTiersSchema.optional(),
});
export { CreateSubItemForCustomerEstimateEstimateBodySchema };
//Estimate.updateSubscription
const UpdateSubscriptionEstimateSubscriptionSchema = z.object({
id: z.string().max(50),
plan_id: z.string().max(100).optional(),
plan_quantity: z.number().int().min(1).optional(),
plan_unit_price: z.number().int().min(0).optional(),
setup_fee: z.number().int().min(0).optional(),
plan_quantity_in_decimal: z.string().max(33).optional(),
plan_unit_price_in_decimal: z.string().max(39).optional(),
start_date: z.number().int().optional(),
trial_end: z.number().int().optional(),
coupon: z.string().max(100).optional(),
auto_collection: z.enum(['on', 'off']).optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const UpdateSubscriptionEstimateBillingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const UpdateSubscriptionEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const UpdateSubscriptionEstimateCustomerSchema = z.object({
vat_number: z.string().max(20).optional(),
vat_number_prefix: z.string().max(10).optional(),
registered_for_gst: z.boolean().optional(),
taxability: z.enum(['taxable', 'exempt']).optional(),
});
const UpdateSubscriptionEstimateAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
proration_type: z
.array(z.enum(['full_term', 'partial_term', 'none']).optional())
.optional(),
});
const UpdateSubscriptionEstimateEventBasedAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
service_period_in_days: z
.array(z.number().int().min(1).max(4000).optional())
.optional(),
charge_on: z.array(z.enum(['immediately', 'on_event']).optional()).optional(),
on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().default(true).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
});
const UpdateSubscriptionEstimateBodySchema = z.looseObject({
changes_scheduled_at: z.number().int().optional(),
change_option: z
.enum(['immediately', 'end_of_term', 'specific_date'])
.optional(),
replace_addon_list: z.boolean().default(false).optional(),
mandatory_addons_to_remove: z
.array(z.string().max(100).optional())
.optional(),
invoice_date: z.number().int().optional(),
billing_cycles: z.number().int().min(0).optional(),
terms_to_charge: z.number().int().min(1).optional(),
reactivate_from: z.number().int().optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
replace_coupon_list: z.boolean().default(false).optional(),
prorate: z.boolean().optional(),
end_of_term: z.boolean().default(false).optional(),
force_term_reset: z.boolean().default(false).optional(),
reactivate: z.boolean().optional(),
include_delayed_charges: z.boolean().default(false).optional(),
use_existing_balances: z.boolean().default(true).optional(),
invoice_immediately: z.boolean().optional(),
subscription: UpdateSubscriptionEstimateSubscriptionSchema.optional(),
billing_address: UpdateSubscriptionEstimateBillingAddressSchema.optional(),
shipping_address: UpdateSubscriptionEstimateShippingAddressSchema.optional(),
customer: UpdateSubscriptionEstimateCustomerSchema.optional(),
addons: UpdateSubscriptionEstimateAddonsSchema.optional(),
event_based_addons: UpdateSubscriptionEstimateEventBasedAddonsSchema.optional(),
});
export { UpdateSubscriptionEstimateBodySchema };
//Estimate.updateSubscriptionForItems
const UpdateSubscriptionForItemsEstimateSubscriptionSchema = z.object({
id: z.string().max(50),
setup_fee: z.number().int().min(0).optional(),
start_date: z.number().int().optional(),
trial_end: z.number().int().optional(),
coupon: z.string().max(100).optional(),
auto_collection: z.enum(['on', 'off']).optional(),
offline_payment_method: z
.enum([
'no_preference',
'cash',
'check',
'bank_transfer',
'ach_credit',
'sepa_credit',
'boleto',
'us_automated_bank_transfer',
'eu_automated_bank_transfer',
'uk_automated_bank_transfer',
'jp_automated_bank_transfer',
'mx_automated_bank_transfer',
'custom',
])
.optional(),
free_period: z.number().int().min(1).optional(),
free_period_unit: z.enum(['day', 'week', 'month', 'year']).optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
});
const UpdateSubscriptionForItemsEstimateBillingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const UpdateSubscriptionForItemsEstimateShippingAddressSchema = z.object({
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const UpdateSubscriptionForItemsEstimateCustomerSchema = z.object({
vat_number: z.string().max(20).optional(),
vat_number_prefix: z.string().max(10).optional(),
registered_for_gst: z.boolean().optional(),
taxability: z.enum(['taxable', 'exempt']).optional(),
});
const UpdateSubscriptionForItemsEstimateBillingOverrideSchema = z.object({
max_excess_payment_usage: z.number().int().min(-1).optional(),
max_refundable_credits_usage: z.number().int().min(-1).optional(),
});
const UpdateSubscriptionForItemsEstimateSubscriptionItemsSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
trial_end: z.array(z.number().int().optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()).optional(),
proration_type: z
.array(z.enum(['full_term', 'partial_term', 'none']).optional())
.optional(),
});
const UpdateSubscriptionForItemsEstimateDiscountsSchema = z.object({
apply_on: z
.array(z.enum(['invoice_amount', 'specific_item_price']).optional())
.optional(),
duration_type: z.array(z.enum(['one_time', 'forever', 'limited_period']).optional()),
percentage: z.array(z.number().min(0.01).max(100).optional()).optional(),
amount: z.array(z.number().int().min(0).optional()).optional(),
period: z.array(z.number().int().min(1).optional()).optional(),
period_unit: z
.array(z.enum(['day', 'week', 'month', 'year']).optional())
.optional(),
included_in_mrr: z.array(z.boolean().optional()).optional(),
item_price_id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
operation_type: z.array(z.enum(['add', 'remove']).optional()),
id: z.array(z.string().max(50).optional()).optional(),
});
const UpdateSubscriptionForItemsEstimateItemTiersSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
starting_unit: z.array(z.number().int().min(1).optional()).optional(),
ending_unit: z.array(z.number().int().optional()).optional(),
price: z.array(z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
ending_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
price_in_decimal: z.array(z.string().max(39).optional()).optional(),
pricing_type: z
.array(z.enum(['per_unit', 'flat_fee', 'package']).optional())
.optional(),
package_size: z.array(z.number().int().min(1).optional()).optional(),
});
const UpdateSubscriptionForItemsEstimateBodySchema = z.looseObject({
changes_scheduled_at: z.number().int().optional(),
change_option: z
.enum(['immediately', 'end_of_term', 'specific_date'])
.optional(),
mandatory_items_to_remove: z.array(z.string().max(100).optional()).optional(),
replace_items_list: z.boolean().default(false).optional(),
invoice_date: z.number().int().optional(),
billing_cycles: z.number().int().min(0).optional(),
terms_to_charge: z.number().int().min(1).optional(),
reactivate_from: z.number().int().optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
replace_coupon_list: z.boolean().default(false).optional(),
prorate: z.boolean().optional(),
end_of_term: z.boolean().default(false).optional(),
force_term_reset: z.boolean().default(false).optional(),
reactivate: z.boolean().optional(),
include_delayed_charges: z.boolean().default(false).optional(),
use_existing_balances: z.boolean().default(true).optional(),
invoice_immediately: z.boolean().optional(),
invoice_usages: z.boolean().default(false).optional(),
subscription: UpdateSubscriptionForItemsEstimateSubscriptionSchema.optional(),
billing_address: UpdateSubscriptionForItemsEstimateBillingAddressSchema.optional(),
shipping_address: UpdateSubscriptionForItemsEstimateShippingAddressSchema.optional(),
customer: UpdateSubscriptionForItemsEstimateCustomerSchema.optional(),
billing_override: UpdateSubscriptionForItemsEstimateBillingOverrideSchema.optional(),
subscription_items: UpdateSubscriptionForItemsEstimateSubscriptionItemsSchema.optional(),
discounts: UpdateSubscriptionForItemsEstimateDiscountsSchema.optional(),
item_tiers: UpdateSubscriptionForItemsEstimateItemTiersSchema.optional(),
});
export { UpdateSubscriptionForItemsEstimateBodySchema };
//Estimate.renewalEstimate
const RenewalEstimateEstimateBodySchema = z.looseObject({
include_delayed_charges: z.boolean().default(true).optional(),
use_existing_balances: z.boolean().default(true).optional(),
ignore_scheduled_cancellation: z.boolean().default(false).optional(),
ignore_scheduled_changes: z.boolean().default(false).optional(),
exclude_tax_type: z.enum(['exclusive', 'none']).optional(),
});
export { RenewalEstimateEstimateBodySchema };
//Estimate.advanceInvoiceEstimate
const AdvanceInvoiceEstimateEstimateFixedIntervalScheduleSchema = z.object({
number_of_occurrences: z.number().int().min(1).optional(),
days_before_renewal: z.number().int().min(1).optional(),
end_schedule_on: z
.enum(['after_number_of_intervals', 'specific_date', 'subscription_end'])
.optional(),
end_date: z.number().int().optional(),
});
const AdvanceInvoiceEstimateEstimateSpecificDatesScheduleSchema = z.object({
terms_to_charge: z.array(z.number().int().optional()).optional(),
date: z.array(z.number().int().optional()).optional(),
});
const AdvanceInvoiceEstimateEstimateBodySchema = z.looseObject({
terms_to_charge: z.number().int().min(1).optional(),
invoice_immediately: z.boolean().optional(),
schedule_type: z
.enum(['immediate', 'specific_dates', 'fixed_intervals'])
.optional(),
fixed_interval_schedule: AdvanceInvoiceEstimateEstimateFixedIntervalScheduleSchema.optional(),
specific_dates_schedule: AdvanceInvoiceEstimateEstimateSpecificDatesScheduleSchema.optional(),
});
export { AdvanceInvoiceEstimateEstimateBodySchema };
//Estimate.regenerateInvoiceEstimate
const RegenerateInvoiceEstimateEstimateBodySchema = z.looseObject({
date_from: z.number().int().optional(),
date_to: z.number().int().optional(),
prorate: z.boolean().optional(),
invoice_immediately: z.boolean().optional(),
});
export { RegenerateInvoiceEstimateEstimateBodySchema };
//Estimate.upcomingInvoicesEstimate
const UpcomingInvoicesEstimateEstimateBodySchema = z.looseObject({
include_usage_charges: z.boolean().default(false).optional(),
});
export { UpcomingInvoicesEstimateEstimateBodySchema };
//Estimate.changeTermEnd
const ChangeTermEndEstimateBodySchema = z.looseObject({
term_ends_at: z.number().int(),
prorate: z.boolean().optional(),
invoice_immediately: z.boolean().optional(),
});
export { ChangeTermEndEstimateBodySchema };
//Estimate.cancelSubscription
const CancelSubscriptionEstimateEventBasedAddonsSchema = z.object({
id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
service_period_in_days: z
.array(z.number().int().min(1).max(4000).optional())
.optional(),
});
const CancelSubscriptionEstimateBodySchema = z.looseObject({
cancel_option: z
.enum([
'immediately',
'end_of_term',
'specific_date',
'end_of_billing_term',
])
.optional(),
end_of_term: z.boolean().default(false).optional(),
cancel_at: z.number().int().optional(),
credit_option_for_current_term_charges: z
.enum(['none', 'prorate', 'full'])
.optional(),
unbilled_charges_option: z.enum(['invoice', 'delete']).optional(),
account_receivables_handling: z
.enum(['no_action', 'schedule_payment_collection', 'write_off'])
.optional(),
refundable_credits_handling: z
.enum(['no_action', 'schedule_refund'])
.optional(),
contract_term_cancel_option: z
.enum([
'terminate_immediately',
'end_of_contract_term',
'specific_date',
'end_of_subscription_billing_term',
])
.optional(),
invoice_date: z.number().int().optional(),
cancel_reason_code: z.string().max(100).optional(),
event_based_addons: CancelSubscriptionEstimateEventBasedAddonsSchema.optional(),
});
export { CancelSubscriptionEstimateBodySchema };
//Estimate.cancelSubscriptionForItems
const CancelSubscriptionForItemsEstimateSubscriptionItemsSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
});
const CancelSubscriptionForItemsEstimateBodySchema = z.looseObject({
cancel_option: z
.enum([
'immediately',
'end_of_term',
'specific_date',
'end_of_billing_term',
])
.optional(),
end_of_term: z.boolean().default(false).optional(),
cancel_at: z.number().int().optional(),
credit_option_for_current_term_charges: z
.enum(['none', 'prorate', 'full'])
.optional(),
unbilled_charges_option: z.enum(['invoice', 'delete']).optional(),
account_receivables_handling: z
.enum(['no_action', 'schedule_payment_collection', 'write_off'])
.optional(),
refundable_credits_handling: z
.enum(['no_action', 'schedule_refund'])
.optional(),
contract_term_cancel_option: z
.enum([
'terminate_immediately',
'end_of_contract_term',
'specific_date',
'end_of_subscription_billing_term',
])
.optional(),
invoice_date: z.number().int().optional(),
cancel_reason_code: z.string().max(100).optional(),
subscription_items: CancelSubscriptionForItemsEstimateSubscriptionItemsSchema.optional(),
});
export { CancelSubscriptionForItemsEstimateBodySchema };
//Estimate.pauseSubscription
const PauseSubscriptionEstimateSubscriptionSchema = z.object({
pause_date: z.number().int().optional(),
resume_date: z.number().int().optional(),
skip_billing_cycles: z.number().int().min(1).optional(),
});
const PauseSubscriptionEstimateBodySchema = z.looseObject({
pause_option: z
.enum(['immediately', 'end_of_term', 'specific_date', 'billing_cycles'])
.optional(),
unbilled_charges_handling: z.enum(['no_action', 'invoice']).optional(),
subscription: PauseSubscriptionEstimateSubscriptionSchema.optional(),
});
export { PauseSubscriptionEstimateBodySchema };
//Estimate.resumeSubscription
const ResumeSubscriptionEstimateSubscriptionSchema = z.object({
resume_date: z.number().int().optional(),
});
const ResumeSubscriptionEstimateBodySchema = z.looseObject({
resume_option: z.enum(['immediately', 'specific_date']).optional(),
charges_handling: z
.enum(['invoice_immediately', 'add_to_unbilled_charges'])
.optional(),
subscription: ResumeSubscriptionEstimateSubscriptionSchema.optional(),
});
export { ResumeSubscriptionEstimateBodySchema };
//Estimate.giftSubscription
const GiftSubscriptionEstimateGiftSchema = z.object({
scheduled_at: z.number().int().optional(),
auto_claim: z.boolean().default(false).optional(),
no_expiry: z.boolean().optional(),
claim_expiry_date: z.number().int().optional(),
});
const GiftSubscriptionEstimateGifterSchema = z.object({
customer_id: z.string().max(50),
signature: z.string().max(50),
note: z.string().max(500).optional(),
payment_src_id: z.string().max(40).optional(),
});
const GiftSubscriptionEstimateGiftReceiverSchema = z.object({
customer_id: z.string().max(50),
first_name: z.string().max(150),
last_name: z.string().max(150),
email: z.string().email().max(70),
});
const GiftSubscriptionEstimateAdditionalInformationSchema = z.looseObject({});
const GiftSubscriptionEstimatePaymentIntentSchema = z.object({
id: z.string().max(150).optional(),
gateway_account_id: z.string().max(50).optional(),
gw_token: z.string().max(65000).optional(),
payment_method_type: z
.enum([
'card',
'ideal',
'sofort',
'bancontact',
'google_pay',
'dotpay',
'giropay',
'apple_pay',
'upi',
'netbanking_emandates',
'paypal_express_checkout',
'direct_debit',
'boleto',
'venmo',
'amazon_payments',
'pay_to',
'faster_payments',
'sepa_instant_transfer',
'klarna_pay_now',
'online_banking_poland',
'payconiq_by_bancontact',
'electronic_payment_standard',
'kbc_payment_button',
'pay_by_bank',
'trustly',
'stablecoin',
'kakao_pay',
'naver_pay',
'revolut_pay',
'cash_app_pay',
'wechat_pay',
'alipay',
'twint',
'go_pay',
'grab_pay',
'pay_co',
'after_pay',
'swish',
'payme',
'pix',
'klarna',
'alipay_hk',
'paypay',
'gcash',
'south_korean_cards',
])
.optional(),
reference_id: z.string().max(65000).optional(),
gw_payment_method_id: z.string().max(65000).optional(),
additional_information: GiftSubscriptionEstimateAdditionalInformationSchema.optional(),
});
const GiftSubscriptionEstimateShippingAddressSchema = z.object({
first_name: z.string().max(150).optional(),
last_name: z.string().max(150).optional(),
email: z.string().email().max(70).optional(),
company: z.string().max(250).optional(),
phone: z.string().max(50).optional(),
line1: z.string().max(150).optional(),
line2: z.string().max(150).optional(),
line3: z.string().max(150).optional(),
city: z.string().max(50).optional(),
state_code: z.string().max(50).optional(),
state: z.string().max(50).optional(),
zip: z.string().max(20).optional(),
country: z.string().max(50).optional(),
validation_status: z
.enum(['not_validated', 'valid', 'partially_valid', 'invalid'])
.optional(),
});
const GiftSubscriptionEstimateSubscriptionSchema