UNPKG

chargebee

Version:

A library for integrating with Chargebee.

1,402 lines (1,401 loc) 122 kB
// 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',