chargebee
Version:
A library for integrating with Chargebee.
1,402 lines (1,401 loc) • 122 kB
JavaScript
// Generated Zod schemas: Subscription
// Actions: create, createForCustomer, createWithItems, list, subscriptionsForCustomer, contractTermsForSubscription, listDiscounts, removeScheduledCancellation, removeCoupons, update, updateForItems, changeTermEnd, reactivate, addChargeAtTermEnd, chargeAddonAtTermEnd, chargeFutureRenewals, editAdvanceInvoiceSchedule, removeAdvanceInvoiceSchedule, regenerateInvoice, importSubscription, importForCustomer, importContractTerm, importUnbilledCharges, importForItems, overrideBillingProfile, pause, cancel, cancelForItems, resume, move
// Do not edit manually – regenerate via sdk-generator
import { z } from 'zod';
//Subscription.create
const CreateSubscriptionMetaDataSchema = z.looseObject({});
const CreateSubscriptionCustomerSchema = z.looseObject({
id: z.string().max(50).optional(),
email: z.string().email().max(70).optional(),
first_name: z.string().max(150).optional(),
last_name: z.string().max(150).optional(),
company: z.string().max(250).optional(),
phone: z.string().max(50).optional(),
locale: z.string().max(50).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(),
net_term_days: z.number().int().optional(),
taxjar_exemption_category: z
.enum(['wholesale', 'government', 'other'])
.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(),
allow_direct_debit: z.boolean().default(false).optional(),
consolidated_invoicing: z.boolean().optional(),
vat_number: z.string().max(20).optional(),
vat_number_prefix: z.string().max(10).optional(),
entity_identifier_scheme: z.string().max(50).optional(),
entity_identifier_standard: z.string().max(50).optional(),
is_einvoice_enabled: z.boolean().optional(),
einvoicing_method: z.enum(['automatic', 'manual', 'site_default']).optional(),
registered_for_gst: z.boolean().optional(),
business_customer_without_vat_number: z.boolean().optional(),
exemption_details: z.array(z.string().optional()).optional(),
customer_type: z
.enum(['residential', 'business', 'senior_citizen', 'industrial'])
.optional(),
});
const CreateSubscriptionAdditionalInformationSchema = z.looseObject({});
const CreateSubscriptionCardSchema = z.object({
gateway: z
.enum([
'chargebee',
'chargebee_payments',
'adyen',
'stripe',
'wepay',
'braintree',
'authorize_net',
'paypal_pro',
'pin',
'eway',
'eway_rapid',
'worldpay',
'balanced_payments',
'beanstream',
'bluepay',
'elavon',
'first_data_global',
'hdfc',
'migs',
'nmi',
'ogone',
'paymill',
'paypal_payflow_pro',
'sage_pay',
'tco',
'wirecard',
'amazon_payments',
'paypal_express_checkout',
'orbital',
'moneris_us',
'moneris',
'bluesnap',
'cybersource',
'vantiv',
'checkout_com',
'paypal',
'ingenico_direct',
'exact',
'mollie',
'quickbooks',
'razorpay',
'global_payments',
'bank_of_america',
'ecentric',
'metrics_global',
'windcave',
'pay_com',
'ebanx',
'dlocal',
'nuvei',
'solidgate',
'paystack',
'jp_morgan',
'deutsche_bank',
'ezidebit',
'twikey',
'tempus',
'moyasar',
'payway',
])
.optional(),
gateway_account_id: z.string().max(50).optional(),
tmp_token: z.string().max(300).optional(),
first_name: z.string().max(50).optional(),
last_name: z.string().max(50).optional(),
number: z.string().max(1500).optional(),
expiry_month: z.number().int().min(1).max(12).optional(),
expiry_year: z.number().int().optional(),
cvv: z.string().max(520).optional(),
preferred_scheme: z
.enum(['cartes_bancaires', 'mastercard', 'visa'])
.optional(),
billing_addr1: z.string().max(150).optional(),
billing_addr2: z.string().max(150).optional(),
billing_city: z.string().max(50).optional(),
billing_state_code: z.string().max(50).optional(),
billing_state: z.string().max(50).optional(),
billing_zip: z.string().max(20).optional(),
billing_country: z.string().max(50).optional(),
ip_address: z.string().max(50).optional(),
additional_information: CreateSubscriptionAdditionalInformationSchema.optional(),
});
const CreateSubscriptionBillingAddressSchema = z.looseObject({});
const CreateSubscriptionBankAccountSchema = z.object({
gateway_account_id: z.string().max(50).optional(),
iban: z.string().max(50).min(10).optional(),
first_name: z.string().max(150).optional(),
last_name: z.string().max(150).optional(),
company: z.string().max(250).optional(),
email: z.string().email().max(70).optional(),
phone: z.string().max(50).optional(),
bank_name: z.string().max(100).optional(),
account_number: z.string().max(17).min(4).optional(),
routing_number: z.string().max(9).min(3).optional(),
bank_code: z.string().max(20).optional(),
account_type: z
.enum(['checking', 'savings', 'business_checking', 'current'])
.optional(),
account_holder_type: z.enum(['individual', 'company']).optional(),
echeck_type: z.enum(['web', 'ppd', 'ccd']).optional(),
issuing_country: z.string().max(50).optional(),
swedish_identity_number: z.string().max(12).min(10).optional(),
billing_address: CreateSubscriptionBillingAddressSchema.optional(),
});
const CreateSubscriptionPaymentMethodSchema = z.object({
type: z
.enum([
'card',
'paypal_express_checkout',
'amazon_payments',
'direct_debit',
'generic',
'alipay',
'unionpay',
'apple_pay',
'wechat_pay',
'ideal',
'google_pay',
'sofort',
'bancontact',
'giropay',
'dotpay',
'upi',
'netbanking_emandates',
'venmo',
'pay_to',
'faster_payments',
'sepa_instant_transfer',
'automated_bank_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',
'twint',
'go_pay',
'grab_pay',
'pay_co',
'after_pay',
'swish',
'payme',
'pix',
'klarna',
'alipay_hk',
'paypay',
'gcash',
'south_korean_cards',
])
.optional(),
gateway: z
.enum([
'chargebee_payments',
'adyen',
'stripe',
'wepay',
'braintree',
'authorize_net',
'paypal_pro',
'pin',
'eway',
'eway_rapid',
'worldpay',
'balanced_payments',
'beanstream',
'bluepay',
'elavon',
'first_data_global',
'hdfc',
'migs',
'nmi',
'ogone',
'paymill',
'paypal_payflow_pro',
'sage_pay',
'tco',
'wirecard',
'amazon_payments',
'paypal_express_checkout',
'gocardless',
'orbital',
'moneris_us',
'moneris',
'bluesnap',
'cybersource',
'vantiv',
'checkout_com',
'paypal',
'ingenico_direct',
'exact',
'mollie',
'quickbooks',
'razorpay',
'global_payments',
'bank_of_america',
'ecentric',
'metrics_global',
'windcave',
'pay_com',
'ebanx',
'dlocal',
'nuvei',
'solidgate',
'paystack',
'jp_morgan',
'deutsche_bank',
'ezidebit',
'twikey',
'tempus',
'moyasar',
'payway',
])
.optional(),
gateway_account_id: z.string().max(50).optional(),
reference_id: z.string().max(200).optional(),
tmp_token: z.string().max(65000).optional(),
issuing_country: z.string().max(50).optional(),
additional_information: CreateSubscriptionAdditionalInformationSchema.optional(),
});
const CreateSubscriptionPaymentIntentSchema = 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: CreateSubscriptionAdditionalInformationSchema.optional(),
});
const CreateSubscriptionShippingAddressSchema = 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 CreateSubscriptionStatementDescriptorSchema = z.object({
descriptor: z.string().max(65000).optional(),
});
const CreateSubscriptionContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateSubscriptionEntityIdentifiersSchema = z.object({
id: z.array(z.string().max(40).optional()).optional(),
scheme: z.array(z.string().max(50).optional()).optional(),
value: z.array(z.string().max(50).optional()).optional(),
standard: z.array(z.string().max(50).optional()).optional(),
});
const CreateSubscriptionTaxProvidersFieldsSchema = 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 CreateSubscriptionAddonsSchema = 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 CreateSubscriptionEventBasedAddonsSchema = 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 CreateSubscriptionCouponsSchema = z.object({
coupon_id: z.array(z.string().max(100).optional()).optional(),
apply_till: z.array(z.number().int().optional()).optional(),
});
const CreateSubscriptionBodySchema = z.looseObject({
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(),
billing_cycles: z.number().int().min(0).optional(),
mandatory_addons_to_remove: z
.array(z.string().max(100).optional())
.optional(),
start_date: z.number().int().optional(),
coupon: z.string().max(100).optional(),
auto_collection: z.enum(['on', 'off']).optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).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(),
po_number: z.string().max(100).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
token_id: z.string().max(40).optional(),
affiliate_token: z.string().max(250).optional(),
created_from_ip: z.string().max(50).optional(),
invoice_notes: z.string().max(2000).optional(),
invoice_date: z.number().int().optional(),
meta_data: CreateSubscriptionMetaDataSchema.optional(),
invoice_immediately: z.boolean().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(),
client_profile_id: z.string().max(50).optional(),
payment_initiator: z.enum(['customer', 'merchant']).optional(),
customer: CreateSubscriptionCustomerSchema.optional(),
card: CreateSubscriptionCardSchema.optional(),
bank_account: CreateSubscriptionBankAccountSchema.optional(),
payment_method: CreateSubscriptionPaymentMethodSchema.optional(),
payment_intent: CreateSubscriptionPaymentIntentSchema.optional(),
billing_address: CreateSubscriptionBillingAddressSchema.optional(),
shipping_address: CreateSubscriptionShippingAddressSchema.optional(),
statement_descriptor: CreateSubscriptionStatementDescriptorSchema.optional(),
contract_term: CreateSubscriptionContractTermSchema.optional(),
entity_identifiers: CreateSubscriptionEntityIdentifiersSchema.optional(),
tax_providers_fields: CreateSubscriptionTaxProvidersFieldsSchema.optional(),
addons: CreateSubscriptionAddonsSchema.optional(),
event_based_addons: CreateSubscriptionEventBasedAddonsSchema.optional(),
coupons: CreateSubscriptionCouponsSchema.optional(),
});
export { CreateSubscriptionBodySchema };
//Subscription.createForCustomer
const CreateForCustomerSubscriptionMetaDataSchema = z.looseObject({});
const CreateForCustomerSubscriptionShippingAddressSchema = 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 CreateForCustomerSubscriptionStatementDescriptorSchema = z.object({
descriptor: z.string().max(65000).optional(),
});
const CreateForCustomerSubscriptionAdditionalInformationSchema = z.looseObject({});
const CreateForCustomerSubscriptionPaymentIntentSchema = 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: CreateForCustomerSubscriptionAdditionalInformationSchema.optional(),
});
const CreateForCustomerSubscriptionContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const CreateForCustomerSubscriptionAddonsSchema = 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 CreateForCustomerSubscriptionEventBasedAddonsSchema = 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 CreateForCustomerSubscriptionCouponsSchema = z.object({
coupon_id: z.array(z.string().max(100).optional()).optional(),
apply_till: z.array(z.number().int().optional()).optional(),
});
const CreateForCustomerSubscriptionBodySchema = z.looseObject({
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(),
billing_cycles: z.number().int().min(0).optional(),
mandatory_addons_to_remove: z
.array(z.string().max(100).optional())
.optional(),
start_date: z.number().int().optional(),
coupon: z.string().max(100).optional(),
auto_collection: z.enum(['on', 'off']).optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).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(),
po_number: z.string().max(100).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
payment_source_id: z.string().max(40).optional(),
override_relationship: z.boolean().optional(),
invoice_notes: z.string().max(2000).optional(),
invoice_date: z.number().int().optional(),
meta_data: CreateForCustomerSubscriptionMetaDataSchema.optional(),
invoice_immediately: z.boolean().optional(),
replace_primary_payment_source: z.boolean().default(true).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(),
payment_initiator: z.enum(['customer', 'merchant']).optional(),
shipping_address: CreateForCustomerSubscriptionShippingAddressSchema.optional(),
statement_descriptor: CreateForCustomerSubscriptionStatementDescriptorSchema.optional(),
payment_intent: CreateForCustomerSubscriptionPaymentIntentSchema.optional(),
contract_term: CreateForCustomerSubscriptionContractTermSchema.optional(),
addons: CreateForCustomerSubscriptionAddonsSchema.optional(),
event_based_addons: CreateForCustomerSubscriptionEventBasedAddonsSchema.optional(),
coupons: CreateForCustomerSubscriptionCouponsSchema.optional(),
});
export { CreateForCustomerSubscriptionBodySchema };
//Subscription.createWithItems
const CreateWithItemsSubscriptionMetaDataSchema = z.looseObject({});
const CreateWithItemsSubscriptionShippingAddressSchema = 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 CreateWithItemsSubscriptionStatementDescriptorSchema = z.object({
descriptor: z.string().max(65000).optional(),
});
const CreateWithItemsSubscriptionAdditionalInformationSchema = z.looseObject({});
const CreateWithItemsSubscriptionPaymentIntentSchema = 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: CreateWithItemsSubscriptionAdditionalInformationSchema.optional(),
});
const CreateWithItemsSubscriptionContractTermSchema = 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 CreateWithItemsSubscriptionBillingOverrideSchema = z.object({
max_excess_payment_usage: z.number().int().min(-1).optional(),
max_refundable_credits_usage: z.number().int().min(-1).optional(),
});
const CreateWithItemsSubscriptionSubscriptionItemsSchema = 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(),
usage_accumulation_reset_frequency: z
.array(z.enum(['never', 'subscription_billing_frequency']).optional())
.optional(),
});
const CreateWithItemsSubscriptionDiscountsSchema = 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 CreateWithItemsSubscriptionItemTiersSchema = 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 CreateWithItemsSubscriptionCouponsSchema = z.object({
coupon_id: z.array(z.string().max(100).optional()).optional(),
apply_till: z.array(z.number().int().optional()).optional(),
});
const CreateWithItemsSubscriptionBodySchema = z.looseObject({
id: z.string().max(50).optional(),
business_entity_id: z.string().max(50).optional(),
trial_end: z.number().int().optional(),
billing_cycles: z.number().int().min(0).optional(),
setup_fee: z.number().int().min(0).optional(),
mandatory_items_to_remove: z.array(z.string().max(100).optional()).optional(),
net_term_days: z.number().int().optional(),
start_date: z.number().int().optional(),
coupon: z.string().max(100).optional(),
auto_collection: z.enum(['on', 'off']).optional(),
terms_to_charge: z.number().int().min(1).optional(),
billing_alignment_mode: z.enum(['immediate', 'delayed']).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(),
po_number: z.string().max(100).optional(),
coupon_ids: z.array(z.string().max(100).optional()).optional(),
payment_source_id: z.string().max(40).optional(),
override_relationship: z.boolean().optional(),
invoice_notes: z.string().max(2000).optional(),
invoice_date: z.number().int().optional(),
meta_data: CreateWithItemsSubscriptionMetaDataSchema.optional(),
invoice_immediately: z.boolean().optional(),
replace_primary_payment_source: z.boolean().default(true).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(),
create_pending_invoices: z.boolean().optional(),
auto_close_invoices: z.boolean().optional(),
first_invoice_pending: z.boolean().default(false).optional(),
trial_end_action: z
.enum([
'site_default',
'plan_default',
'activate_subscription',
'cancel_subscription',
])
.optional(),
payment_initiator: z.enum(['customer', 'merchant']).optional(),
shipping_address: CreateWithItemsSubscriptionShippingAddressSchema.optional(),
statement_descriptor: CreateWithItemsSubscriptionStatementDescriptorSchema.optional(),
payment_intent: CreateWithItemsSubscriptionPaymentIntentSchema.optional(),
contract_term: CreateWithItemsSubscriptionContractTermSchema.optional(),
billing_override: CreateWithItemsSubscriptionBillingOverrideSchema.optional(),
subscription_items: CreateWithItemsSubscriptionSubscriptionItemsSchema.optional(),
discounts: CreateWithItemsSubscriptionDiscountsSchema.optional(),
item_tiers: CreateWithItemsSubscriptionItemTiersSchema.optional(),
coupons: CreateWithItemsSubscriptionCouponsSchema.optional(),
});
export { CreateWithItemsSubscriptionBodySchema };
//Subscription.list
const ListSubscriptionIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionCustomerIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionItemIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionItemPriceIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionStatusSchema = z.object({
is: z
.enum([
'future',
'in_trial',
'active',
'non_renewing',
'paused',
'cancelled',
'transferred',
])
.optional(),
is_not: z
.enum([
'future',
'in_trial',
'active',
'non_renewing',
'paused',
'cancelled',
'transferred',
])
.optional(),
in: z
.enum([
'future',
'in_trial',
'active',
'non_renewing',
'paused',
'cancelled',
'transferred',
])
.optional(),
not_in: z
.enum([
'future',
'in_trial',
'active',
'non_renewing',
'paused',
'cancelled',
'transferred',
])
.optional(),
});
const ListSubscriptionCancelReasonSchema = z.object({
is: z
.enum([
'not_paid',
'no_card',
'fraud_review_failed',
'non_compliant_eu_customer',
'tax_calculation_failed',
'currency_incompatible_with_gateway',
'non_compliant_customer',
])
.optional(),
is_not: z
.enum([
'not_paid',
'no_card',
'fraud_review_failed',
'non_compliant_eu_customer',
'tax_calculation_failed',
'currency_incompatible_with_gateway',
'non_compliant_customer',
])
.optional(),
in: z
.enum([
'not_paid',
'no_card',
'fraud_review_failed',
'non_compliant_eu_customer',
'tax_calculation_failed',
'currency_incompatible_with_gateway',
'non_compliant_customer',
])
.optional(),
not_in: z
.enum([
'not_paid',
'no_card',
'fraud_review_failed',
'non_compliant_eu_customer',
'tax_calculation_failed',
'currency_incompatible_with_gateway',
'non_compliant_customer',
])
.optional(),
is_present: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionCancelReasonCodeSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionRemainingBillingCyclesSchema = z.object({
is: z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: z.string().regex(RegExp('^-?\\d+$')).optional(),
between: z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
is_present: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionCreatedAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListSubscriptionActivatedAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
is_present: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionNextBillingAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListSubscriptionCancelledAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListSubscriptionHasScheduledChangesSchema = z.object({
is: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionUpdatedAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListSubscriptionOfflinePaymentMethodSchema = z.object({
is: 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(),
is_not: 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(),
in: 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(),
not_in: 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(),
});
const ListSubscriptionAutoCloseInvoicesSchema = z.object({
is: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionOverrideRelationshipSchema = z.object({
is: z.enum(['true', 'false']).optional(),
});
const ListSubscriptionSortBySchema = z.looseObject({
asc: z.enum(['created_at', 'updated_at']).optional(),
desc: z.enum(['created_at', 'updated_at']).optional(),
});
const ListSubscriptionBusinessEntityIdSchema = z.object({
is: z.string().min(1).optional(),
});
const ListSubscriptionChannelSchema = z.object({
is: z.enum(['web', 'app_store', 'play_store']).optional(),
is_not: z.enum(['web', 'app_store', 'play_store']).optional(),
in: z.enum(['web', 'app_store', 'play_store']).optional(),
not_in: z.enum(['web', 'app_store', 'play_store']).optional(),
});
const ListSubscriptionPlanIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListSubscriptionBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
include_deleted: z.boolean().default(false).optional(),
id: ListSubscriptionIdSchema.optional(),
customer_id: ListSubscriptionCustomerIdSchema.optional(),
item_id: ListSubscriptionItemIdSchema.optional(),
item_price_id: ListSubscriptionItemPriceIdSchema.optional(),
status: ListSubscriptionStatusSchema.optional(),
cancel_reason: ListSubscriptionCancelReasonSchema.optional(),
cancel_reason_code: ListSubscriptionCancelReasonCodeSchema.optional(),
remaining_billing_cycles: ListSubscriptionRemainingBillingCyclesSchema.optional(),
created_at: ListSubscriptionCreatedAtSchema.optional(),
activated_at: ListSubscriptionActivatedAtSchema.optional(),
next_billing_at: ListSubscriptionNextBillingAtSchema.optional(),
cancelled_at: ListSubscriptionCancelledAtSchema.optional(),
has_scheduled_changes: ListSubscriptionHasScheduledChangesSchema.optional(),
updated_at: ListSubscriptionUpdatedAtSchema.optional(),
offline_payment_method: ListSubscriptionOfflinePaymentMethodSchema.optional(),
auto_close_invoices: ListSubscriptionAutoCloseInvoicesSchema.optional(),
override_relationship: ListSubscriptionOverrideRelationshipSchema.optional(),
sort_by: ListSubscriptionSortBySchema.optional(),
business_entity_id: ListSubscriptionBusinessEntityIdSchema.optional(),
channel: ListSubscriptionChannelSchema.optional(),
plan_id: ListSubscriptionPlanIdSchema.optional(),
});
export { ListSubscriptionBodySchema };
//Subscription.subscriptionsForCustomer
const SubscriptionsForCustomerSubscriptionBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
});
export { SubscriptionsForCustomerSubscriptionBodySchema };
//Subscription.contractTermsForSubscription
const ContractTermsForSubscriptionSubscriptionSortBySchema = z.looseObject({
asc: z.enum(['created_at']).optional(),
desc: z.enum(['created_at']).optional(),
});
const ContractTermsForSubscriptionSubscriptionBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
sort_by: ContractTermsForSubscriptionSubscriptionSortBySchema.optional(),
});
export { ContractTermsForSubscriptionSubscriptionBodySchema };
//Subscription.listDiscounts
const ListDiscountsSubscriptionBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
});
export { ListDiscountsSubscriptionBodySchema };
//Subscription.removeScheduledCancellation
const RemoveScheduledCancellationSubscriptionContractTermSchema = z.object({
action_at_term_end: z.enum(['renew', 'evergreen', 'cancel']).optional(),
cancellation_cutoff_period: z.number().int().optional(),
});
const RemoveScheduledCancellationSubscriptionBodySchema = z.looseObject({
billing_cycles: z.number().int().min(0).optional(),
contract_term_billing_cycle_on_renewal: z
.number()
.int()
.min(1)
.max(100)
.optional(),
contract_term: RemoveScheduledCancellationSubscriptionContractTermSchema.optional(),
});
export { RemoveScheduledCancellationSubscriptionBodySchema };
//Subscription.removeCoupons
const RemoveCouponsSubscriptionBodySchema = z.looseObject({
coupon_ids: z.array(z.string().max(100).optional()).optional(),
});
export { RemoveCouponsSubscriptionBodySchema };
//Subscription.update
const UpdateSubscriptionMetaDataSchema = z.looseObject({});
const UpdateSubscriptionAdditionalInformationSchema = z.looseObject({});
const UpdateSubscriptionCardSchema = z.object({
gateway: z
.enum([
'chargebee',
'chargebee_payments',
'adyen',
'stripe',
'wepay',
'braintree',
'authorize_net',
'paypal_pro',
'pin',
'eway',
'eway_rapid',
'worldpay',
'balanced_payments',
'beanstream',
'bluepay',
'elavon',
'first_data_global',
'hdfc',
'migs',
'nmi',
'ogone',
'paymill',
'paypal_payflow_pro',
'sage_pay',
'tco',
'wirecard',
'amazon_payments',
'paypal_express_checkout',
'orbital',
'moneris_us',
'moneris',
'bluesnap',
'cybersource',
'vantiv',
'checkout_com',
'paypal',
'ingenico_direct',
'exact',
'mollie',
'quickbooks',
'razorpay',
'global_payments',
'bank_of_america',
'ecentric',
'metrics_global',
'windcave',
'pay_com',
'ebanx',
'dlocal',
'nuvei',
'solidgate',
'paystack',
'jp_morgan',
'deutsche_bank',
'ezidebit',
'twikey',
'tempus',
'moyasar',
'payway',
])
.optional(),
gateway_account_id: z.string().max(50).optional(),
tmp_token: z.string().max(300).optional(),
first_name: z.string().max(50).optional(),
last_name: z.string().max(50).optional(),
number: z.string().max(1500).optional(),
expiry_month: z.number().int().min(1).max(12).optional(),
expiry_year: z.number().int().optional(),
cvv: z.string().max(520).optional(),
preferred_scheme: z
.enum(['cartes_bancaires', 'mastercard', 'visa'])
.optional(),
billing_addr1: z.string().max(150).optional(),
billing_addr2: z.string().max(150).optional(),
billing_city: z.string().max(50).optional(),
billing_state_code: z.string().max(50).optional(),
billing_state: z.string().max(50).optional(),
billing_zip: z.string().max(20).optional(),
billing_country: z.string().max(50).optional(),
ip_address: z.string().max(50).optional(),
additional_information: UpdateSubscriptionAdditionalInformationSchema.optional(),
});
const UpdateSubscriptionPaymentMethodSchema = z.object({
type: z
.enum([
'card',
'paypal_express_checkout',
'amazon_payments',
'direct_debit',
'generic',
'alipay',
'unionpay',
'apple_pay',
'wechat_pay',
'ideal',
'google_pay',
'sofort',
'bancontact',
'giropay',
'dotpay',
'upi',
'netbanking_emandates',
'venmo',
'pay_to',
'faster_payments',
'sepa_instant_transfer',
'automated_bank_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',
'twint',
'go_pay',
'grab_pay',
'pay_co',
'after_pay',
'swish',
'payme',
'pix',
'klarna',
'alipay_hk',