import {z} from 'zod' export type CreateApiV1TestHelpersTreasuryReceivedCreditsArgs = {body: {amount: number, currency: unknown, description?: string | undefined, expand?: Array | undefined, financial_account: string, initiating_payment_method_details?: ({type: 'us_bank_account', us_bank_account?: ({account_holder_name?: string | undefined, account_number?: string | undefined, routing_number?: string | undefined}) | undefined}) | undefined, network: 'ach' | 'rtp' | 'us_domestic_wire'}}; export type CreateApiV1TestHelpersTreasuryReceivedCreditsOptions = {baseUrl?: string | undefined, basicAuth?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const address = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const treasurySharedResourceBillingDetails = z.object({address: address, email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional()}); export const receivedPaymentMethodDetailsFinancialAccount = z.object({id: z.string().max(5000), network: z.literal("stripe")}); export const treasurySharedResourceInitiatingPaymentMethodDetailsUsBankAccount = z.object({bank_name: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), routing_number: z.string().max(5000).nullable().optional()}); export const treasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails = z.object({balance: z.literal("payments").optional(), billing_details: treasurySharedResourceBillingDetails, financial_account: receivedPaymentMethodDetailsFinancialAccount.optional(), issuing_card: z.string().max(5000).optional(), type: z.enum(["balance", "financial_account", "issuing_card", "stripe", "us_bank_account"]), us_bank_account: treasurySharedResourceInitiatingPaymentMethodDetailsUsBankAccount.optional()}); export const treasuryReceivedCreditsResourceStatusTransitions = z.object({posted_at: z.number().int().nullable().optional()}); export const treasuryTransactionsResourceBalanceImpact = z.object({cash: z.number().int(), inbound_pending: z.number().int(), outbound_pending: z.number().int()}); export const treasuryReceivedDebitsResourceDebitReversalLinkedFlows = z.object({issuing_dispute: z.string().max(5000).nullable().optional()}); export const treasuryReceivedDebitsResourceStatusTransitions = z.object({completed_at: z.number().int().nullable().optional()}); export const treasuryDebitReversal = z.object({amount: z.number().int(), created: z.number().int(), currency: z.string(), financial_account: z.string().max(5000).nullable().optional(), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), linked_flows: treasuryReceivedDebitsResourceDebitReversalLinkedFlows.nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), network: z.enum(["ach", "card"]), object: z.literal("treasury.debit_reversal"), received_debit: z.string().max(5000), status: z.enum(["failed", "processing", "succeeded"]), status_transitions: treasuryReceivedDebitsResourceStatusTransitions, transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)]).nullable().optional()}); export const treasuryInboundTransfersResourceFailureDetails = z.object({code: z.enum(["account_closed", "account_frozen", "bank_account_restricted", "bank_ownership_changed", "debit_not_authorized", "incorrect_account_holder_address", "incorrect_account_holder_name", "incorrect_account_holder_tax_id", "insufficient_funds", "invalid_account_number", "invalid_currency", "no_account", "other"])}); export const treasuryInboundTransfersResourceInboundTransferResourceLinkedFlows = z.object({received_debit: z.string().max(5000).nullable().optional()}); export const offlineAcceptance = z.object({}); export const onlineAcceptance = z.object({ip_address: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const customerAcceptance = z.object({accepted_at: z.number().int().nullable().optional(), offline: offlineAcceptance.optional(), online: onlineAcceptance.optional(), type: z.enum(["offline", "online"])}); export const mandateMultiUse = z.object({amount: z.number().int().optional(), currency: z.string().optional()}); export const paymentMethodAcssDebit = z.object({bank_name: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), institution_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), transit_number: z.string().max(5000).nullable().optional()}); export const paymentMethodAffirm = z.object({}); export const paymentMethodAfterpayClearpay = z.object({}); export const paymentFlowsPrivatePaymentMethodsAlipay = z.object({}); export const paymentMethodAlma = z.object({}); export const paymentMethodAmazonPay = z.object({}); export const paymentMethodAuBecsDebit = z.object({bsb_number: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentMethodBacsDebit = z.object({fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), sort_code: z.string().max(5000).nullable().optional()}); export const paymentMethodBancontact = z.object({}); export const paymentMethodBillie = z.object({}); export const billingDetails = z.object({address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), phone: z.string().max(5000).nullable().optional(), tax_id: z.string().max(5000).nullable().optional()}); export const paymentMethodBizum = z.object({buyer_id: z.string().max(5000).nullable().optional()}); export const paymentMethodBlik = z.object({buyer_id: z.string().max(5000).nullable().optional()}); export const paymentMethodBoleto = z.object({tax_id: z.string().max(5000)}); export const paymentMethodCardChecks = z.object({address_line1_check: z.string().max(5000).nullable().optional(), address_postal_code_check: z.string().max(5000).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsCardPresentOffline = z.object({stored_at: z.number().int().nullable().optional(), type: z.literal("deferred").nullable().optional()}); export const paymentMethodDetailsCardPresentReceipt = z.object({account_type: z.enum(["checking", "credit", "prepaid", "unknown"]).optional(), application_cryptogram: z.string().max(5000).nullable().optional(), application_preferred_name: z.string().max(5000).nullable().optional(), authorization_code: z.string().max(5000).nullable().optional(), authorization_response_code: z.string().max(5000).nullable().optional(), cardholder_verification_method: z.string().max(5000).nullable().optional(), dedicated_file_name: z.string().max(5000).nullable().optional(), terminal_verification_results: z.string().max(5000).nullable().optional(), transaction_status_information: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsCardPresentCommonWallet = z.object({type: z.enum(["apple_pay", "google_pay", "samsung_pay", "unknown"])}); export const paymentMethodDetailsCardPresent = z.object({amount_authorized: z.number().int().nullable().optional(), brand: z.string().max(5000).nullable().optional(), brand_product: z.string().max(5000).nullable().optional(), capture_before: z.number().int().optional(), cardholder_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), emv_auth_data: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), generated_card: z.string().max(5000).nullable().optional(), incremental_authorization_supported: z.boolean(), issuer: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), location: z.string().max(5000).optional(), network: z.string().max(5000).nullable().optional(), network_transaction_id: z.string().max(5000).nullable().optional(), offline: paymentMethodDetailsCardPresentOffline.nullable().optional(), overcapture_supported: z.boolean(), preferred_locales: z.array(z.string().max(5000)).nullable().optional(), read_method: z.enum(["contact_emv", "contactless_emv", "contactless_magstripe_mode", "magnetic_stripe_fallback", "magnetic_stripe_track2"]).nullable().optional(), reader: z.string().max(5000).optional(), receipt: paymentMethodDetailsCardPresentReceipt.nullable().optional(), wallet: paymentFlowsPrivatePaymentMethodsCardPresentCommonWallet.optional()}); export const cardGeneratedFromPaymentMethodDetails = z.object({card_present: paymentMethodDetailsCardPresent.optional(), type: z.string().max(5000)}); export const application = z.object({id: z.string().max(5000), name: z.string().max(5000).nullable().optional(), object: z.literal("application")}); export const customerBalanceCustomerBalanceSettings = z.object({reconciliation_mode: z.enum(["automatic", "manual"]), using_merchant_default: z.boolean()}); export const cashBalance = z.object({available: z.record(z.string(), z.number().int()).nullable().optional(), customer: z.string().max(5000), customer_account: z.string().max(5000).nullable().optional(), livemode: z.boolean(), object: z.literal("cash_balance"), settings: customerBalanceCustomerBalanceSettings}); export const accountAnnualRevenue = z.object({amount: z.number().int().nullable().optional(), currency: z.string().nullable().optional(), fiscal_year_end: z.string().max(5000).nullable().optional()}); export const accountMonthlyEstimatedRevenue = z.object({amount: z.number().int(), currency: z.string()}); export const accountBusinessProfile = z.object({annual_revenue: accountAnnualRevenue.nullable().optional(), estimated_worker_count: z.number().int().nullable().optional(), mcc: z.string().max(5000).nullable().optional(), minority_owned_business_designation: z.array(z.enum(["lgbtqi_owned_business", "minority_owned_business", "none_of_these_apply", "prefer_not_to_answer", "women_owned_business"])).nullable().optional(), monthly_estimated_revenue: accountMonthlyEstimatedRevenue.optional(), name: z.string().max(5000).nullable().optional(), product_description: z.string().max(40000).nullable().optional(), specified_commercial_transactions_act_url: z.string().max(5000).nullable().optional(), support_address: address.nullable().optional(), support_email: z.string().max(5000).nullable().optional(), support_phone: z.string().max(5000).nullable().optional(), support_url: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const accountCapabilities = z.object({acss_debit_payments: z.enum(["active", "inactive", "pending"]).optional(), affirm_payments: z.enum(["active", "inactive", "pending"]).optional(), afterpay_clearpay_payments: z.enum(["active", "inactive", "pending"]).optional(), alma_payments: z.enum(["active", "inactive", "pending"]).optional(), amazon_pay_payments: z.enum(["active", "inactive", "pending"]).optional(), app_distribution: z.enum(["active", "inactive", "pending"]).optional(), au_becs_debit_payments: z.enum(["active", "inactive", "pending"]).optional(), bacs_debit_payments: z.enum(["active", "inactive", "pending"]).optional(), bancontact_payments: z.enum(["active", "inactive", "pending"]).optional(), bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), billie_payments: z.enum(["active", "inactive", "pending"]).optional(), bizum_payments: z.enum(["active", "inactive", "pending"]).optional(), blik_payments: z.enum(["active", "inactive", "pending"]).optional(), blik_recurring_payments: z.enum(["active", "inactive", "pending"]).optional(), boleto_payments: z.enum(["active", "inactive", "pending"]).optional(), card_issuing: z.enum(["active", "inactive", "pending"]).optional(), card_payments: z.enum(["active", "inactive", "pending"]).optional(), cartes_bancaires_payments: z.enum(["active", "inactive", "pending"]).optional(), cashapp_payments: z.enum(["active", "inactive", "pending"]).optional(), crypto_payments: z.enum(["active", "inactive", "pending"]).optional(), eps_payments: z.enum(["active", "inactive", "pending"]).optional(), fpx_payments: z.enum(["active", "inactive", "pending"]).optional(), gb_bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), giropay_payments: z.enum(["active", "inactive", "pending"]).optional(), grabpay_payments: z.enum(["active", "inactive", "pending"]).optional(), ideal_payments: z.enum(["active", "inactive", "pending"]).optional(), india_international_payments: z.enum(["active", "inactive", "pending"]).optional(), jcb_payments: z.enum(["active", "inactive", "pending"]).optional(), jp_bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), kakao_pay_payments: z.enum(["active", "inactive", "pending"]).optional(), klarna_payments: z.enum(["active", "inactive", "pending"]).optional(), konbini_payments: z.enum(["active", "inactive", "pending"]).optional(), kr_card_payments: z.enum(["active", "inactive", "pending"]).optional(), legacy_payments: z.enum(["active", "inactive", "pending"]).optional(), link_payments: z.enum(["active", "inactive", "pending"]).optional(), mb_way_payments: z.enum(["active", "inactive", "pending"]).optional(), mobilepay_payments: z.enum(["active", "inactive", "pending"]).optional(), multibanco_payments: z.enum(["active", "inactive", "pending"]).optional(), mx_bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), naver_pay_payments: z.enum(["active", "inactive", "pending"]).optional(), nz_bank_account_becs_debit_payments: z.enum(["active", "inactive", "pending"]).optional(), oxxo_payments: z.enum(["active", "inactive", "pending"]).optional(), p24_payments: z.enum(["active", "inactive", "pending"]).optional(), pay_by_bank_payments: z.enum(["active", "inactive", "pending"]).optional(), payco_payments: z.enum(["active", "inactive", "pending"]).optional(), paynow_payments: z.enum(["active", "inactive", "pending"]).optional(), paypay_payments: z.enum(["active", "inactive", "pending"]).optional(), payto_payments: z.enum(["active", "inactive", "pending"]).optional(), pix_payments: z.enum(["active", "inactive", "pending"]).optional(), promptpay_payments: z.enum(["active", "inactive", "pending"]).optional(), revolut_pay_payments: z.enum(["active", "inactive", "pending"]).optional(), samsung_pay_payments: z.enum(["active", "inactive", "pending"]).optional(), satispay_payments: z.enum(["active", "inactive", "pending"]).optional(), scalapay_payments: z.enum(["active", "inactive", "pending"]).optional(), sepa_bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), sepa_debit_payments: z.enum(["active", "inactive", "pending"]).optional(), sequra_payments: z.enum(["active", "inactive", "pending"]).optional(), sofort_payments: z.enum(["active", "inactive", "pending"]).optional(), sunbit_payments: z.enum(["active", "inactive", "pending"]).optional(), swish_payments: z.enum(["active", "inactive", "pending"]).optional(), tax_reporting_us_1099_k: z.enum(["active", "inactive", "pending"]).optional(), tax_reporting_us_1099_misc: z.enum(["active", "inactive", "pending"]).optional(), transfers: z.enum(["active", "inactive", "pending"]).optional(), treasury: z.enum(["active", "inactive", "pending"]).optional(), twint_payments: z.enum(["active", "inactive", "pending"]).optional(), upi_payments: z.enum(["active", "inactive", "pending"]).optional(), us_bank_account_ach_payments: z.enum(["active", "inactive", "pending"]).optional(), us_bank_transfer_payments: z.enum(["active", "inactive", "pending"]).optional(), zip_payments: z.enum(["active", "inactive", "pending"]).optional()}); export const legalEntityJapanAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional(), town: z.string().max(5000).nullable().optional()}); export const legalEntityDirectorshipDeclaration = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const legalEntityUboDeclaration = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const legalEntityRegistrationDate = z.object({day: z.number().int().nullable().optional(), month: z.number().int().nullable().optional(), year: z.number().int().nullable().optional()}); export const legalEntityRepresentativeDeclaration = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const fileLink = z.object({created: z.number().int(), expired: z.boolean(), expires_at: z.number().int().nullable().optional(), file: z.union([z.string().max(5000), z.lazy(() => file)]), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("file_link"), url: z.string().max(5000).nullable().optional()}); export const file: z.ZodType = z.object({created: z.number().int(), expires_at: z.number().int().nullable().optional(), filename: z.string().max(5000).nullable().optional(), id: z.string().max(5000), links: z.object({data: z.array(fileLink), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).nullable().optional(), object: z.literal("file"), purpose: z.enum(["account_requirement", "additional_verification", "business_icon", "business_logo", "customer_signature", "dispute_evidence", "document_provider_identity_document", "finance_report_run", "financial_account_statement", "identity_document", "identity_document_downloadable", "issuing_regulatory_reporting", "pci_document", "platform_terms_of_service", "selfie", "sigma_scheduled_query", "tax_document_user_upload", "terminal_android_apk", "terminal_reader_splashscreen", "terminal_wifi_certificate", "terminal_wifi_private_key"]), size: z.number().int(), title: z.string().max(5000).nullable().optional(), type: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const legalEntityCompanyVerificationDocument = z.object({back: z.union([z.string().max(5000), file]).nullable().optional(), details: z.string().max(5000).nullable().optional(), details_code: z.string().max(5000).nullable().optional(), front: z.union([z.string().max(5000), file]).nullable().optional()}); export const legalEntityCompanyVerification = z.object({document: legalEntityCompanyVerificationDocument}); export const legalEntityCompany = z.object({address: address.optional(), address_kana: legalEntityJapanAddress.nullable().optional(), address_kanji: legalEntityJapanAddress.nullable().optional(), administrative_address: address.optional(), directors_provided: z.boolean().optional(), directorship_declaration: legalEntityDirectorshipDeclaration.nullable().optional(), executives_provided: z.boolean().optional(), export_license_id: z.string().max(5000).optional(), export_purpose_code: z.string().max(5000).optional(), name: z.string().max(5000).nullable().optional(), name_kana: z.string().max(5000).nullable().optional(), name_kanji: z.string().max(5000).nullable().optional(), owners_provided: z.boolean().optional(), ownership_declaration: legalEntityUboDeclaration.nullable().optional(), ownership_exemption_reason: z.enum(["qualified_entity_exceeds_ownership_threshold", "qualifies_as_financial_institution"]).optional(), phone: z.string().max(5000).nullable().optional(), principal_place_of_business: address.optional(), registration_date: legalEntityRegistrationDate.optional(), representative_declaration: legalEntityRepresentativeDeclaration.nullable().optional(), structure: z.enum(["free_zone_establishment", "free_zone_llc", "government_instrumentality", "governmental_unit", "incorporated_non_profit", "incorporated_partnership", "limited_liability_partnership", "llc", "multi_member_llc", "private_company", "private_corporation", "private_partnership", "public_company", "public_corporation", "public_partnership", "registered_charity", "single_member_llc", "sole_establishment", "sole_proprietorship", "tax_exempt_government_instrumentality", "unincorporated_association", "unincorporated_non_profit", "unincorporated_partnership"]).optional(), tax_id_provided: z.boolean().optional(), tax_id_registrar: z.string().max(5000).optional(), vat_id_provided: z.boolean().optional(), verification: legalEntityCompanyVerification.nullable().optional()}); export const accountUnificationAccountControllerFees = z.object({payer: z.enum(["account", "application", "application_custom", "application_express"])}); export const accountUnificationAccountControllerLosses = z.object({payments: z.enum(["application", "stripe"])}); export const accountUnificationAccountControllerStripeDashboard = z.object({type: z.enum(["express", "full", "none"])}); export const accountUnificationAccountController = z.object({fees: accountUnificationAccountControllerFees.optional(), is_controller: z.boolean().optional(), losses: accountUnificationAccountControllerLosses.optional(), requirement_collection: z.enum(["application", "stripe"]).optional(), stripe_dashboard: accountUnificationAccountControllerStripeDashboard.optional(), type: z.enum(["account", "application"])}); export const deletedCustomer = z.object({deleted: z.literal(true), id: z.string().max(5000), object: z.literal("customer")}); export const accountRequirementsError = z.object({code: z.enum(["external_request", "information_missing", "invalid_address_city_state_postal_code", "invalid_address_cmra_address", "invalid_address_highway_contract_box", "invalid_address_private_mailbox", "invalid_address_registered_agent_address", "invalid_business_profile_name", "invalid_business_profile_name_denylisted", "invalid_company_name_denylisted", "invalid_dob_age_over_maximum", "invalid_dob_age_under_18", "invalid_dob_age_under_minimum", "invalid_product_description_length", "invalid_product_description_url_match", "invalid_representative_country", "invalid_signator", "invalid_statement_descriptor_business_mismatch", "invalid_statement_descriptor_denylisted", "invalid_statement_descriptor_length", "invalid_statement_descriptor_prefix_denylisted", "invalid_statement_descriptor_prefix_mismatch", "invalid_street_address", "invalid_tax_id", "invalid_tax_id_format", "invalid_tos_acceptance", "invalid_url_denylisted", "invalid_url_format", "invalid_url_web_presence_detected", "invalid_url_website_business_information_mismatch", "invalid_url_website_empty", "invalid_url_website_inaccessible", "invalid_url_website_inaccessible_geoblocked", "invalid_url_website_inaccessible_password_protected", "invalid_url_website_incomplete", "invalid_url_website_incomplete_cancellation_policy", "invalid_url_website_incomplete_customer_service_details", "invalid_url_website_incomplete_legal_restrictions", "invalid_url_website_incomplete_refund_policy", "invalid_url_website_incomplete_return_policy", "invalid_url_website_incomplete_terms_and_conditions", "invalid_url_website_incomplete_under_construction", "invalid_url_website_other", "invalid_value_other", "unsupported_business_type", "verification_directors_mismatch", "verification_document_address_mismatch", "verification_document_address_missing", "verification_document_corrupt", "verification_document_country_not_supported", "verification_document_directors_mismatch", "verification_document_dob_mismatch", "verification_document_duplicate_type", "verification_document_expired", "verification_document_failed_copy", "verification_document_failed_greyscale", "verification_document_failed_other", "verification_document_failed_test_mode", "verification_document_fraudulent", "verification_document_id_number_mismatch", "verification_document_id_number_missing", "verification_document_incomplete", "verification_document_invalid", "verification_document_issue_or_expiry_date_missing", "verification_document_manipulated", "verification_document_missing_back", "verification_document_missing_front", "verification_document_name_mismatch", "verification_document_name_missing", "verification_document_nationality_mismatch", "verification_document_not_readable", "verification_document_not_signed", "verification_document_not_uploaded", "verification_document_photo_mismatch", "verification_document_too_large", "verification_document_type_not_supported", "verification_extraneous_directors", "verification_failed_address_match", "verification_failed_authorizer_authority", "verification_failed_business_iec_number", "verification_failed_document_match", "verification_failed_id_number_match", "verification_failed_keyed_identity", "verification_failed_keyed_match", "verification_failed_name_match", "verification_failed_other", "verification_failed_representative_authority", "verification_failed_residential_address", "verification_failed_tax_id_match", "verification_failed_tax_id_not_issued", "verification_legal_entity_structure_mismatch", "verification_missing_directors", "verification_missing_executives", "verification_missing_owners", "verification_rejected_ownership_exemption_reason", "verification_requires_additional_memorandum_of_associations", "verification_requires_additional_proof_of_registration", "verification_supportability"]), reason: z.string().max(5000), requirement: z.string().max(5000)}); export const externalAccountRequirements = z.object({currently_due: z.array(z.string().max(5000)).nullable().optional(), errors: z.array(accountRequirementsError).nullable().optional(), past_due: z.array(z.string().max(5000)).nullable().optional(), pending_verification: z.array(z.string().max(5000)).nullable().optional()}); export const tokenCardNetworks = z.object({preferred: z.string().max(5000).nullable().optional()}); export const accountRequirementsAlternative = z.object({alternative_fields_due: z.array(z.string().max(5000)), original_fields_due: z.array(z.string().max(5000))}); export const accountFutureRequirements = z.object({alternatives: z.array(accountRequirementsAlternative).nullable().optional(), current_deadline: z.number().int().nullable().optional(), currently_due: z.array(z.string().max(5000)).nullable().optional(), disabled_reason: z.enum(["action_required.requested_capabilities", "listed", "other", "platform_paused", "rejected.fraud", "rejected.incomplete_verification", "rejected.listed", "rejected.other", "rejected.platform_fraud", "rejected.platform_other", "rejected.platform_terms_of_service", "rejected.terms_of_service", "requirements.past_due", "requirements.pending_verification", "under_review"]).nullable().optional(), errors: z.array(accountRequirementsError).nullable().optional(), eventually_due: z.array(z.string().max(5000)).nullable().optional(), past_due: z.array(z.string().max(5000)).nullable().optional(), pending_verification: z.array(z.string().max(5000)).nullable().optional()}); export const accountGroupMembership = z.object({payments_pricing: z.string().max(5000).nullable().optional()}); export const personAdditionalTosAcceptance = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const personAdditionalTosAcceptances = z.object({account: personAdditionalTosAcceptance.nullable().optional()}); export const legalEntityDob = z.object({day: z.number().int().nullable().optional(), month: z.number().int().nullable().optional(), year: z.number().int().nullable().optional()}); export const personFutureRequirements = z.object({alternatives: z.array(accountRequirementsAlternative).nullable().optional(), currently_due: z.array(z.string().max(5000)), errors: z.array(accountRequirementsError), eventually_due: z.array(z.string().max(5000)), past_due: z.array(z.string().max(5000)), pending_verification: z.array(z.string().max(5000))}); export const personRelationship = z.object({authorizer: z.boolean().nullable().optional(), director: z.boolean().nullable().optional(), executive: z.boolean().nullable().optional(), legal_guardian: z.boolean().nullable().optional(), owner: z.boolean().nullable().optional(), percent_ownership: z.number().nullable().optional(), representative: z.boolean().nullable().optional(), title: z.string().max(5000).nullable().optional()}); export const personRequirements = z.object({alternatives: z.array(accountRequirementsAlternative).nullable().optional(), currently_due: z.array(z.string().max(5000)), errors: z.array(accountRequirementsError), eventually_due: z.array(z.string().max(5000)), past_due: z.array(z.string().max(5000)), pending_verification: z.array(z.string().max(5000))}); export const personEthnicityDetails = z.object({ethnicity: z.array(z.enum(["cuban", "hispanic_or_latino", "mexican", "not_hispanic_or_latino", "other_hispanic_or_latino", "prefer_not_to_answer", "puerto_rican"])).nullable().optional(), ethnicity_other: z.string().max(5000).nullable().optional()}); export const personRaceDetails = z.object({race: z.array(z.enum(["african_american", "american_indian_or_alaska_native", "asian", "asian_indian", "black_or_african_american", "chinese", "ethiopian", "filipino", "guamanian_or_chamorro", "haitian", "jamaican", "japanese", "korean", "native_hawaiian", "native_hawaiian_or_other_pacific_islander", "nigerian", "other_asian", "other_black_or_african_american", "other_pacific_islander", "prefer_not_to_answer", "samoan", "somali", "vietnamese", "white"])).nullable().optional(), race_other: z.string().max(5000).nullable().optional()}); export const personUsCfpbData = z.object({ethnicity_details: personEthnicityDetails.nullable().optional(), race_details: personRaceDetails.nullable().optional(), self_identified_gender: z.string().max(5000).nullable().optional()}); export const legalEntityPersonVerificationDocument = z.object({back: z.union([z.string().max(5000), file]).nullable().optional(), details: z.string().max(5000).nullable().optional(), details_code: z.string().max(5000).nullable().optional(), front: z.union([z.string().max(5000), file]).nullable().optional()}); export const legalEntityPersonVerification = z.object({additional_document: legalEntityPersonVerificationDocument.nullable().optional(), details: z.string().max(5000).nullable().optional(), details_code: z.string().max(5000).nullable().optional(), document: legalEntityPersonVerificationDocument.optional(), status: z.string().max(5000)}); export const person = z.object({account: z.string().max(5000), additional_tos_acceptances: personAdditionalTosAcceptances.optional(), address: address.optional(), address_kana: legalEntityJapanAddress.nullable().optional(), address_kanji: legalEntityJapanAddress.nullable().optional(), created: z.number().int(), dob: legalEntityDob.optional(), email: z.string().max(5000).nullable().optional(), first_name: z.string().max(5000).nullable().optional(), first_name_kana: z.string().max(5000).nullable().optional(), first_name_kanji: z.string().max(5000).nullable().optional(), full_name_aliases: z.array(z.string().max(5000)).optional(), future_requirements: personFutureRequirements.nullable().optional(), gender: z.string().nullable().optional(), id: z.string().max(5000), id_number_provided: z.boolean().optional(), id_number_secondary_provided: z.boolean().optional(), last_name: z.string().max(5000).nullable().optional(), last_name_kana: z.string().max(5000).nullable().optional(), last_name_kanji: z.string().max(5000).nullable().optional(), maiden_name: z.string().max(5000).nullable().optional(), metadata: z.record(z.string(), z.string().max(500)).optional(), nationality: z.string().max(5000).nullable().optional(), object: z.literal("person"), phone: z.string().max(5000).nullable().optional(), political_exposure: z.enum(["existing", "none"]).optional(), registered_address: address.optional(), relationship: personRelationship.optional(), requirements: personRequirements.nullable().optional(), ssn_last_4_provided: z.boolean().optional(), us_cfpb_data: personUsCfpbData.nullable().optional(), verification: legalEntityPersonVerification.optional()}); export const accountRequirements = z.object({alternatives: z.array(accountRequirementsAlternative).nullable().optional(), current_deadline: z.number().int().nullable().optional(), currently_due: z.array(z.string().max(5000)).nullable().optional(), disabled_reason: z.enum(["action_required.requested_capabilities", "listed", "other", "platform_paused", "rejected.fraud", "rejected.incomplete_verification", "rejected.listed", "rejected.other", "rejected.platform_fraud", "rejected.platform_other", "rejected.platform_terms_of_service", "rejected.terms_of_service", "requirements.past_due", "requirements.pending_verification", "under_review"]).nullable().optional(), errors: z.array(accountRequirementsError).nullable().optional(), eventually_due: z.array(z.string().max(5000)).nullable().optional(), past_due: z.array(z.string().max(5000)).nullable().optional(), pending_verification: z.array(z.string().max(5000)).nullable().optional()}); export const accountBacsDebitPaymentsSettings = z.object({display_name: z.string().max(5000).nullable().optional(), service_user_number: z.string().max(5000).nullable().optional()}); export const accountBrandingSettings = z.object({icon: z.union([z.string().max(5000), file]).nullable().optional(), logo: z.union([z.string().max(5000), file]).nullable().optional(), primary_color: z.string().max(5000).nullable().optional(), secondary_color: z.string().max(5000).nullable().optional()}); export const cardIssuingAccountTermsOfService = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).optional()}); export const accountCardIssuingSettings = z.object({tos_acceptance: cardIssuingAccountTermsOfService.optional()}); export const accountDeclineChargeOn = z.object({avs_failure: z.boolean(), cvc_failure: z.boolean()}); export const accountCardPaymentsSettings = z.object({decline_on: accountDeclineChargeOn.optional(), statement_descriptor_prefix: z.string().max(5000).nullable().optional(), statement_descriptor_prefix_kana: z.string().max(5000).nullable().optional(), statement_descriptor_prefix_kanji: z.string().max(5000).nullable().optional()}); export const accountDashboardSettings = z.object({display_name: z.string().max(5000).nullable().optional(), timezone: z.string().max(5000).nullable().optional()}); export const taxIDsOwner = z.object({account: z.union([z.string().max(5000), z.lazy(() => account)]).optional(), application: z.union([z.string().max(5000), application]).optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer)]).optional(), customer_account: z.string().max(5000).nullable().optional(), type: z.enum(["account", "application", "customer", "self"])}); export const taxIdVerification = z.object({status: z.enum(["pending", "unavailable", "unverified", "verified"]), verified_address: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const taxId = z.object({country: z.string().max(5000).nullable().optional(), created: z.number().int(), customer: z.union([z.string().max(5000), z.lazy(() => customer)]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("tax_id"), owner: taxIDsOwner.nullable().optional(), type: z.enum(["ad_nrt", "ae_trn", "al_tin", "am_tin", "ao_tin", "ar_cuit", "au_abn", "au_arn", "aw_tin", "az_tin", "ba_tin", "bb_tin", "bd_bin", "bf_ifu", "bg_uic", "bh_vat", "bj_ifu", "bo_tin", "br_cnpj", "br_cpf", "bs_tin", "by_tin", "ca_bn", "ca_gst_hst", "ca_pst_bc", "ca_pst_mb", "ca_pst_sk", "ca_qst", "cd_nif", "ch_uid", "ch_vat", "cl_tin", "cm_niu", "cn_tin", "co_nit", "cr_tin", "cv_nif", "de_stn", "do_rcn", "ec_ruc", "eg_tin", "es_cif", "et_tin", "eu_oss_vat", "eu_vat", "fo_vat", "gb_vat", "ge_vat", "gi_tin", "gn_nif", "hk_br", "hr_oib", "hu_tin", "ic_nif", "id_npwp", "il_vat", "in_gst", "is_vat", "it_cf", "jp_cn", "jp_rn", "jp_trn", "ke_pin", "kg_tin", "kh_tin", "kr_brn", "kz_bin", "la_tin", "li_uid", "li_vat", "lk_vat", "ma_vat", "md_vat", "me_pib", "mk_vat", "mr_nif", "mx_rfc", "my_frp", "my_itn", "my_sst", "ng_tin", "no_vat", "no_voec", "np_pan", "nz_gst", "om_vat", "pe_ruc", "ph_tin", "pl_nip", "py_ruc", "ro_tin", "rs_pib", "ru_inn", "ru_kpp", "sa_vat", "sg_gst", "sg_uen", "si_tin", "sn_ninea", "sr_fin", "sv_nit", "th_vat", "tj_tin", "tr_tin", "tw_vat", "tz_vat", "ua_vat", "ug_tin", "unknown", "us_ein", "uy_ruc", "uz_tin", "uz_vat", "ve_rif", "vn_tin", "za_vat", "zm_tin", "zw_tin"]), value: z.string().max(5000), verification: taxIdVerification.nullable().optional()}); export const accountInvoicesSettings = z.object({default_account_tax_ids: z.array(z.union([z.string().max(5000), taxId])).nullable().optional(), hosted_payment_method_save: z.enum(["always", "never", "offer"]).nullable().optional()}); export const accountPaymentsSettings = z.object({statement_descriptor: z.string().max(5000).nullable().optional(), statement_descriptor_kana: z.string().max(5000).nullable().optional(), statement_descriptor_kanji: z.string().max(5000).nullable().optional()}); export const transferSchedule = z.object({delay_days: z.number().int(), interval: z.string().max(5000), monthly_anchor: z.number().int().optional(), monthly_payout_days: z.array(z.number().int()).optional(), weekly_anchor: z.string().max(5000).optional(), weekly_payout_days: z.array(z.enum(["friday", "monday", "thursday", "tuesday", "wednesday"])).optional()}); export const accountPayoutSettings = z.object({debit_negative_balances: z.boolean(), schedule: transferSchedule, statement_descriptor: z.string().max(5000).nullable().optional()}); export const accountPaypaySiteAccessibleSettings = z.object({}); export const accountPaypaySiteInDevelopmentSettings = z.object({password_provided: z.boolean().optional(), username: z.string().max(5000).nullable().optional()}); export const accountPaypaySiteRestrictedSettings = z.object({payment_flow_file: z.string().max(5000).nullable().optional()}); export const accountPaypaySiteSettings = z.object({accessible: accountPaypaySiteAccessibleSettings.optional(), in_development: accountPaypaySiteInDevelopmentSettings.optional(), restricted: accountPaypaySiteRestrictedSettings.optional(), type: z.enum(["accessible", "in_development", "restricted"]).optional()}); export const accountPaypayPaymentsSettings = z.object({additional_files: z.array(z.string().max(5000)).optional(), goods_type: z.enum(["digital_content", "other"]).optional(), site: accountPaypaySiteSettings.optional()}); export const accountSepaDebitPaymentsSettings = z.object({creditor_id: z.string().max(5000).optional()}); export const accountTermsOfService = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).optional()}); export const accountTreasurySettings = z.object({tos_acceptance: accountTermsOfService.optional()}); export const accountSettings = z.object({bacs_debit_payments: accountBacsDebitPaymentsSettings.optional(), branding: accountBrandingSettings, card_issuing: accountCardIssuingSettings.optional(), card_payments: accountCardPaymentsSettings, dashboard: accountDashboardSettings, invoices: accountInvoicesSettings.optional(), payments: accountPaymentsSettings, payouts: accountPayoutSettings.optional(), paypay_payments: accountPaypayPaymentsSettings.optional(), sepa_debit_payments: accountSepaDebitPaymentsSettings.optional(), treasury: accountTreasurySettings.optional()}); export const accountTosAcceptance = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), service_agreement: z.string().max(5000).optional(), user_agent: z.string().max(5000).nullable().optional()}); export const account: z.ZodType = z.object({business_profile: accountBusinessProfile.nullable().optional(), business_type: z.enum(["company", "government_entity", "individual", "non_profit"]).nullable().optional(), capabilities: accountCapabilities.optional(), charges_enabled: z.boolean().optional(), company: legalEntityCompany.optional(), controller: accountUnificationAccountController.optional(), country: z.string().max(5000).optional(), created: z.number().int().optional(), default_currency: z.string().max(5000).optional(), details_submitted: z.boolean().optional(), email: z.string().max(5000).nullable().optional(), external_accounts: z.object({data: z.array(z.union([z.object({account: z.union([z.string().max(5000), z.lazy(() => account)]).nullable().optional(), account_holder_name: z.string().max(5000).nullable().optional(), account_holder_type: z.string().max(5000).nullable().optional(), account_type: z.string().max(5000).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), future_requirements: externalAccountRequirements.nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("bank_account"), requirements: externalAccountRequirements.nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), status: z.string().max(5000)}), z.object({account: z.union([z.string().max(5000), z.lazy(() => account)]).nullable().optional(), address_city: z.string().max(5000).nullable().optional(), address_country: z.string().max(5000).nullable().optional(), address_line1: z.string().max(5000).nullable().optional(), address_line1_check: z.string().max(5000).nullable().optional(), address_line2: z.string().max(5000).nullable().optional(), address_state: z.string().max(5000).nullable().optional(), address_zip: z.string().max(5000).nullable().optional(), address_zip_check: z.string().max(5000).nullable().optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), brand: z.string().max(5000), country: z.string().max(5000).nullable().optional(), currency: z.string().nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), dynamic_last4: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), name: z.string().max(5000).nullable().optional(), networks: tokenCardNetworks.optional(), object: z.literal("card"), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), status: z.string().max(5000).nullable().optional(), tokenization_method: z.string().max(5000).nullable().optional()})])), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), future_requirements: accountFutureRequirements.optional(), groups: accountGroupMembership.nullable().optional(), id: z.string().max(5000), individual: person.optional(), metadata: z.record(z.string(), z.string().max(500)).optional(), object: z.literal("account"), payouts_enabled: z.boolean().optional(), requirements: accountRequirements.optional(), settings: accountSettings.nullable().optional(), tos_acceptance: accountTosAcceptance.optional(), type: z.enum(["custom", "express", "none", "standard"]).optional()}); export const bankAccount = z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), account_holder_name: z.string().max(5000).nullable().optional(), account_holder_type: z.string().max(5000).nullable().optional(), account_type: z.string().max(5000).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), future_requirements: externalAccountRequirements.nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("bank_account"), requirements: externalAccountRequirements.nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), status: z.string().max(5000)}); export const card = z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), address_city: z.string().max(5000).nullable().optional(), address_country: z.string().max(5000).nullable().optional(), address_line1: z.string().max(5000).nullable().optional(), address_line1_check: z.string().max(5000).nullable().optional(), address_line2: z.string().max(5000).nullable().optional(), address_state: z.string().max(5000).nullable().optional(), address_zip: z.string().max(5000).nullable().optional(), address_zip_check: z.string().max(5000).nullable().optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), brand: z.string().max(5000), country: z.string().max(5000).nullable().optional(), currency: z.string().nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), dynamic_last4: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), name: z.string().max(5000).nullable().optional(), networks: tokenCardNetworks.optional(), object: z.literal("card"), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), status: z.string().max(5000).nullable().optional(), tokenization_method: z.string().max(5000).nullable().optional()}); export const sourceTypeAchCreditTransfer = z.object({account_number: z.string().nullable().optional(), bank_name: z.string().nullable().optional(), fingerprint: z.string().nullable().optional(), refund_account_holder_name: z.string().nullable().optional(), refund_account_holder_type: z.string().nullable().optional(), refund_routing_number: z.string().nullable().optional(), routing_number: z.string().nullable().optional(), swift_code: z.string().nullable().optional()}); export const sourceTypeAchDebit = z.object({bank_name: z.string().nullable().optional(), country: z.string().nullable().optional(), fingerprint: z.string().nullable().optional(), last4: z.string().nullable().optional(), routing_number: z.string().nullable().optional(), type: z.string().nullable().optional()}); export const sourceTypeAcssDebit = z.object({bank_address_city: z.string().nullable().optional(), bank_address_line_1: z.string().nullable().optional(), bank_address_line_2: z.string().nullable().optional(), bank_address_postal_code: z.string().nullable().optional(), bank_name: z.string().nullable().optional(), category: z.string().nullable().optional(), country: z.string().nullable().optional(), fingerprint: z.string().nullable().optional(), last4: z.string().nullable().optional(), routing_number: z.string().nullable().optional()}); export const sourceTypeAlipay = z.object({data_string: z.string().nullable().optional(), native_url: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceTypeAuBecsDebit = z.object({bsb_number: z.string().nullable().optional(), fingerprint: z.string().nullable().optional(), last4: z.string().nullable().optional()}); export const sourceTypeBancontact = z.object({bank_code: z.string().nullable().optional(), bank_name: z.string().nullable().optional(), bic: z.string().nullable().optional(), iban_last4: z.string().nullable().optional(), preferred_language: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceTypeCard = z.object({address_line1_check: z.string().nullable().optional(), address_zip_check: z.string().nullable().optional(), brand: z.string().nullable().optional(), country: z.string().nullable().optional(), cvc_check: z.string().nullable().optional(), dynamic_last4: z.string().nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), fingerprint: z.string().optional(), funding: z.string().nullable().optional(), last4: z.string().nullable().optional(), name: z.string().nullable().optional(), three_d_secure: z.string().optional(), tokenization_method: z.string().nullable().optional()}); export const sourceTypeCardPresent = z.object({application_cryptogram: z.string().optional(), application_preferred_name: z.string().optional(), authorization_code: z.string().nullable().optional(), authorization_response_code: z.string().optional(), brand: z.string().nullable().optional(), country: z.string().nullable().optional(), cvm_type: z.string().optional(), data_type: z.string().nullable().optional(), dedicated_file_name: z.string().optional(), emv_auth_data: z.string().optional(), evidence_customer_signature: z.string().nullable().optional(), evidence_transaction_certificate: z.string().nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), fingerprint: z.string().optional(), funding: z.string().nullable().optional(), last4: z.string().nullable().optional(), pos_device_id: z.string().nullable().optional(), pos_entry_mode: z.string().optional(), read_method: z.string().nullable().optional(), reader: z.string().nullable().optional(), terminal_verification_results: z.string().optional(), transaction_status_information: z.string().optional()}); export const sourceCodeVerificationFlow = z.object({attempts_remaining: z.number().int(), status: z.string().max(5000)}); export const sourceTypeEps = z.object({reference: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceTypeGiropay = z.object({bank_code: z.string().nullable().optional(), bank_name: z.string().nullable().optional(), bic: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceTypeIdeal = z.object({bank: z.string().nullable().optional(), bic: z.string().nullable().optional(), iban_last4: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceTypeKlarna = z.object({background_image_url: z.string().optional(), client_token: z.string().nullable().optional(), first_name: z.string().optional(), last_name: z.string().optional(), locale: z.string().optional(), logo_url: z.string().optional(), page_title: z.string().optional(), pay_later_asset_urls_descriptive: z.string().optional(), pay_later_asset_urls_standard: z.string().optional(), pay_later_name: z.string().optional(), pay_later_redirect_url: z.string().optional(), pay_now_asset_urls_descriptive: z.string().optional(), pay_now_asset_urls_standard: z.string().optional(), pay_now_name: z.string().optional(), pay_now_redirect_url: z.string().optional(), pay_over_time_asset_urls_descriptive: z.string().optional(), pay_over_time_asset_urls_standard: z.string().optional(), pay_over_time_name: z.string().optional(), pay_over_time_redirect_url: z.string().optional(), payment_method_categories: z.string().optional(), purchase_country: z.string().optional(), purchase_type: z.string().optional(), redirect_url: z.string().optional(), shipping_delay: z.number().int().optional(), shipping_first_name: z.string().optional(), shipping_last_name: z.string().optional()}); export const sourceTypeMultibanco = z.object({entity: z.string().nullable().optional(), reference: z.string().nullable().optional(), refund_account_holder_address_city: z.string().nullable().optional(), refund_account_holder_address_country: z.string().nullable().optional(), refund_account_holder_address_line1: z.string().nullable().optional(), refund_account_holder_address_line2: z.string().nullable().optional(), refund_account_holder_address_postal_code: z.string().nullable().optional(), refund_account_holder_address_state: z.string().nullable().optional(), refund_account_holder_name: z.string().nullable().optional(), refund_iban: z.string().nullable().optional()}); export const sourceOwner = z.object({address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), phone: z.string().max(5000).nullable().optional(), verified_address: address.nullable().optional(), verified_email: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional(), verified_phone: z.string().max(5000).nullable().optional()}); export const sourceTypeP24 = z.object({reference: z.string().nullable().optional()}); export const sourceReceiverFlow = z.object({address: z.string().max(5000).nullable().optional(), amount_charged: z.number().int(), amount_received: z.number().int(), amount_returned: z.number().int(), refund_attributes_method: z.string().max(5000), refund_attributes_status: z.string().max(5000)}); export const sourceRedirectFlow = z.object({failure_reason: z.string().max(5000).nullable().optional(), return_url: z.string().max(5000), status: z.string().max(5000), url: z.string().max(2048)}); export const sourceTypeSepaDebit = z.object({bank_code: z.string().nullable().optional(), branch_code: z.string().nullable().optional(), country: z.string().nullable().optional(), fingerprint: z.string().nullable().optional(), last4: z.string().nullable().optional(), mandate_reference: z.string().nullable().optional(), mandate_url: z.string().nullable().optional()}); export const sourceTypeSofort = z.object({bank_code: z.string().nullable().optional(), bank_name: z.string().nullable().optional(), bic: z.string().nullable().optional(), country: z.string().nullable().optional(), iban_last4: z.string().nullable().optional(), preferred_language: z.string().nullable().optional(), statement_descriptor: z.string().nullable().optional()}); export const sourceOrderItem = z.object({amount: z.number().int().nullable().optional(), currency: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), parent: z.string().max(5000).nullable().optional(), quantity: z.number().int().optional(), type: z.string().max(5000).nullable().optional()}); export const shipping = z.object({address: address.optional(), carrier: z.string().max(5000).nullable().optional(), name: z.string().max(5000).optional(), phone: z.string().max(5000).nullable().optional(), tracking_number: z.string().max(5000).nullable().optional()}); export const sourceOrder = z.object({amount: z.number().int(), currency: z.string(), email: z.string().max(5000).optional(), items: z.array(sourceOrderItem).nullable().optional(), shipping: shipping.optional()}); export const sourceTypeThreeDSecure = z.object({address_line1_check: z.string().nullable().optional(), address_zip_check: z.string().nullable().optional(), authenticated: z.boolean().nullable().optional(), brand: z.string().nullable().optional(), card: z.string().nullable().optional(), country: z.string().nullable().optional(), customer: z.string().nullable().optional(), cvc_check: z.string().nullable().optional(), dynamic_last4: z.string().nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), fingerprint: z.string().optional(), funding: z.string().nullable().optional(), last4: z.string().nullable().optional(), name: z.string().nullable().optional(), three_d_secure: z.string().optional(), tokenization_method: z.string().nullable().optional()}); export const sourceTypeWechat = z.object({prepay_id: z.string().optional(), qr_code_url: z.string().nullable().optional(), statement_descriptor: z.string().optional()}); export const source = z.object({ach_credit_transfer: sourceTypeAchCreditTransfer.optional(), ach_debit: sourceTypeAchDebit.optional(), acss_debit: sourceTypeAcssDebit.optional(), alipay: sourceTypeAlipay.optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), amount: z.number().int().nullable().optional(), au_becs_debit: sourceTypeAuBecsDebit.optional(), bancontact: sourceTypeBancontact.optional(), card: sourceTypeCard.optional(), card_present: sourceTypeCardPresent.optional(), client_secret: z.string().max(5000), code_verification: sourceCodeVerificationFlow.optional(), created: z.number().int(), currency: z.string().nullable().optional(), customer: z.string().max(5000).optional(), eps: sourceTypeEps.optional(), flow: z.string().max(5000), giropay: sourceTypeGiropay.optional(), id: z.string().max(5000), ideal: sourceTypeIdeal.optional(), klarna: sourceTypeKlarna.optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), multibanco: sourceTypeMultibanco.optional(), object: z.literal("source"), owner: sourceOwner.nullable().optional(), p24: sourceTypeP24.optional(), receiver: sourceReceiverFlow.optional(), redirect: sourceRedirectFlow.optional(), sepa_debit: sourceTypeSepaDebit.optional(), sofort: sourceTypeSofort.optional(), source_order: sourceOrder.optional(), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.string().max(5000), three_d_secure: sourceTypeThreeDSecure.optional(), type: z.enum(["ach_credit_transfer", "ach_debit", "acss_debit", "alipay", "au_becs_debit", "bancontact", "card", "card_present", "eps", "giropay", "ideal", "klarna", "multibanco", "p24", "sepa_debit", "sofort", "three_d_secure", "wechat"]), usage: z.string().max(5000).nullable().optional(), wechat: sourceTypeWechat.optional()}); export const couponAppliesTo = z.object({products: z.array(z.string().max(5000))}); export const couponCurrencyOption = z.object({amount_off: z.number().int()}); export const coupon = z.object({amount_off: z.number().int().nullable().optional(), applies_to: couponAppliesTo.optional(), created: z.number().int(), currency: z.string().nullable().optional(), currency_options: z.record(z.string(), couponCurrencyOption).optional(), duration: z.enum(["forever", "once", "repeating"]), duration_in_months: z.number().int().nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), max_redemptions: z.number().int().nullable().optional(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), name: z.string().max(5000).nullable().optional(), object: z.literal("coupon"), percent_off: z.number().nullable().optional(), redeem_by: z.number().int().nullable().optional(), times_redeemed: z.number().int(), valid: z.boolean()}); export const promotionCodesResourcePromotion = z.object({coupon: z.union([z.string().max(5000), coupon]).nullable().optional(), type: z.literal("coupon")}); export const promotionCodeCurrencyOption = z.object({minimum_amount: z.number().int()}); export const promotionCodesResourceRestrictions = z.object({currency_options: z.record(z.string(), promotionCodeCurrencyOption).optional(), first_time_transaction: z.boolean(), minimum_amount: z.number().int().nullable().optional(), minimum_amount_currency: z.string().max(5000).nullable().optional()}); export const promotionCode = z.object({active: z.boolean(), code: z.string().max(5000), created: z.number().int(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), expires_at: z.number().int().nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), max_redemptions: z.number().int().nullable().optional(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("promotion_code"), promotion: promotionCodesResourcePromotion, restrictions: promotionCodesResourceRestrictions, times_redeemed: z.number().int()}); export const discountSource = z.object({coupon: z.union([z.string().max(5000), coupon]).nullable().optional(), type: z.literal("coupon")}); export const discount = z.object({checkout_session: z.string().max(5000).nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), end: z.number().int().nullable().optional(), id: z.string().max(5000), invoice: z.string().max(5000).nullable().optional(), invoice_item: z.string().max(5000).nullable().optional(), object: z.literal("discount"), promotion_code: z.union([z.string().max(5000), promotionCode]).nullable().optional(), source: discountSource, start: z.number().int(), subscription: z.string().max(5000).nullable().optional(), subscription_item: z.string().max(5000).nullable().optional()}); export const invoiceSettingCustomField = z.object({name: z.string().max(5000), value: z.string().max(5000)}); export const invoiceSettingCustomerRenderingOptions = z.object({amount_tax_display: z.string().max(5000).nullable().optional(), template: z.string().max(5000).nullable().optional()}); export const invoiceSettingCustomerSetting = z.object({custom_fields: z.array(invoiceSettingCustomField).nullable().optional(), default_payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), footer: z.string().max(5000).nullable().optional(), rendering_options: invoiceSettingCustomerRenderingOptions.nullable().optional()}); export const deletedApplication = z.object({deleted: z.literal(true), id: z.string().max(5000), name: z.string().max(5000).nullable().optional(), object: z.literal("application")}); export const connectAccountReference = z.object({account: z.union([z.string().max(5000), account]).optional(), type: z.enum(["account", "self"])}); export const subscriptionAutomaticTax = z.object({disabled_reason: z.literal("requires_location_inputs").nullable().optional(), enabled: z.boolean(), liability: connectAccountReference.nullable().optional()}); export const subscriptionsResourceBillingCycleAnchorConfig = z.object({day_of_month: z.number().int(), hour: z.number().int().nullable().optional(), minute: z.number().int().nullable().optional(), month: z.number().int().nullable().optional(), second: z.number().int().nullable().optional()}); export const subscriptionsResourceBillingModeFlexible = z.object({proration_discounts: z.enum(["included", "itemized"]).optional()}); export const subscriptionsResourceBillingMode = z.object({flexible: subscriptionsResourceBillingModeFlexible.nullable().optional(), type: z.enum(["classic", "flexible"]), updated_at: z.number().int().optional()}); export const customUnitAmount = z.object({maximum: z.number().int().nullable().optional(), minimum: z.number().int().nullable().optional(), preset: z.number().int().nullable().optional()}); export const priceTier = z.object({flat_amount: z.number().int().nullable().optional(), flat_amount_decimal: z.string().nullable().optional(), unit_amount: z.number().int().nullable().optional(), unit_amount_decimal: z.string().nullable().optional(), up_to: z.number().int().nullable().optional()}); export const currencyOption = z.object({custom_unit_amount: customUnitAmount.nullable().optional(), tax_behavior: z.enum(["exclusive", "inclusive", "unspecified"]).nullable().optional(), tiers: z.array(priceTier).optional(), unit_amount: z.number().int().nullable().optional(), unit_amount_decimal: z.string().nullable().optional()}); export const productMarketingFeature = z.object({name: z.string().max(5000).optional()}); export const packageDimensions = z.object({height: z.number(), length: z.number(), weight: z.number(), width: z.number()}); export const taxCodeRequirements = z.object({performance_location: z.enum(["optional", "required"])}); export const taxCode = z.object({description: z.string().max(5000), id: z.string().max(5000), name: z.string().max(5000), object: z.literal("tax_code"), requirements: taxCodeRequirements.nullable().optional()}); export const taxProductTaxDetailsResourceTaxDetails = z.object({performance_location: z.string().max(5000).nullable().optional(), tax_code: z.string().max(5000).nullable().optional()}); export const product = z.object({active: z.boolean(), created: z.number().int(), default_price: z.union([z.string().max(5000), z.lazy(() => price)]).nullable().optional(), description: z.string().max(5000).nullable().optional(), id: z.string().max(5000), images: z.array(z.string().max(5000)), livemode: z.boolean(), marketing_features: z.array(productMarketingFeature), metadata: z.record(z.string(), z.string().max(500)), name: z.string().max(5000), object: z.literal("product"), package_dimensions: packageDimensions.nullable().optional(), shippable: z.boolean().nullable().optional(), statement_descriptor: z.string().max(5000).nullable().optional(), tax_code: z.union([z.string().max(5000), taxCode]).nullable().optional(), tax_details: taxProductTaxDetailsResourceTaxDetails.nullable().optional(), unit_label: z.string().max(5000).nullable().optional(), updated: z.number().int(), url: z.string().max(2048).nullable().optional()}); export const deletedProduct = z.object({deleted: z.literal(true), id: z.string().max(5000), object: z.literal("product")}); export const recurring = z.object({interval: z.enum(["day", "month", "week", "year"]), interval_count: z.number().int(), meter: z.string().max(5000).nullable().optional(), usage_type: z.enum(["licensed", "metered"])}); export const transformQuantity = z.object({divide_by: z.number().int(), round: z.enum(["down", "up"])}); export const price: z.ZodType = z.object({active: z.boolean(), billing_scheme: z.enum(["per_unit", "tiered"]), created: z.number().int(), currency: z.string(), currency_options: z.record(z.string(), currencyOption).optional(), custom_unit_amount: customUnitAmount.nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), lookup_key: z.string().max(5000).nullable().optional(), metadata: z.record(z.string(), z.string().max(500)), nickname: z.string().max(5000).nullable().optional(), object: z.literal("price"), product: z.union([z.string().max(5000), product, deletedProduct]), recurring: recurring.nullable().optional(), tax_behavior: z.enum(["exclusive", "inclusive", "unspecified"]).nullable().optional(), tiers: z.array(priceTier).optional(), tiers_mode: z.enum(["graduated", "volume"]).nullable().optional(), transform_quantity: transformQuantity.nullable().optional(), type: z.enum(["one_time", "recurring"]), unit_amount: z.number().int().nullable().optional(), unit_amount_decimal: z.string().nullable().optional()}); export const subscriptionsResourceBillingSchedulesAppliesTo = z.object({price: z.union([z.string().max(5000), price]).nullable().optional(), type: z.literal("price")}); export const subscriptionsResourceBillingSchedulesBillUntilDuration = z.object({interval: z.enum(["day", "month", "week", "year"]), interval_count: z.number().int().nullable().optional()}); export const subscriptionsResourceBillingSchedulesBillUntil = z.object({computed_timestamp: z.number().int(), duration: subscriptionsResourceBillingSchedulesBillUntilDuration.nullable().optional(), timestamp: z.number().int().nullable().optional(), type: z.enum(["duration", "timestamp"])}); export const subscriptionsResourceBillingSchedules = z.object({applies_to: z.array(subscriptionsResourceBillingSchedulesAppliesTo).nullable().optional(), bill_until: subscriptionsResourceBillingSchedulesBillUntil, key: z.string().max(5000)}); export const subscriptionBillingThresholds = z.object({amount_gte: z.number().int().nullable().optional(), reset_billing_cycle_anchor: z.boolean().nullable().optional()}); export const feedbackOptionsStatusTransitions = z.object({deactivated_at: z.number().int().nullable().optional()}); export const billingFeedbackOption = z.object({description: z.string().max(5000), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("billing.feedback_option"), status: z.enum(["active", "inactive"]), status_transitions: feedbackOptionsStatusTransitions}); export const cancellationDetails = z.object({comment: z.string().max(5000).nullable().optional(), feedback: z.enum(["customer_service", "low_quality", "missing_features", "other", "switched_service", "too_complex", "too_expensive", "unused"]).nullable().optional(), feedback_option: z.union([z.string().max(5000), billingFeedbackOption]).nullable().optional(), reason: z.enum(["canceled_by_retention_policy", "cancellation_requested", "payment_disputed", "payment_failed"]).nullable().optional()}); export const taxRateFlatAmount = z.object({amount: z.number().int(), currency: z.string().max(5000)}); export const taxRate = z.object({active: z.boolean(), country: z.string().max(5000).nullable().optional(), created: z.number().int(), description: z.string().max(5000).nullable().optional(), display_name: z.string().max(5000), effective_percentage: z.number().nullable().optional(), flat_amount: taxRateFlatAmount.nullable().optional(), id: z.string().max(5000), inclusive: z.boolean(), jurisdiction: z.string().max(5000).nullable().optional(), jurisdiction_level: z.enum(["city", "country", "county", "district", "multiple", "state"]).nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("tax_rate"), percentage: z.number(), rate_type: z.enum(["flat_amount", "percentage"]).nullable().optional(), state: z.string().max(5000).nullable().optional(), tax_type: z.enum(["amusement_tax", "communications_tax", "digital_excise_tax", "gst", "hst", "igst", "jct", "lease_tax", "mass_transit_parking_tax", "parking_tax", "pst", "qst", "retail_delivery_fee", "rst", "sales_tax", "service_tax", "utility_users_tax", "vat"]).nullable().optional()}); export const deletedTaxId = z.object({deleted: z.literal(true), id: z.string().max(5000), object: z.literal("tax_id")}); export const subscriptionsResourceSubscriptionInvoiceSettings = z.object({account_tax_ids: z.array(z.union([z.string().max(5000), taxId, deletedTaxId])).nullable().optional(), custom_fields: z.array(invoiceSettingCustomField).nullable().optional(), description: z.string().max(5000).nullable().optional(), footer: z.string().max(5000).nullable().optional(), issuer: connectAccountReference}); export const subscriptionItemBillingThresholds = z.object({usage_gte: z.number().int().nullable().optional()}); export const subscriptionsTrialsResourceCurrentTrial = z.object({end_date: z.number().int(), start_date: z.number().int(), trial_offer: z.string().max(5000)}); export const subscriptionItem = z.object({billed_until: z.number().int().optional(), billing_thresholds: subscriptionItemBillingThresholds.nullable().optional(), created: z.number().int(), current_period_end: z.number().int(), current_period_start: z.number().int(), current_trial: subscriptionsTrialsResourceCurrentTrial.nullable().optional(), discounts: z.array(z.union([z.string().max(5000), discount])), id: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("subscription_item"), price: price, quantity: z.number().int().optional(), subscription: z.string().max(5000), tax_rates: z.array(taxRate).nullable().optional()}); export const automaticTax = z.object({disabled_reason: z.enum(["finalization_requires_location_inputs", "finalization_system_error"]).nullable().optional(), enabled: z.boolean(), liability: connectAccountReference.nullable().optional(), provider: z.string().max(5000).nullable().optional(), status: z.enum(["complete", "failed", "requires_location_inputs"]).nullable().optional()}); export const invoicesResourceConfirmationSecret = z.object({client_secret: z.string().max(5000), type: z.string().max(5000)}); export const invoicesResourceInvoiceTaxId = z.object({type: z.enum(["ad_nrt", "ae_trn", "al_tin", "am_tin", "ao_tin", "ar_cuit", "au_abn", "au_arn", "aw_tin", "az_tin", "ba_tin", "bb_tin", "bd_bin", "bf_ifu", "bg_uic", "bh_vat", "bj_ifu", "bo_tin", "br_cnpj", "br_cpf", "bs_tin", "by_tin", "ca_bn", "ca_gst_hst", "ca_pst_bc", "ca_pst_mb", "ca_pst_sk", "ca_qst", "cd_nif", "ch_uid", "ch_vat", "cl_tin", "cm_niu", "cn_tin", "co_nit", "cr_tin", "cv_nif", "de_stn", "do_rcn", "ec_ruc", "eg_tin", "es_cif", "et_tin", "eu_oss_vat", "eu_vat", "fo_vat", "gb_vat", "ge_vat", "gi_tin", "gn_nif", "hk_br", "hr_oib", "hu_tin", "ic_nif", "id_npwp", "il_vat", "in_gst", "is_vat", "it_cf", "jp_cn", "jp_rn", "jp_trn", "ke_pin", "kg_tin", "kh_tin", "kr_brn", "kz_bin", "la_tin", "li_uid", "li_vat", "lk_vat", "ma_vat", "md_vat", "me_pib", "mk_vat", "mr_nif", "mx_rfc", "my_frp", "my_itn", "my_sst", "ng_tin", "no_vat", "no_voec", "np_pan", "nz_gst", "om_vat", "pe_ruc", "ph_tin", "pl_nip", "py_ruc", "ro_tin", "rs_pib", "ru_inn", "ru_kpp", "sa_vat", "sg_gst", "sg_uen", "si_tin", "sn_ninea", "sr_fin", "sv_nit", "th_vat", "tj_tin", "tr_tin", "tw_vat", "tz_vat", "ua_vat", "ug_tin", "unknown", "us_ein", "uy_ruc", "uz_tin", "uz_vat", "ve_rif", "vn_tin", "za_vat", "zm_tin", "zw_tin"]), value: z.string().max(5000).nullable().optional()}); export const deletedDiscount = z.object({checkout_session: z.string().max(5000).nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), deleted: z.literal(true), id: z.string().max(5000), invoice: z.string().max(5000).nullable().optional(), invoice_item: z.string().max(5000).nullable().optional(), object: z.literal("discount"), promotion_code: z.union([z.string().max(5000), promotionCode]).nullable().optional(), source: discountSource, start: z.number().int(), subscription: z.string().max(5000).nullable().optional(), subscription_item: z.string().max(5000).nullable().optional()}); export const invoicesResourceFromInvoice = z.object({action: z.string().max(5000), invoice: z.union([z.string().max(5000), z.lazy(() => invoice)])}); export const paymentFlowsAmountDetailsResourceError = z.object({code: z.enum(["amount_details_amount_mismatch", "amount_details_tax_shipping_discount_greater_than_amount"]).nullable().optional(), message: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsCardPaymentIntentAmountDetailsLineItemPaymentMethodOptions = z.object({commodity_code: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsCardPresentAmountDetailsLineItemPaymentMethodOptions = z.object({commodity_code: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsKlarnaPaymentIntentAmountDetailsLineItemPaymentMethodOptions = z.object({image_url: z.string().max(2048).nullable().optional(), product_url: z.string().max(2048).nullable().optional(), reference: z.string().max(255).nullable().optional(), subscription_reference: z.string().max(2048).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsPaypalAmountDetailsLineItemPaymentMethodOptions = z.object({category: z.enum(["digital_goods", "donation", "physical_goods"]).optional(), description: z.string().max(5000).optional(), sold_by: z.string().max(5000).optional()}); export const paymentFlowsAmountDetailsResourceLineItemsListResourceLineItemResourcePaymentMethodOptions = z.object({card: paymentFlowsPrivatePaymentMethodsCardPaymentIntentAmountDetailsLineItemPaymentMethodOptions.optional(), card_present: paymentFlowsPrivatePaymentMethodsCardPresentAmountDetailsLineItemPaymentMethodOptions.optional(), klarna: paymentFlowsPrivatePaymentMethodsKlarnaPaymentIntentAmountDetailsLineItemPaymentMethodOptions.optional(), paypal: paymentFlowsPrivatePaymentMethodsPaypalAmountDetailsLineItemPaymentMethodOptions.optional()}); export const paymentFlowsAmountDetailsResourceLineItemsListResourceLineItemResourceTax = z.object({total_tax_amount: z.number().int()}); export const paymentIntentAmountDetailsLineItem = z.object({discount_amount: z.number().int().nullable().optional(), id: z.string().max(5000), object: z.literal("payment_intent_amount_details_line_item"), payment_method_options: paymentFlowsAmountDetailsResourceLineItemsListResourceLineItemResourcePaymentMethodOptions.nullable().optional(), product_code: z.string().max(5000).nullable().optional(), product_name: z.string().max(5000), quantity: z.number().int(), tax: paymentFlowsAmountDetailsResourceLineItemsListResourceLineItemResourceTax.nullable().optional(), unit_cost: z.number().int(), unit_of_measure: z.string().max(5000).nullable().optional()}); export const paymentFlowsAmountDetailsResourceShipping = z.object({amount: z.number().int().nullable().optional(), from_postal_code: z.string().max(5000).nullable().optional(), to_postal_code: z.string().max(5000).nullable().optional()}); export const paymentFlowsAmountDetailsResourceTax = z.object({total_tax_amount: z.number().int().nullable().optional()}); export const paymentFlowsAmountDetailsClientResourceTip = z.object({amount: z.number().int().optional()}); export const paymentFlowsAmountDetails = z.object({discount_amount: z.number().int().optional(), error: paymentFlowsAmountDetailsResourceError.optional(), line_items: z.object({data: z.array(paymentIntentAmountDetailsLineItem), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), shipping: paymentFlowsAmountDetailsResourceShipping.optional(), tax: paymentFlowsAmountDetailsResourceTax.optional(), tip: paymentFlowsAmountDetailsClientResourceTip.optional()}); export const paymentFlowsAmountDetailsClient = z.object({tip: paymentFlowsAmountDetailsClientResourceTip.optional()}); export const paymentFlowsAutomaticPaymentMethodsPaymentIntent = z.object({allow_redirects: z.enum(["always", "never"]).optional(), enabled: z.boolean()}); export const paymentFlowsPaymentIntentAsyncWorkflowsResourceInputsResourceTax = z.object({calculation: z.string().max(5000)}); export const paymentFlowsPaymentIntentAsyncWorkflowsResourceInputs = z.object({tax: paymentFlowsPaymentIntentAsyncWorkflowsResourceInputsResourceTax.optional()}); export const paymentFlowsPaymentIntentAsyncWorkflows = z.object({inputs: paymentFlowsPaymentIntentAsyncWorkflowsResourceInputs.optional()}); export const fee = z.object({amount: z.number().int(), application: z.string().max(5000).nullable().optional(), currency: z.string(), description: z.string().max(5000).nullable().optional(), type: z.string().max(5000)}); export const connectCollectionTransfer = z.object({amount: z.number().int(), currency: z.string(), destination: z.union([z.string().max(5000), account]), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("connect_collection_transfer")}); export const customerBalanceResourceCashBalanceTransactionResourceAdjustedForOverdraft = z.object({balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]), linked_transaction: z.union([z.string().max(5000), z.lazy(() => customerCashBalanceTransaction)])}); export const customerBalanceResourceCashBalanceTransactionResourceAppliedToPaymentTransaction = z.object({payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)])}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceEuBankTransfer = z.object({bic: z.string().max(5000).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), sender_name: z.string().max(5000).nullable().optional()}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceGbBankTransfer = z.object({account_number_last4: z.string().max(5000).nullable().optional(), sender_name: z.string().max(5000).nullable().optional(), sort_code: z.string().max(5000).nullable().optional()}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceJpBankTransfer = z.object({sender_bank: z.string().max(5000).nullable().optional(), sender_branch: z.string().max(5000).nullable().optional(), sender_name: z.string().max(5000).nullable().optional()}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceUsBankTransfer = z.object({network: z.enum(["ach", "domestic_wire_us", "swift"]).optional(), sender_name: z.string().max(5000).nullable().optional()}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransfer = z.object({eu_bank_transfer: customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceEuBankTransfer.optional(), gb_bank_transfer: customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceGbBankTransfer.optional(), jp_bank_transfer: customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceJpBankTransfer.optional(), reference: z.string().max(5000).nullable().optional(), type: z.enum(["eu_bank_transfer", "gb_bank_transfer", "jp_bank_transfer", "mx_bank_transfer", "us_bank_transfer"]), us_bank_transfer: customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceUsBankTransfer.optional()}); export const customerBalanceResourceCashBalanceTransactionResourceFundedTransaction = z.object({bank_transfer: customerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransfer}); export const destinationDetailsUnimplemented = z.object({}); export const refundDestinationDetailsBlik = z.object({network_decline_code: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsBrBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsCard = z.object({reference: z.string().max(5000).optional(), reference_status: z.string().max(5000).optional(), reference_type: z.string().max(5000).optional(), type: z.enum(["pending", "refund", "reversal"])}); export const refundDestinationDetailsCrypto = z.object({reference: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsEuBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsGbBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsJpBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsMbWay = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsMultibanco = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsMxBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsP24 = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsPaypal = z.object({network_decline_code: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsSwish = z.object({network_decline_code: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsThBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetailsUsBankTransfer = z.object({reference: z.string().max(5000).nullable().optional(), reference_status: z.string().max(5000).nullable().optional()}); export const refundDestinationDetails = z.object({affirm: destinationDetailsUnimplemented.optional(), afterpay_clearpay: destinationDetailsUnimplemented.optional(), alipay: destinationDetailsUnimplemented.optional(), alma: destinationDetailsUnimplemented.optional(), amazon_pay: destinationDetailsUnimplemented.optional(), au_bank_transfer: destinationDetailsUnimplemented.optional(), blik: refundDestinationDetailsBlik.optional(), br_bank_transfer: refundDestinationDetailsBrBankTransfer.optional(), card: refundDestinationDetailsCard.optional(), cashapp: destinationDetailsUnimplemented.optional(), crypto: refundDestinationDetailsCrypto.optional(), customer_cash_balance: destinationDetailsUnimplemented.optional(), eps: destinationDetailsUnimplemented.optional(), eu_bank_transfer: refundDestinationDetailsEuBankTransfer.optional(), gb_bank_transfer: refundDestinationDetailsGbBankTransfer.optional(), giropay: destinationDetailsUnimplemented.optional(), grabpay: destinationDetailsUnimplemented.optional(), jp_bank_transfer: refundDestinationDetailsJpBankTransfer.optional(), klarna: destinationDetailsUnimplemented.optional(), mb_way: refundDestinationDetailsMbWay.optional(), multibanco: refundDestinationDetailsMultibanco.optional(), mx_bank_transfer: refundDestinationDetailsMxBankTransfer.optional(), nz_bank_transfer: destinationDetailsUnimplemented.optional(), p24: refundDestinationDetailsP24.optional(), paynow: destinationDetailsUnimplemented.optional(), paypal: refundDestinationDetailsPaypal.optional(), pix: destinationDetailsUnimplemented.optional(), revolut: destinationDetailsUnimplemented.optional(), scalapay: destinationDetailsUnimplemented.optional(), sofort: destinationDetailsUnimplemented.optional(), swish: refundDestinationDetailsSwish.optional(), th_bank_transfer: refundDestinationDetailsThBankTransfer.optional(), twint: destinationDetailsUnimplemented.optional(), type: z.string().max(5000), us_bank_transfer: refundDestinationDetailsUsBankTransfer.optional(), wechat_pay: destinationDetailsUnimplemented.optional(), zip: destinationDetailsUnimplemented.optional()}); export const emailSent = z.object({email_sent_at: z.number().int(), email_sent_to: z.string().max(5000)}); export const refundNextActionDisplayDetails = z.object({email_sent: emailSent, expires_at: z.number().int()}); export const refundNextAction = z.object({display_details: refundNextActionDisplayDetails.optional(), type: z.string().max(5000)}); export const paymentFlowsPaymentIntentPresentmentDetails = z.object({presentment_amount: z.number().int(), presentment_currency: z.string().max(5000)}); export const transfer = z.object({amount: z.number().int(), amount_reversed: z.number().int(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), created: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), destination: z.union([z.string().max(5000), account]).nullable().optional(), destination_payment: z.union([z.string().max(5000), z.lazy(() => charge)]).optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("transfer"), reversals: z.object({data: z.array(z.lazy(() => transferReversal)), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}), reversed: z.boolean(), source_transaction: z.union([z.string().max(5000), z.lazy(() => charge)]).nullable().optional(), source_type: z.string().max(5000).optional(), transfer_group: z.string().max(5000).nullable().optional()}); export const transferReversal: z.ZodType = z.object({amount: z.number().int(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), created: z.number().int(), currency: z.string(), destination_payment_refund: z.union([z.string().max(5000), z.lazy(() => refund)]).nullable().optional(), id: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("transfer_reversal"), source_refund: z.union([z.string().max(5000), z.lazy(() => refund)]).nullable().optional(), transfer: z.union([z.string().max(5000), transfer])}); export const refund: z.ZodType = z.object({amount: z.number().int(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), charge: z.union([z.string().max(5000), z.lazy(() => charge)]).nullable().optional(), created: z.number().int(), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), description: z.string().max(5000).optional(), destination_details: refundDestinationDetails.optional(), failure_balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).optional(), failure_reason: z.string().max(5000).optional(), id: z.string().max(5000), instructions_email: z.string().max(5000).optional(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), next_action: refundNextAction.optional(), object: z.literal("refund"), payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)]).nullable().optional(), payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), pending_reason: z.enum(["charge_pending", "insufficient_funds", "processing"]).optional(), presentment_details: paymentFlowsPaymentIntentPresentmentDetails.optional(), reason: z.enum(["duplicate", "expired_uncaptured_charge", "fraudulent", "requested_by_customer"]).nullable().optional(), receipt_number: z.string().max(5000).nullable().optional(), source_transfer_reversal: z.union([z.string().max(5000), transferReversal]).nullable().optional(), status: z.string().max(5000).nullable().optional(), transfer_reversal: z.union([z.string().max(5000), transferReversal]).nullable().optional()}); export const customerBalanceResourceCashBalanceTransactionResourceRefundedFromPaymentTransaction = z.object({refund: z.union([z.string().max(5000), refund])}); export const customerBalanceResourceCashBalanceTransactionResourceTransferredToBalance = z.object({balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)])}); export const customerBalanceResourceCashBalanceTransactionResourceUnappliedFromPaymentTransaction = z.object({payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)])}); export const customerCashBalanceTransaction: z.ZodType = z.object({adjusted_for_overdraft: customerBalanceResourceCashBalanceTransactionResourceAdjustedForOverdraft.optional(), applied_to_payment: customerBalanceResourceCashBalanceTransactionResourceAppliedToPaymentTransaction.optional(), created: z.number().int(), currency: z.string().max(5000), customer: z.union([z.string().max(5000), z.lazy(() => customer)]), customer_account: z.string().max(5000).nullable().optional(), ending_balance: z.number().int(), funded: customerBalanceResourceCashBalanceTransactionResourceFundedTransaction.optional(), id: z.string().max(5000), livemode: z.boolean(), net_amount: z.number().int(), object: z.literal("customer_cash_balance_transaction"), refunded_from_payment: customerBalanceResourceCashBalanceTransactionResourceRefundedFromPaymentTransaction.optional(), transferred_to_balance: customerBalanceResourceCashBalanceTransactionResourceTransferredToBalance.optional(), type: z.enum(["adjusted_for_overdraft", "applied_to_payment", "funded", "funding_reversed", "refunded_from_payment", "return_canceled", "return_initiated", "transferred_to_balance", "unapplied_from_payment"]), unapplied_from_payment: customerBalanceResourceCashBalanceTransactionResourceUnappliedFromPaymentTransaction.optional()}); export const disputeEnhancedEvidenceMastercardCompliance = z.object({fee_acknowledged: z.boolean()}); export const disputeTransactionShippingAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const disputeVisaCompellingEvidence3DisputedTransaction = z.object({customer_account_id: z.string().max(5000).nullable().optional(), customer_device_fingerprint: z.string().max(5000).nullable().optional(), customer_device_id: z.string().max(5000).nullable().optional(), customer_email_address: z.string().max(5000).nullable().optional(), customer_purchase_ip: z.string().max(5000).nullable().optional(), merchandise_or_services: z.enum(["merchandise", "services"]).nullable().optional(), product_description: z.string().max(150000).nullable().optional(), shipping_address: disputeTransactionShippingAddress.nullable().optional()}); export const disputeVisaCompellingEvidence3PriorUndisputedTransaction = z.object({charge: z.string().max(5000), customer_account_id: z.string().max(5000).nullable().optional(), customer_device_fingerprint: z.string().max(5000).nullable().optional(), customer_device_id: z.string().max(5000).nullable().optional(), customer_email_address: z.string().max(5000).nullable().optional(), customer_purchase_ip: z.string().max(5000).nullable().optional(), product_description: z.string().max(150000).nullable().optional(), shipping_address: disputeTransactionShippingAddress.nullable().optional()}); export const disputeEnhancedEvidenceVisaCompellingEvidence3 = z.object({disputed_transaction: disputeVisaCompellingEvidence3DisputedTransaction.nullable().optional(), prior_undisputed_transactions: z.array(disputeVisaCompellingEvidence3PriorUndisputedTransaction)}); export const disputeEnhancedEvidenceVisaCompliance = z.object({fee_acknowledged: z.boolean()}); export const disputeEnhancedEvidence = z.object({mastercard_compliance: disputeEnhancedEvidenceMastercardCompliance.optional(), visa_compelling_evidence_3: disputeEnhancedEvidenceVisaCompellingEvidence3.optional(), visa_compliance: disputeEnhancedEvidenceVisaCompliance.optional()}); export const disputeEvidence = z.object({access_activity_log: z.string().max(150000).nullable().optional(), billing_address: z.string().max(5000).nullable().optional(), cancellation_policy: z.union([z.string().max(5000), file]).nullable().optional(), cancellation_policy_disclosure: z.string().max(150000).nullable().optional(), cancellation_rebuttal: z.string().max(150000).nullable().optional(), customer_communication: z.union([z.string().max(5000), file]).nullable().optional(), customer_email_address: z.string().max(5000).nullable().optional(), customer_name: z.string().max(5000).nullable().optional(), customer_purchase_ip: z.string().max(5000).nullable().optional(), customer_signature: z.union([z.string().max(5000), file]).nullable().optional(), duplicate_charge_documentation: z.union([z.string().max(5000), file]).nullable().optional(), duplicate_charge_explanation: z.string().max(150000).nullable().optional(), duplicate_charge_id: z.string().max(5000).nullable().optional(), enhanced_evidence: disputeEnhancedEvidence, product_description: z.string().max(150000).nullable().optional(), receipt: z.union([z.string().max(5000), file]).nullable().optional(), refund_policy: z.union([z.string().max(5000), file]).nullable().optional(), refund_policy_disclosure: z.string().max(150000).nullable().optional(), refund_refusal_explanation: z.string().max(150000).nullable().optional(), service_date: z.string().max(5000).nullable().optional(), service_documentation: z.union([z.string().max(5000), file]).nullable().optional(), shipping_address: z.string().max(5000).nullable().optional(), shipping_carrier: z.string().max(5000).nullable().optional(), shipping_date: z.string().max(5000).nullable().optional(), shipping_documentation: z.union([z.string().max(5000), file]).nullable().optional(), shipping_tracking_number: z.string().max(5000).nullable().optional(), uncategorized_file: z.union([z.string().max(5000), file]).nullable().optional(), uncategorized_text: z.string().max(150000).nullable().optional()}); export const disputeEnhancedEligibilityMastercardCompliance = z.object({status: z.enum(["fee_acknowledged", "requires_fee_acknowledgement"])}); export const disputeEnhancedEligibilityVisaCompellingEvidence3 = z.object({required_actions: z.array(z.enum(["missing_customer_identifiers", "missing_disputed_transaction_description", "missing_merchandise_or_services", "missing_prior_undisputed_transaction_description", "missing_prior_undisputed_transactions"])), status: z.enum(["not_qualified", "qualified", "requires_action"])}); export const disputeEnhancedEligibilityVisaCompliance = z.object({status: z.enum(["fee_acknowledged", "requires_fee_acknowledgement"])}); export const disputeEnhancedEligibility = z.object({mastercard_compliance: disputeEnhancedEligibilityMastercardCompliance.optional(), visa_compelling_evidence_3: disputeEnhancedEligibilityVisaCompellingEvidence3.optional(), visa_compliance: disputeEnhancedEligibilityVisaCompliance.optional()}); export const disputeEvidenceDetails = z.object({due_by: z.number().int().nullable().optional(), enhanced_eligibility: disputeEnhancedEligibility, has_evidence: z.boolean(), past_due: z.boolean(), submission_count: z.number().int()}); export const disputePaymentMethodDetailsAmazonPay = z.object({dispute_type: z.enum(["chargeback", "claim"]).nullable().optional()}); export const disputePaymentMethodDetailsCard = z.object({brand: z.string().max(5000), case_type: z.enum(["block", "chargeback", "compliance", "inquiry", "resolution"]), network: z.string().max(5000), network_reason_code: z.string().max(5000).nullable().optional()}); export const disputePaymentMethodDetailsKlarna = z.object({chargeback_loss_reason_code: z.string().max(5000).optional(), reason_code: z.string().max(5000).nullable().optional()}); export const disputePaymentMethodDetailsPaypal = z.object({case_id: z.string().max(5000).nullable().optional(), reason_code: z.string().max(5000).nullable().optional()}); export const disputePaymentMethodDetails = z.object({amazon_pay: disputePaymentMethodDetailsAmazonPay.optional(), card: disputePaymentMethodDetailsCard.optional(), klarna: disputePaymentMethodDetailsKlarna.optional(), paypal: disputePaymentMethodDetailsPaypal.optional(), type: z.enum(["amazon_pay", "card", "klarna", "paypal"])}); export const dispute = z.object({amount: z.number().int(), balance_transactions: z.array(z.lazy(() => balanceTransaction)), charge: z.union([z.string().max(5000), z.lazy(() => charge)]), created: z.number().int(), currency: z.string(), enhanced_eligibility_types: z.array(z.enum(["mastercard_compliance", "visa_compelling_evidence_3", "visa_compliance"])), evidence: disputeEvidence, evidence_details: disputeEvidenceDetails, id: z.string().max(5000), is_charge_refundable: z.boolean(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("dispute"), payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)]).nullable().optional(), payment_method_details: disputePaymentMethodDetails.optional(), reason: z.string().max(5000), status: z.enum(["lost", "needs_response", "prevented", "under_review", "warning_closed", "warning_needs_response", "warning_under_review", "won"])}); export const feeRefund = z.object({amount: z.number().int(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), created: z.number().int(), currency: z.string(), fee: z.union([z.string().max(5000), z.lazy(() => applicationFee)]), id: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("fee_refund")}); export const issuingAuthorizationAmountDetails = z.object({atm_fee: z.number().int().nullable().optional(), cashback_amount: z.number().int().nullable().optional()}); export const issuingCardholderAddress = z.object({address: address}); export const issuingCardholderCompany = z.object({tax_id_provided: z.boolean()}); export const issuingCardholderUserTermsAcceptance = z.object({date: z.number().int().nullable().optional(), ip: z.string().max(5000).nullable().optional(), user_agent: z.string().max(5000).nullable().optional()}); export const issuingCardholderCardIssuing = z.object({user_terms_acceptance: issuingCardholderUserTermsAcceptance.nullable().optional()}); export const issuingCardholderIndividualDob = z.object({day: z.number().int().nullable().optional(), month: z.number().int().nullable().optional(), year: z.number().int().nullable().optional()}); export const issuingCardholderIdDocument = z.object({back: z.union([z.string().max(5000), file]).nullable().optional(), front: z.union([z.string().max(5000), file]).nullable().optional()}); export const issuingCardholderVerification = z.object({document: issuingCardholderIdDocument.nullable().optional()}); export const issuingCardholderIndividual = z.object({card_issuing: issuingCardholderCardIssuing.nullable().optional(), dob: issuingCardholderIndividualDob.nullable().optional(), first_name: z.string().max(5000).nullable().optional(), last_name: z.string().max(5000).nullable().optional(), verification: issuingCardholderVerification.nullable().optional()}); export const issuingCardholderRequirements = z.object({disabled_reason: z.enum(["listed", "rejected.listed", "requirements.past_due", "under_review"]).nullable().optional(), past_due: z.array(z.enum(["company.tax_id", "individual.card_issuing.user_terms_acceptance.date", "individual.card_issuing.user_terms_acceptance.ip", "individual.dob.day", "individual.dob.month", "individual.dob.year", "individual.first_name", "individual.last_name", "individual.verification.document"])).nullable().optional()}); export const issuingCardholderSpendingLimit = z.object({amount: z.number().int(), categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), interval: z.enum(["all_time", "daily", "monthly", "per_authorization", "weekly", "yearly"])}); export const issuingCardholderAuthorizationControls = z.object({allowed_card_presences: z.array(z.enum(["not_present", "present"])).nullable().optional(), allowed_categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), allowed_merchant_countries: z.array(z.string().max(5000)).nullable().optional(), blocked_card_presences: z.array(z.enum(["not_present", "present"])).nullable().optional(), blocked_categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), blocked_merchant_countries: z.array(z.string().max(5000)).nullable().optional(), spending_limits: z.array(issuingCardholderSpendingLimit).nullable().optional(), spending_limits_currency: z.string().nullable().optional()}); export const issuingCardholder = z.object({billing: issuingCardholderAddress, company: issuingCardholderCompany.nullable().optional(), created: z.number().int(), email: z.string().max(5000).nullable().optional(), id: z.string().max(5000), individual: issuingCardholderIndividual.nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), name: z.string().max(5000), object: z.literal("issuing.cardholder"), phone_number: z.string().max(5000).nullable().optional(), preferred_locales: z.array(z.enum(["de", "en", "es", "fr", "it"])).nullable().optional(), requirements: issuingCardholderRequirements, spending_controls: issuingCardholderAuthorizationControls.nullable().optional(), status: z.enum(["active", "blocked", "inactive"]), type: z.enum(["company", "individual"])}); export const issuingCardFraudWarning = z.object({started_at: z.number().int().nullable().optional(), type: z.enum(["card_testing_exposure", "fraud_dispute_filed", "third_party_reported", "user_indicated_fraud"]).nullable().optional()}); export const issuingCardLifecycleConditions = z.object({payment_count: z.number().int()}); export const issuingCardLifecycleControls = z.object({cancel_after: issuingCardLifecycleConditions}); export const issuingPersonalizationDesignCarrierText = z.object({footer_body: z.string().max(5000).nullable().optional(), footer_title: z.string().max(5000).nullable().optional(), header_body: z.string().max(5000).nullable().optional(), header_title: z.string().max(5000).nullable().optional()}); export const issuingPhysicalBundleFeatures = z.object({card_logo: z.enum(["optional", "required", "unsupported"]), carrier_text: z.enum(["optional", "required", "unsupported"]), second_line: z.enum(["optional", "required", "unsupported"])}); export const issuingPhysicalBundle = z.object({features: issuingPhysicalBundleFeatures, id: z.string().max(5000), livemode: z.boolean(), name: z.string().max(5000), object: z.literal("issuing.physical_bundle"), status: z.enum(["active", "inactive", "review"]), type: z.enum(["custom", "standard"])}); export const issuingPersonalizationDesignPreferences = z.object({is_default: z.boolean(), is_platform_default: z.boolean().nullable().optional()}); export const issuingPersonalizationDesignRejectionReasons = z.object({card_logo: z.array(z.enum(["geographic_location", "inappropriate", "network_name", "non_binary_image", "non_fiat_currency", "other", "other_entity", "promotional_material"])).nullable().optional(), carrier_text: z.array(z.enum(["geographic_location", "inappropriate", "network_name", "non_fiat_currency", "other", "other_entity", "promotional_material"])).nullable().optional()}); export const issuingPersonalizationDesign = z.object({card_logo: z.union([z.string().max(5000), file]).nullable().optional(), carrier_text: issuingPersonalizationDesignCarrierText.nullable().optional(), created: z.number().int(), id: z.string().max(5000), livemode: z.boolean(), lookup_key: z.string().max(5000).nullable().optional(), metadata: z.record(z.string(), z.string().max(500)), name: z.string().max(5000).nullable().optional(), object: z.literal("issuing.personalization_design"), physical_bundle: z.union([z.string().max(5000), issuingPhysicalBundle]), preferences: issuingPersonalizationDesignPreferences, rejection_reasons: issuingPersonalizationDesignRejectionReasons, status: z.enum(["active", "inactive", "rejected", "review"])}); export const issuingCardShippingAddressValidation = z.object({mode: z.enum(["disabled", "normalization_only", "validation_and_normalization"]), normalized_address: address.nullable().optional(), result: z.enum(["indeterminate", "likely_deliverable", "likely_undeliverable"]).nullable().optional()}); export const issuingCardShippingCustoms = z.object({eori_number: z.string().max(5000).nullable().optional()}); export const issuingCardShipping = z.object({address: address, address_validation: issuingCardShippingAddressValidation.nullable().optional(), business_name: z.string().max(5000).nullable().optional(), carrier: z.enum(["correos", "dhl", "fedex", "royal_mail", "usps"]).nullable().optional(), customs: issuingCardShippingCustoms.nullable().optional(), eta: z.number().int().nullable().optional(), name: z.string().max(5000), phone_number: z.string().max(5000).nullable().optional(), require_signature: z.boolean().nullable().optional(), service: z.enum(["express", "priority", "standard"]), status: z.enum(["canceled", "delivered", "failure", "pending", "returned", "shipped", "submitted"]).nullable().optional(), tracking_number: z.string().max(5000).nullable().optional(), tracking_url: z.string().max(5000).nullable().optional(), type: z.enum(["bulk", "individual"])}); export const issuingCardSpendingLimit = z.object({amount: z.number().int(), categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), interval: z.enum(["all_time", "daily", "monthly", "per_authorization", "weekly", "yearly"])}); export const issuingCardAuthorizationControls = z.object({allowed_card_presences: z.array(z.enum(["not_present", "present"])).nullable().optional(), allowed_categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), allowed_merchant_countries: z.array(z.string().max(5000)).nullable().optional(), blocked_card_presences: z.array(z.enum(["not_present", "present"])).nullable().optional(), blocked_categories: z.array(z.enum(["ac_refrigeration_repair", "accounting_bookkeeping_services", "advertising_services", "agricultural_cooperative", "airlines_air_carriers", "airports_flying_fields", "ambulance_services", "amusement_parks_carnivals", "antique_reproductions", "antique_shops", "aquariums", "architectural_surveying_services", "art_dealers_and_galleries", "artists_supply_and_craft_shops", "auto_and_home_supply_stores", "auto_body_repair_shops", "auto_paint_shops", "auto_service_shops", "automated_cash_disburse", "automated_fuel_dispensers", "automobile_associations", "automotive_parts_and_accessories_stores", "automotive_tire_stores", "bail_and_bond_payments", "bakeries", "bands_orchestras", "barber_and_beauty_shops", "betting_casino_gambling", "bicycle_shops", "billiard_pool_establishments", "boat_dealers", "boat_rentals_and_leases", "book_stores", "books_periodicals_and_newspapers", "bowling_alleys", "bus_lines", "business_secretarial_schools", "buying_shopping_services", "cable_satellite_and_other_pay_television_and_radio", "camera_and_photographic_supply_stores", "candy_nut_and_confectionery_stores", "car_and_truck_dealers_new_used", "car_and_truck_dealers_used_only", "car_rental_agencies", "car_washes", "carpentry_services", "carpet_upholstery_cleaning", "caterers", "charitable_and_social_service_organizations_fundraising", "chemicals_and_allied_products", "child_care_services", "childrens_and_infants_wear_stores", "chiropodists_podiatrists", "chiropractors", "cigar_stores_and_stands", "civic_social_fraternal_associations", "cleaning_and_maintenance", "clothing_rental", "colleges_universities", "commercial_equipment", "commercial_footwear", "commercial_photography_art_and_graphics", "commuter_transport_and_ferries", "computer_network_services", "computer_programming", "computer_repair", "computer_software_stores", "computers_peripherals_and_software", "concrete_work_services", "construction_materials", "consulting_public_relations", "correspondence_schools", "cosmetic_stores", "counseling_services", "country_clubs", "courier_services", "court_costs", "credit_reporting_agencies", "cruise_lines", "dairy_products_stores", "dance_hall_studios_schools", "dating_escort_services", "dentists_orthodontists", "department_stores", "detective_agencies", "digital_goods_applications", "digital_goods_games", "digital_goods_large_volume", "digital_goods_media", "direct_marketing_catalog_merchant", "direct_marketing_combination_catalog_and_retail_merchant", "direct_marketing_inbound_telemarketing", "direct_marketing_insurance_services", "direct_marketing_other", "direct_marketing_outbound_telemarketing", "direct_marketing_subscription", "direct_marketing_travel", "discount_stores", "doctors", "door_to_door_sales", "drapery_window_covering_and_upholstery_stores", "drinking_places", "drug_stores_and_pharmacies", "drugs_drug_proprietaries_and_druggist_sundries", "dry_cleaners", "durable_goods", "duty_free_stores", "eating_places_restaurants", "educational_services", "electric_razor_stores", "electric_vehicle_charging", "electrical_parts_and_equipment", "electrical_services", "electronics_repair_shops", "electronics_stores", "elementary_secondary_schools", "emergency_services_gcas_visa_use_only", "employment_temp_agencies", "equipment_rental", "exterminating_services", "family_clothing_stores", "fast_food_restaurants", "financial_institutions", "fines_government_administrative_entities", "fireplace_fireplace_screens_and_accessories_stores", "floor_covering_stores", "florists", "florists_supplies_nursery_stock_and_flowers", "freezer_and_locker_meat_provisioners", "fuel_dealers_non_automotive", "funeral_services_crematories", "furniture_home_furnishings_and_equipment_stores_except_appliances", "furniture_repair_refinishing", "furriers_and_fur_shops", "general_services", "gift_card_novelty_and_souvenir_shops", "glass_paint_and_wallpaper_stores", "glassware_crystal_stores", "golf_courses_public", "government_licensed_horse_dog_racing_us_region_only", "government_licensed_online_casions_online_gambling_us_region_only", "government_owned_lotteries_non_us_region", "government_owned_lotteries_us_region_only", "government_services", "grocery_stores_supermarkets", "hardware_equipment_and_supplies", "hardware_stores", "health_and_beauty_spas", "hearing_aids_sales_and_supplies", "heating_plumbing_a_c", "hobby_toy_and_game_shops", "home_supply_warehouse_stores", "hospitals", "hotels_motels_and_resorts", "household_appliance_stores", "industrial_supplies", "information_retrieval_services", "insurance_default", "insurance_underwriting_premiums", "intra_company_purchases", "jewelry_stores_watches_clocks_and_silverware_stores", "landscaping_services", "laundries", "laundry_cleaning_services", "legal_services_attorneys", "luggage_and_leather_goods_stores", "lumber_building_materials_stores", "manual_cash_disburse", "marinas_service_and_supplies", "marketplaces", "masonry_stonework_and_plaster", "massage_parlors", "medical_and_dental_labs", "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", "medical_services", "membership_organizations", "mens_and_boys_clothing_and_accessories_stores", "mens_womens_clothing_stores", "metal_service_centers", "miscellaneous", "miscellaneous_apparel_and_accessory_shops", "miscellaneous_auto_dealers", "miscellaneous_business_services", "miscellaneous_food_stores", "miscellaneous_general_merchandise", "miscellaneous_general_services", "miscellaneous_home_furnishing_specialty_stores", "miscellaneous_publishing_and_printing", "miscellaneous_recreation_services", "miscellaneous_repair_shops", "miscellaneous_specialty_retail", "mobile_home_dealers", "motion_picture_theaters", "motor_freight_carriers_and_trucking", "motor_homes_dealers", "motor_vehicle_supplies_and_new_parts", "motorcycle_shops_and_dealers", "motorcycle_shops_dealers", "music_stores_musical_instruments_pianos_and_sheet_music", "news_dealers_and_newsstands", "non_fi_money_orders", "non_fi_stored_value_card_purchase_load", "nondurable_goods", "nurseries_lawn_and_garden_supply_stores", "nursing_personal_care", "office_and_commercial_furniture", "opticians_eyeglasses", "optometrists_ophthalmologist", "orthopedic_goods_prosthetic_devices", "osteopaths", "package_stores_beer_wine_and_liquor", "paints_varnishes_and_supplies", "parking_lots_garages", "passenger_railways", "pawn_shops", "pet_shops_pet_food_and_supplies", "petroleum_and_petroleum_products", "photo_developing", "photographic_photocopy_microfilm_equipment_and_supplies", "photographic_studios", "picture_video_production", "piece_goods_notions_and_other_dry_goods", "plumbing_heating_equipment_and_supplies", "political_organizations", "postal_services_government_only", "precious_stones_and_metals_watches_and_jewelry", "professional_services", "public_warehousing_and_storage", "quick_copy_repro_and_blueprint", "railroads", "real_estate_agents_and_managers_rentals", "record_stores", "recreational_vehicle_rentals", "religious_goods_stores", "religious_organizations", "roofing_siding_sheet_metal", "secretarial_support_services", "security_brokers_dealers", "service_stations", "sewing_needlework_fabric_and_piece_goods_stores", "shoe_repair_hat_cleaning", "shoe_stores", "small_appliance_repair", "snowmobile_dealers", "special_trade_services", "specialty_cleaning", "sporting_goods_stores", "sporting_recreation_camps", "sports_and_riding_apparel_stores", "sports_clubs_fields", "stamp_and_coin_stores", "stationary_office_supplies_printing_and_writing_paper", "stationery_stores_office_and_school_supply_stores", "swimming_pools_sales", "t_ui_travel_germany", "tailors_alterations", "tax_payments_government_agencies", "tax_preparation_services", "taxicabs_limousines", "telecommunication_equipment_and_telephone_sales", "telecommunication_services", "telegraph_services", "tent_and_awning_shops", "testing_laboratories", "theatrical_ticket_agencies", "timeshares", "tire_retreading_and_repair", "tolls_bridge_fees", "tourist_attractions_and_exhibits", "towing_services", "trailer_parks_campgrounds", "transportation_services", "travel_agencies_tour_operators", "truck_stop_iteration", "truck_utility_trailer_rentals", "typesetting_plate_making_and_related_services", "typewriter_stores", "u_s_federal_government_agencies_or_departments", "uniforms_commercial_clothing", "used_merchandise_and_secondhand_stores", "utilities", "variety_stores", "veterinary_services", "video_amusement_game_supplies", "video_game_arcades", "video_tape_rental_stores", "vocational_trade_schools", "watch_jewelry_repair", "welding_repair", "wholesale_clubs", "wig_and_toupee_stores", "wires_money_orders", "womens_accessory_and_specialty_shops", "womens_ready_to_wear_stores", "wrecking_and_salvage_yards"])).nullable().optional(), blocked_merchant_countries: z.array(z.string().max(5000)).nullable().optional(), spending_limits: z.array(issuingCardSpendingLimit).nullable().optional(), spending_limits_currency: z.string().nullable().optional()}); export const issuingCardApplePay = z.object({eligible: z.boolean(), ineligible_reason: z.enum(["missing_agreement", "missing_cardholder_contact", "unsupported_region"]).nullable().optional()}); export const issuingCardGooglePay = z.object({eligible: z.boolean(), ineligible_reason: z.enum(["missing_agreement", "missing_cardholder_contact", "unsupported_region"]).nullable().optional()}); export const issuingCardWallets = z.object({apple_pay: issuingCardApplePay, google_pay: issuingCardGooglePay, primary_account_identifier: z.string().max(5000).nullable().optional()}); export const issuingCard: z.ZodType = z.object({brand: z.string().max(5000), cancellation_reason: z.enum(["design_rejected", "fulfillment_error", "lost", "stolen"]).nullable().optional(), cardholder: issuingCardholder, created: z.number().int(), currency: z.string(), cvc: z.string().max(5000).optional(), exp_month: z.number().int(), exp_year: z.number().int(), financial_account: z.string().max(5000).nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000), latest_fraud_warning: issuingCardFraudWarning.nullable().optional(), lifecycle_controls: issuingCardLifecycleControls.nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), number: z.string().max(5000).optional(), object: z.literal("issuing.card"), personalization_design: z.union([z.string().max(5000), issuingPersonalizationDesign]).nullable().optional(), replaced_by: z.union([z.string().max(5000), z.lazy(() => issuingCard)]).nullable().optional(), replacement_for: z.union([z.string().max(5000), z.lazy(() => issuingCard)]).nullable().optional(), replacement_reason: z.enum(["damaged", "expired", "fulfillment_error", "lost", "stolen"]).nullable().optional(), second_line: z.string().max(5000).nullable().optional(), shipping: issuingCardShipping.nullable().optional(), spending_controls: issuingCardAuthorizationControls, status: z.enum(["active", "canceled", "inactive"]), type: z.enum(["physical", "virtual"]), wallets: issuingCardWallets.nullable().optional()}); export const issuingAuthorizationFleetCardholderPromptData = z.object({alphanumeric_id: z.string().max(5000).nullable().optional(), driver_id: z.string().max(5000).nullable().optional(), odometer: z.number().int().nullable().optional(), unspecified_id: z.string().max(5000).nullable().optional(), user_id: z.string().max(5000).nullable().optional(), vehicle_number: z.string().max(5000).nullable().optional()}); export const issuingAuthorizationFleetFuelPriceData = z.object({gross_amount_decimal: z.string().nullable().optional()}); export const issuingAuthorizationFleetNonFuelPriceData = z.object({gross_amount_decimal: z.string().nullable().optional()}); export const issuingAuthorizationFleetTaxData = z.object({local_amount_decimal: z.string().nullable().optional(), national_amount_decimal: z.string().nullable().optional()}); export const issuingAuthorizationFleetReportedBreakdown = z.object({fuel: issuingAuthorizationFleetFuelPriceData.nullable().optional(), non_fuel: issuingAuthorizationFleetNonFuelPriceData.nullable().optional(), tax: issuingAuthorizationFleetTaxData.nullable().optional()}); export const issuingAuthorizationFleetData = z.object({cardholder_prompt_data: issuingAuthorizationFleetCardholderPromptData.nullable().optional(), purchase_type: z.enum(["fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase"]).nullable().optional(), reported_breakdown: issuingAuthorizationFleetReportedBreakdown.nullable().optional(), service_type: z.enum(["full_service", "non_fuel_transaction", "self_service"]).nullable().optional()}); export const issuingAuthorizationFraudChallenge = z.object({channel: z.literal("sms"), status: z.enum(["expired", "pending", "rejected", "undeliverable", "verified"]), undeliverable_reason: z.enum(["no_phone_number", "unsupported_phone_number"]).nullable().optional()}); export const issuingAuthorizationFuelData = z.object({industry_product_code: z.string().max(5000).nullable().optional(), quantity_decimal: z.string().nullable().optional(), type: z.enum(["diesel", "other", "unleaded_plus", "unleaded_regular", "unleaded_super"]).nullable().optional(), unit: z.enum(["charging_minute", "imperial_gallon", "kilogram", "kilowatt_hour", "liter", "other", "pound", "us_gallon"]).nullable().optional(), unit_cost_decimal: z.string().nullable().optional()}); export const issuingAuthorizationMerchantData = z.object({category: z.string().max(5000), category_code: z.string().max(5000), city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), network_id: z.string().max(5000), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional(), tax_id: z.string().max(5000).nullable().optional(), terminal_id: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const issuingAuthorizationNetworkData = z.object({acquiring_institution_id: z.string().max(5000).nullable().optional(), system_trace_audit_number: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const issuingAuthorizationPendingRequest = z.object({amount: z.number().int(), amount_details: issuingAuthorizationAmountDetails.nullable().optional(), currency: z.string(), is_amount_controllable: z.boolean(), merchant_amount: z.number().int(), merchant_currency: z.string(), network_risk_score: z.number().int().nullable().optional()}); export const issuingAuthorizationRequest = z.object({amount: z.number().int(), amount_details: issuingAuthorizationAmountDetails.nullable().optional(), approved: z.boolean(), authorization_code: z.string().max(5000).nullable().optional(), created: z.number().int(), currency: z.string().max(5000), merchant_amount: z.number().int(), merchant_currency: z.string().max(5000), network_risk_score: z.number().int().nullable().optional(), reason: z.enum(["account_disabled", "card_active", "card_canceled", "card_expired", "card_inactive", "cardholder_blocked", "cardholder_inactive", "cardholder_verification_required", "insecure_authorization_method", "insufficient_funds", "network_fallback", "not_allowed", "pin_blocked", "spending_controls", "stripe_internal_error", "suspected_fraud", "verification_failed", "webhook_approved", "webhook_declined", "webhook_error", "webhook_timeout"]), reason_message: z.string().max(5000).nullable().optional(), requested_at: z.number().int().nullable().optional()}); export const issuingNetworkTokenDevice = z.object({device_fingerprint: z.string().max(5000).optional(), ip_address: z.string().max(5000).optional(), location: z.string().max(5000).optional(), name: z.string().max(5000).optional(), phone_number: z.string().max(5000).optional(), type: z.enum(["other", "phone", "watch"]).optional()}); export const issuingNetworkTokenMastercard = z.object({card_reference_id: z.string().max(5000).optional(), token_reference_id: z.string().max(5000), token_requestor_id: z.string().max(5000), token_requestor_name: z.string().max(5000).optional()}); export const issuingNetworkTokenVisa = z.object({card_reference_id: z.string().max(5000).nullable().optional(), token_reference_id: z.string().max(5000), token_requestor_id: z.string().max(5000), token_risk_score: z.string().max(5000).optional()}); export const issuingNetworkTokenAddress = z.object({line1: z.string().max(5000), postal_code: z.string().max(5000)}); export const issuingNetworkTokenWalletProvider = z.object({account_id: z.string().max(5000).optional(), account_trust_score: z.number().int().optional(), card_number_source: z.enum(["app", "manual", "on_file", "other"]).optional(), cardholder_address: issuingNetworkTokenAddress.optional(), cardholder_name: z.string().max(5000).optional(), device_trust_score: z.number().int().optional(), hashed_account_email_address: z.string().max(5000).optional(), reason_codes: z.array(z.enum(["account_card_too_new", "account_recently_changed", "account_too_new", "account_too_new_since_launch", "additional_device", "data_expired", "defer_id_v_decision", "device_recently_lost", "good_activity_history", "has_suspended_tokens", "high_risk", "inactive_account", "long_account_tenure", "low_account_score", "low_device_score", "low_phone_number_score", "network_service_error", "outside_home_territory", "provisioning_cardholder_mismatch", "provisioning_device_and_cardholder_mismatch", "provisioning_device_mismatch", "same_device_no_prior_authentication", "same_device_successful_prior_authentication", "software_update", "suspicious_activity", "too_many_different_cardholders", "too_many_recent_attempts", "too_many_recent_tokens"])).optional(), suggested_decision: z.enum(["approve", "decline", "require_auth"]).optional(), suggested_decision_version: z.string().max(5000).optional()}); export const issuingNetworkTokenNetworkData = z.object({device: issuingNetworkTokenDevice.optional(), mastercard: issuingNetworkTokenMastercard.optional(), type: z.enum(["mastercard", "visa"]), visa: issuingNetworkTokenVisa.optional(), wallet_provider: issuingNetworkTokenWalletProvider.optional()}); export const issuingToken = z.object({card: z.union([z.string().max(5000), issuingCard]), created: z.number().int(), device_fingerprint: z.string().max(5000).nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000).optional(), livemode: z.boolean(), network: z.enum(["mastercard", "visa"]), network_data: issuingNetworkTokenNetworkData.optional(), network_updated_at: z.number().int(), object: z.literal("issuing.token"), status: z.enum(["active", "deleted", "requested", "suspended"]), wallet_provider: z.enum(["apple_pay", "google_pay", "samsung_pay"]).optional()}); export const issuingTransactionAmountDetails = z.object({atm_fee: z.number().int().nullable().optional(), cashback_amount: z.number().int().nullable().optional()}); export const issuingDisputeCanceledEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), canceled_at: z.number().int().nullable().optional(), cancellation_policy_provided: z.boolean().nullable().optional(), cancellation_reason: z.string().max(5000).nullable().optional(), expected_at: z.number().int().nullable().optional(), explanation: z.string().max(5000).nullable().optional(), product_description: z.string().max(5000).nullable().optional(), product_type: z.enum(["merchandise", "service"]).nullable().optional(), return_status: z.enum(["merchant_rejected", "successful"]).nullable().optional(), returned_at: z.number().int().nullable().optional()}); export const issuingDisputeDuplicateEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), card_statement: z.union([z.string().max(5000), file]).nullable().optional(), cash_receipt: z.union([z.string().max(5000), file]).nullable().optional(), check_image: z.union([z.string().max(5000), file]).nullable().optional(), explanation: z.string().max(5000).nullable().optional(), original_transaction: z.string().max(5000).nullable().optional()}); export const issuingDisputeFraudulentEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), explanation: z.string().max(5000).nullable().optional()}); export const issuingDisputeMerchandiseNotAsDescribedEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), explanation: z.string().max(5000).nullable().optional(), received_at: z.number().int().nullable().optional(), return_description: z.string().max(5000).nullable().optional(), return_status: z.enum(["merchant_rejected", "successful"]).nullable().optional(), returned_at: z.number().int().nullable().optional()}); export const issuingDisputeNoValidAuthorizationEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), explanation: z.string().max(5000).nullable().optional()}); export const issuingDisputeNotReceivedEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), expected_at: z.number().int().nullable().optional(), explanation: z.string().max(5000).nullable().optional(), product_description: z.string().max(5000).nullable().optional(), product_type: z.enum(["merchandise", "service"]).nullable().optional()}); export const issuingDisputeOtherEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), explanation: z.string().max(5000).nullable().optional(), product_description: z.string().max(5000).nullable().optional(), product_type: z.enum(["merchandise", "service"]).nullable().optional()}); export const issuingDisputeServiceNotAsDescribedEvidence = z.object({additional_documentation: z.union([z.string().max(5000), file]).nullable().optional(), canceled_at: z.number().int().nullable().optional(), cancellation_reason: z.string().max(5000).nullable().optional(), explanation: z.string().max(5000).nullable().optional(), received_at: z.number().int().nullable().optional()}); export const issuingDisputeEvidence = z.object({canceled: issuingDisputeCanceledEvidence.optional(), duplicate: issuingDisputeDuplicateEvidence.optional(), fraudulent: issuingDisputeFraudulentEvidence.optional(), merchandise_not_as_described: issuingDisputeMerchandiseNotAsDescribedEvidence.optional(), no_valid_authorization: issuingDisputeNoValidAuthorizationEvidence.optional(), not_received: issuingDisputeNotReceivedEvidence.optional(), other: issuingDisputeOtherEvidence.optional(), reason: z.enum(["canceled", "duplicate", "fraudulent", "merchandise_not_as_described", "no_valid_authorization", "not_received", "other", "service_not_as_described"]), service_not_as_described: issuingDisputeServiceNotAsDescribedEvidence.optional()}); export const issuingDisputeTreasury = z.object({debit_reversal: z.string().max(5000).nullable().optional(), received_debit: z.string().max(5000)}); export const issuingDispute = z.object({amount: z.number().int(), balance_transactions: z.array(z.lazy(() => balanceTransaction)).nullable().optional(), created: z.number().int(), currency: z.string(), evidence: issuingDisputeEvidence, id: z.string().max(5000), livemode: z.boolean(), loss_reason: z.enum(["cardholder_authentication_issuer_liability", "eci5_token_transaction_with_tavv", "excess_disputes_in_timeframe", "has_not_met_the_minimum_dispute_amount_requirements", "invalid_duplicate_dispute", "invalid_incorrect_amount_dispute", "invalid_no_authorization", "invalid_use_of_disputes", "merchandise_delivered_or_shipped", "merchandise_or_service_as_described", "not_cancelled", "other", "refund_issued", "submitted_beyond_allowable_time_limit", "transaction_3ds_required", "transaction_approved_after_prior_fraud_dispute", "transaction_authorized", "transaction_electronically_read", "transaction_qualifies_for_visa_easy_payment_service", "transaction_unattended"]).optional(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("issuing.dispute"), status: z.enum(["expired", "lost", "submitted", "unsubmitted", "won"]), transaction: z.union([z.string().max(5000), z.lazy(() => issuingTransaction)]), treasury: issuingDisputeTreasury.nullable().optional()}); export const issuingTransactionNetworkData = z.object({authorization_code: z.string().max(5000).nullable().optional(), processing_date: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const issuingTransactionFleetCardholderPromptData = z.object({driver_id: z.string().max(5000).nullable().optional(), odometer: z.number().int().nullable().optional(), unspecified_id: z.string().max(5000).nullable().optional(), user_id: z.string().max(5000).nullable().optional(), vehicle_number: z.string().max(5000).nullable().optional()}); export const issuingTransactionFleetFuelPriceData = z.object({gross_amount_decimal: z.string().nullable().optional()}); export const issuingTransactionFleetNonFuelPriceData = z.object({gross_amount_decimal: z.string().nullable().optional()}); export const issuingTransactionFleetTaxData = z.object({local_amount_decimal: z.string().nullable().optional(), national_amount_decimal: z.string().nullable().optional()}); export const issuingTransactionFleetReportedBreakdown = z.object({fuel: issuingTransactionFleetFuelPriceData.nullable().optional(), non_fuel: issuingTransactionFleetNonFuelPriceData.nullable().optional(), tax: issuingTransactionFleetTaxData.nullable().optional()}); export const issuingTransactionFleetData = z.object({cardholder_prompt_data: issuingTransactionFleetCardholderPromptData.nullable().optional(), purchase_type: z.string().max(5000).nullable().optional(), reported_breakdown: issuingTransactionFleetReportedBreakdown.nullable().optional(), service_type: z.string().max(5000).nullable().optional()}); export const issuingTransactionFlightDataLeg = z.object({arrival_airport_code: z.string().max(5000).nullable().optional(), carrier: z.string().max(5000).nullable().optional(), departure_airport_code: z.string().max(5000).nullable().optional(), flight_number: z.string().max(5000).nullable().optional(), service_class: z.string().max(5000).nullable().optional(), stopover_allowed: z.boolean().nullable().optional()}); export const issuingTransactionFlightData = z.object({departure_at: z.number().int().nullable().optional(), passenger_name: z.string().max(5000).nullable().optional(), refundable: z.boolean().nullable().optional(), segments: z.array(issuingTransactionFlightDataLeg).nullable().optional(), travel_agency: z.string().max(5000).nullable().optional()}); export const issuingTransactionFuelData = z.object({industry_product_code: z.string().max(5000).nullable().optional(), quantity_decimal: z.string().nullable().optional(), type: z.string().max(5000), unit: z.string().max(5000), unit_cost_decimal: z.string()}); export const issuingTransactionLodgingData = z.object({check_in_at: z.number().int().nullable().optional(), nights: z.number().int().nullable().optional()}); export const issuingTransactionReceiptData = z.object({description: z.string().max(5000).nullable().optional(), quantity: z.number().nullable().optional(), total: z.number().int().nullable().optional(), unit_cost: z.number().int().nullable().optional()}); export const issuingTransactionPurchaseDetails = z.object({fleet: issuingTransactionFleetData.nullable().optional(), flight: issuingTransactionFlightData.nullable().optional(), fuel: issuingTransactionFuelData.nullable().optional(), lodging: issuingTransactionLodgingData.nullable().optional(), receipt: z.array(issuingTransactionReceiptData).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const issuingTransactionTreasury = z.object({received_credit: z.string().max(5000).nullable().optional(), received_debit: z.string().max(5000).nullable().optional()}); export const issuingTransaction: z.ZodType = z.object({amount: z.number().int(), amount_details: issuingTransactionAmountDetails.nullable().optional(), authorization: z.union([z.string().max(5000), z.lazy(() => issuingAuthorization)]).nullable().optional(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), card: z.union([z.string().max(5000), issuingCard]), cardholder: z.union([z.string().max(5000), issuingCardholder]).nullable().optional(), created: z.number().int(), currency: z.string(), dispute: z.union([z.string().max(5000), issuingDispute]).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), merchant_amount: z.number().int(), merchant_currency: z.string(), merchant_data: issuingAuthorizationMerchantData, metadata: z.record(z.string(), z.string().max(500)), network_data: issuingTransactionNetworkData.nullable().optional(), object: z.literal("issuing.transaction"), purchase_details: issuingTransactionPurchaseDetails.nullable().optional(), token: z.union([z.string().max(5000), issuingToken]).nullable().optional(), treasury: issuingTransactionTreasury.nullable().optional(), type: z.enum(["capture", "refund"]), wallet: z.enum(["apple_pay", "google_pay", "samsung_pay"]).nullable().optional()}); export const issuingAuthorizationTreasury = z.object({received_credits: z.array(z.string().max(5000)), received_debits: z.array(z.string().max(5000)), transaction: z.string().max(5000).nullable().optional()}); export const issuingAuthorizationAuthenticationExemption = z.object({claimed_by: z.enum(["acquirer", "issuer"]), type: z.enum(["low_value_transaction", "transaction_risk_analysis", "unknown"])}); export const issuingAuthorizationThreeDSecure = z.object({result: z.enum(["attempt_acknowledged", "authenticated", "failed", "required"])}); export const issuingAuthorizationVerificationData = z.object({address_line1_check: z.enum(["match", "mismatch", "not_provided"]), address_postal_code_check: z.enum(["match", "mismatch", "not_provided"]), authentication_exemption: issuingAuthorizationAuthenticationExemption.nullable().optional(), cvc_check: z.enum(["match", "mismatch", "not_provided"]), expiry_check: z.enum(["match", "mismatch", "not_provided"]), postal_code: z.string().max(5000).nullable().optional(), three_d_secure: issuingAuthorizationThreeDSecure.nullable().optional()}); export const issuingAuthorization: z.ZodType = z.object({amount: z.number().int(), amount_details: issuingAuthorizationAmountDetails.nullable().optional(), approved: z.boolean(), authorization_method: z.enum(["chip", "contactless", "keyed_in", "online", "swipe"]), balance_transactions: z.array(z.lazy(() => balanceTransaction)), card: issuingCard, card_presence: z.enum(["not_present", "present"]).nullable().optional(), cardholder: z.union([z.string().max(5000), issuingCardholder]).nullable().optional(), created: z.number().int(), currency: z.string(), fleet: issuingAuthorizationFleetData.nullable().optional(), fraud_challenges: z.array(issuingAuthorizationFraudChallenge).nullable().optional(), fuel: issuingAuthorizationFuelData.nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), merchant_amount: z.number().int(), merchant_currency: z.string(), merchant_data: issuingAuthorizationMerchantData, metadata: z.record(z.string(), z.string().max(500)), network_data: issuingAuthorizationNetworkData.nullable().optional(), object: z.literal("issuing.authorization"), pending_request: issuingAuthorizationPendingRequest.nullable().optional(), request_history: z.array(issuingAuthorizationRequest), status: z.enum(["closed", "expired", "pending", "reversed"]), token: z.union([z.string().max(5000), issuingToken]).nullable().optional(), transactions: z.array(issuingTransaction), treasury: issuingAuthorizationTreasury.nullable().optional(), verification_data: issuingAuthorizationVerificationData, verified_by_fraud_challenge: z.boolean().nullable().optional(), wallet: z.string().max(5000).nullable().optional()}); export const deletedBankAccount = z.object({currency: z.string().max(5000).nullable().optional(), deleted: z.literal(true), id: z.string().max(5000), object: z.literal("bank_account")}); export const deletedCard = z.object({currency: z.string().max(5000).nullable().optional(), deleted: z.literal(true), id: z.string().max(5000), object: z.literal("card")}); export const payoutsTraceId = z.object({status: z.string().max(5000), value: z.string().max(5000).nullable().optional()}); export const payout: z.ZodType = z.object({amount: z.number().int(), application_fee: z.union([z.string().max(5000), z.lazy(() => applicationFee)]).nullable().optional(), application_fee_amount: z.number().int().nullable().optional(), arrival_date: z.number().int(), automatic: z.boolean(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), created: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), destination: z.union([z.string().max(5000), bankAccount, card, deletedBankAccount, deletedCard]).nullable().optional(), failure_balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), failure_code: z.string().max(5000).nullable().optional(), failure_message: z.string().max(5000).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), method: z.string().max(5000), object: z.literal("payout"), original_payout: z.union([z.string().max(5000), z.lazy(() => payout)]).nullable().optional(), payout_method: z.string().max(5000).nullable().optional(), reconciliation_status: z.enum(["completed", "in_progress", "not_applicable"]), reversed_by: z.union([z.string().max(5000), z.lazy(() => payout)]).nullable().optional(), source_type: z.string().max(5000), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.string().max(5000), trace_id: payoutsTraceId.nullable().optional(), type: z.enum(["bank_account", "card"])}); export const reserveTransaction = z.object({amount: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), id: z.string().max(5000), object: z.literal("reserve_transaction")}); export const taxDeductedAtSource = z.object({id: z.string().max(5000), object: z.literal("tax_deducted_at_source"), period_end: z.number().int(), period_start: z.number().int(), tax_deduction_account_number: z.string().max(5000)}); export const topupResourceUsBankAccount = z.object({network: z.literal("ach")}); export const topupResourcePaymentMethodOptions = z.object({us_bank_account: topupResourceUsBankAccount.nullable().optional()}); export const topup = z.object({amount: z.number().int(), balance_transaction: z.union([z.string().max(5000), z.lazy(() => balanceTransaction)]).nullable().optional(), created: z.number().int(), currency: z.string().max(5000), description: z.string().max(5000).nullable().optional(), expected_availability_date: z.number().int().nullable().optional(), failure_code: z.string().max(5000).nullable().optional(), failure_message: z.string().max(5000).nullable().optional(), id: z.string().max(5000), initiated_by: z.enum(["stripe", "user"]).nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("topup"), payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), payment_method_options: topupResourcePaymentMethodOptions.nullable().optional(), source: source.nullable().optional(), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.enum(["canceled", "failed", "pending", "reversed", "succeeded"]), transfer_group: z.string().max(5000).nullable().optional()}); export const balanceTransaction: z.ZodType = z.object({amount: z.number().int(), available_on: z.number().int(), balance_type: z.enum(["issuing", "payments", "refund_and_dispute_prefunding", "risk_reserved"]), created: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), exchange_rate: z.number().nullable().optional(), fee: z.number().int(), fee_details: z.array(fee), id: z.string().max(5000), net: z.number().int(), object: z.literal("balance_transaction"), reporting_category: z.string().max(5000), source: z.union([z.string().max(5000), z.lazy(() => applicationFee), z.lazy(() => charge), connectCollectionTransfer, customerCashBalanceTransaction, dispute, feeRefund, issuingAuthorization, issuingDispute, issuingTransaction, payout, refund, reserveTransaction, taxDeductedAtSource, topup, transfer, transferReversal]).nullable().optional(), status: z.string().max(5000), type: z.enum(["adjustment", "advance", "advance_funding", "anticipation_repayment", "application_fee", "application_fee_refund", "charge", "climate_order_purchase", "climate_order_refund", "connect_collection_transfer", "contribution", "fee_credit_funding", "inbound_transfer", "inbound_transfer_reversal", "issuing_authorization_hold", "issuing_authorization_release", "issuing_dispute", "issuing_dispute_provisional_credit", "issuing_dispute_provisional_credit_reversal", "issuing_transaction", "obligation_outbound", "obligation_reversal_inbound", "payment", "payment_failure_refund", "payment_network_reserve_hold", "payment_network_reserve_release", "payment_refund", "payment_reversal", "payment_unreconciled", "payout", "payout_cancel", "payout_failure", "payout_minimum_balance_hold", "payout_minimum_balance_release", "refund", "refund_failure", "reserve_hold", "reserve_release", "reserve_transaction", "reserved_funds", "stripe_balance_payment_debit", "stripe_balance_payment_debit_reversal", "stripe_fee", "stripe_fx_fee", "tax_fee", "tax_fund", "topup", "topup_reversal", "transfer", "transfer_cancel", "transfer_failure", "transfer_refund"])}); export const platformEarningFeeSource = z.object({charge: z.string().max(5000).optional(), payout: z.string().max(5000).optional(), type: z.enum(["charge", "payout"])}); export const applicationFee: z.ZodType = z.object({account: z.union([z.string().max(5000), account]), amount: z.number().int(), amount_refunded: z.number().int(), application: z.union([z.string().max(5000), application]), balance_transaction: z.union([z.string().max(5000), balanceTransaction]).nullable().optional(), charge: z.union([z.string().max(5000), z.lazy(() => charge)]), created: z.number().int(), currency: z.string(), fee_source: platformEarningFeeSource.nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("application_fee"), originating_transaction: z.union([z.string().max(5000), z.lazy(() => charge)]).nullable().optional(), refunded: z.boolean(), refunds: z.object({data: z.array(feeRefund), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)})}); export const chargeFraudDetails = z.object({stripe_report: z.string().max(5000).optional(), user_report: z.string().max(5000).optional()}); export const rule = z.object({action: z.string().max(5000), id: z.string().max(5000), predicate: z.string().max(5000)}); export const chargeOutcome = z.object({advice_code: z.enum(["confirm_card_data", "do_not_try_again", "try_again_later"]).nullable().optional(), network_advice_code: z.string().max(5000).nullable().optional(), network_decline_code: z.string().max(5000).nullable().optional(), network_status: z.string().max(5000).nullable().optional(), reason: z.string().max(5000).nullable().optional(), risk_level: z.string().max(5000).optional(), risk_score: z.number().int().optional(), rule: z.union([z.string().max(5000), rule]).optional(), seller_message: z.string().max(5000).nullable().optional(), type: z.string().max(5000)}); export const paymentMethodDetailsAchCreditTransfer = z.object({account_number: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), swift_code: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAchDebit = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), routing_number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAcssDebit = z.object({bank_name: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), institution_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional(), transit_number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAffirm = z.object({location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAfterpayClearpay = z.object({order_id: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAlipay = z.object({buyer_id: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsAlmaDetailsResourceInstallments = z.object({count: z.number().int()}); export const paymentMethodDetailsAlma = z.object({installments: paymentFlowsPrivatePaymentMethodsAlmaDetailsResourceInstallments.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPassthroughCard = z.object({brand: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), funding: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const amazonPayUnderlyingPaymentMethodFundingDetails = z.object({card: paymentMethodDetailsPassthroughCard.optional(), type: z.literal("card").nullable().optional()}); export const paymentMethodDetailsAmazonPay = z.object({funding: amazonPayUnderlyingPaymentMethodFundingDetails.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsAuBecsDebit = z.object({bsb_number: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsBacsDebit = z.object({expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).nullable().optional(), sort_code: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsBancontact = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "fr", "nl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsBillie = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsBizum = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsBlik = z.object({buyer_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsBoleto = z.object({tax_id: z.string().max(5000)}); export const paymentMethodDetailsCardChecks = z.object({address_line1_check: z.string().max(5000).nullable().optional(), address_postal_code_check: z.string().max(5000).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesExtendedAuthorizationExtendedAuthorization = z.object({status: z.enum(["disabled", "enabled"])}); export const paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesIncrementalAuthorizationIncrementalAuthorization = z.object({status: z.enum(["available", "unavailable"])}); export const paymentMethodDetailsCardInstallmentsPlan = z.object({count: z.number().int().nullable().optional(), interval: z.literal("month").nullable().optional(), type: z.enum(["bonus", "fixed_count", "revolving"])}); export const paymentMethodDetailsCardInstallments = z.object({plan: paymentMethodDetailsCardInstallmentsPlan.nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceMulticapture = z.object({status: z.enum(["available", "unavailable"])}); export const paymentMethodDetailsCardNetworkToken = z.object({used: z.boolean()}); export const paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesOvercaptureOvercapture = z.object({maximum_amount_capturable: z.number().int(), status: z.enum(["available", "unavailable"])}); export const threeDSecureDetailsCharge = z.object({authentication_flow: z.enum(["challenge", "frictionless"]).nullable().optional(), electronic_commerce_indicator: z.enum(["01", "02", "05", "06", "07"]).nullable().optional(), exemption_indicator: z.enum(["low_risk", "none"]).nullable().optional(), exemption_indicator_applied: z.boolean().optional(), result: z.enum(["attempt_acknowledged", "authenticated", "data_share_only", "exempted", "failed", "not_supported", "processing_error"]).nullable().optional(), result_reason: z.enum(["abandoned", "bypassed", "canceled", "card_not_enrolled", "network_not_supported", "protocol_error", "rejected"]).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional(), version: z.enum(["1.0.2", "2.1.0", "2.2.0", "2.3.0", "2.3.1"]).nullable().optional()}); export const paymentMethodDetailsCardWalletAmexExpressCheckout = z.object({}); export const paymentMethodDetailsCardWalletApplePay = z.object({}); export const paymentMethodDetailsCardWalletGooglePay = z.object({}); export const paymentMethodDetailsCardWalletLink = z.object({funding_source_group: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsCardWalletMasterpass = z.object({billing_address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), shipping_address: address.nullable().optional()}); export const paymentMethodDetailsCardWalletSamsungPay = z.object({}); export const paymentMethodDetailsCardWalletVisaCheckout = z.object({billing_address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), shipping_address: address.nullable().optional()}); export const paymentMethodDetailsCardWallet = z.object({amex_express_checkout: paymentMethodDetailsCardWalletAmexExpressCheckout.optional(), apple_pay: paymentMethodDetailsCardWalletApplePay.optional(), dynamic_last4: z.string().max(5000).nullable().optional(), google_pay: paymentMethodDetailsCardWalletGooglePay.optional(), link: paymentMethodDetailsCardWalletLink.optional(), masterpass: paymentMethodDetailsCardWalletMasterpass.optional(), samsung_pay: paymentMethodDetailsCardWalletSamsungPay.optional(), type: z.enum(["amex_express_checkout", "apple_pay", "google_pay", "link", "masterpass", "samsung_pay", "visa_checkout"]), visa_checkout: paymentMethodDetailsCardWalletVisaCheckout.optional()}); export const paymentMethodDetailsCard = z.object({amount_authorized: z.number().int().nullable().optional(), authorization_code: z.string().max(5000).nullable().optional(), brand: z.string().max(5000).nullable().optional(), capture_before: z.number().int().optional(), checks: paymentMethodDetailsCardChecks.nullable().optional(), country: z.string().max(5000).nullable().optional(), electronic_commerce_indicator: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), extended_authorization: paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesExtendedAuthorizationExtendedAuthorization.optional(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), incremental_authorization: paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesIncrementalAuthorizationIncrementalAuthorization.optional(), installments: paymentMethodDetailsCardInstallments.nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), multicapture: paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceMulticapture.optional(), network: z.string().max(5000).nullable().optional(), network_token: paymentMethodDetailsCardNetworkToken.nullable().optional(), network_transaction_id: z.string().max(5000).nullable().optional(), overcapture: paymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesOvercaptureOvercapture.optional(), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), three_d_secure: threeDSecureDetailsCharge.nullable().optional(), transaction_link_id: z.string().max(22).nullable().optional(), wallet: paymentMethodDetailsCardWallet.nullable().optional()}); export const paymentMethodDetailsCashapp = z.object({buyer_id: z.string().max(5000).nullable().optional(), cashtag: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsCrypto = z.object({buyer_address: z.string().max(5000).optional(), network: z.enum(["base", "ethereum", "polygon", "solana", "sui", "tempo"]).optional(), token_currency: z.enum(["phantom_cash", "usdc", "usdg", "usdp", "usdsui", "usdt"]).optional(), transaction_hash: z.string().max(5000).optional()}); export const paymentMethodDetailsCustomerBalance = z.object({}); export const paymentMethodDetailsEps = z.object({bank: z.enum(["arzte_und_apotheker_bank", "austrian_anadi_bank_ag", "bank_austria", "bankhaus_carl_spangler", "bankhaus_schelhammer_und_schattera_ag", "bawag_psk_ag", "bks_bank_ag", "brull_kallmus_bank_ag", "btv_vier_lander_bank", "capital_bank_grawe_gruppe_ag", "deutsche_bank_ag", "dolomitenbank", "easybank_ag", "erste_bank_und_sparkassen", "hypo_alpeadriabank_international_ag", "hypo_bank_burgenland_aktiengesellschaft", "hypo_noe_lb_fur_niederosterreich_u_wien", "hypo_oberosterreich_salzburg_steiermark", "hypo_tirol_bank_ag", "hypo_vorarlberg_bank_ag", "marchfelder_bank", "oberbank_ag", "raiffeisen_bankengruppe_osterreich", "schoellerbank_ag", "sparda_bank_wien", "volksbank_gruppe", "volkskreditbank_ag", "vr_bank_braunau"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsFpx = z.object({bank: z.enum(["affin_bank", "agrobank", "alliance_bank", "ambank", "bank_islam", "bank_muamalat", "bank_of_china", "bank_rakyat", "bnp_paribas", "bsn", "cimb", "citibank", "deutsche_bank", "hong_leong_bank", "hsbc", "kfh", "maybank2e", "maybank2u", "mbsb_bank", "ocbc", "pb_enterprise", "public_bank", "rhb", "standard_chartered", "uob"]), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsGiropay = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsGrabpay = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsIdeal = z.object({bank: z.enum(["abn_amro", "adyen", "asn_bank", "bunq", "buut", "finom", "handelsbanken", "ing", "knab", "mollie", "moneyou", "n26", "nn", "rabobank", "regiobank", "revolut", "sns_bank", "triodos_bank", "van_lanschot", "yoursafe"]).nullable().optional(), bic: z.enum(["ABNANL2A", "ADYBNL2A", "ASNBNL21", "BITSNL2A", "BUNQNL2A", "BUUTNL2A", "FNOMNL22", "FVLBNL22", "HANDNL2A", "INGBNL2A", "KNABNL2H", "MLLENL2A", "MOYONL21", "NNBANL2G", "NTSBDEB1", "RABONL2U", "RBRBNL21", "REVOIE23", "REVOLT21", "SNSBNL2A", "TRIONL2U"]).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsInteracPresentReceipt = z.object({account_type: z.enum(["checking", "savings", "unknown"]).optional(), application_cryptogram: z.string().max(5000).nullable().optional(), application_preferred_name: z.string().max(5000).nullable().optional(), authorization_code: z.string().max(5000).nullable().optional(), authorization_response_code: z.string().max(5000).nullable().optional(), cardholder_verification_method: z.string().max(5000).nullable().optional(), dedicated_file_name: z.string().max(5000).nullable().optional(), terminal_verification_results: z.string().max(5000).nullable().optional(), transaction_status_information: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsInteracPresent = z.object({brand: z.string().max(5000).nullable().optional(), cardholder_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), emv_auth_data: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), generated_card: z.string().max(5000).nullable().optional(), issuer: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), location: z.string().max(5000).optional(), network: z.string().max(5000).nullable().optional(), network_transaction_id: z.string().max(5000).nullable().optional(), preferred_locales: z.array(z.string().max(5000)).nullable().optional(), read_method: z.enum(["contact_emv", "contactless_emv", "contactless_magstripe_mode", "magnetic_stripe_fallback", "magnetic_stripe_track2"]).nullable().optional(), reader: z.string().max(5000).optional(), receipt: paymentMethodDetailsInteracPresentReceipt.nullable().optional()}); export const paymentMethodDetailsKakaoPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const klarnaAddress = z.object({country: z.string().max(5000).nullable().optional()}); export const klarnaPayerDetails = z.object({address: klarnaAddress.nullable().optional()}); export const paymentMethodDetailsKlarna = z.object({location: z.string().max(5000).optional(), payer_details: klarnaPayerDetails.nullable().optional(), payment_method_category: z.string().max(5000).nullable().optional(), preferred_locale: z.string().max(5000).nullable().optional(), reader: z.string().max(5000).optional()}); export const paymentFlowsPrivatePaymentMethodsKonbiniDetailsResourceStore = z.object({chain: z.enum(["familymart", "lawson", "ministop", "seicomart"]).nullable().optional()}); export const paymentMethodDetailsKonbini = z.object({store: paymentFlowsPrivatePaymentMethodsKonbiniDetailsResourceStore.nullable().optional()}); export const paymentMethodDetailsKrCard = z.object({brand: z.enum(["bc", "citi", "hana", "hyundai", "jeju", "jeonbuk", "kakaobank", "kbank", "kdbbank", "kookmin", "kwangju", "lotte", "mg", "nh", "post", "samsung", "savingsbank", "shinhan", "shinhyup", "suhyup", "tossbank", "woori"]).nullable().optional(), buyer_id: z.string().max(5000).nullable().optional(), last4: z.string().max(4).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsLink = z.object({country: z.string().max(5000).nullable().optional(), funding_source_group: z.string().max(5000).optional()}); export const paymentMethodDetailsMbWay = z.object({}); export const internalCard = z.object({brand: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsMobilepay = z.object({card: internalCard.nullable().optional()}); export const paymentMethodDetailsMultibanco = z.object({entity: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsNaverPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsNzBankAccount = z.object({account_holder_name: z.string().max(5000).nullable().optional(), bank_code: z.string().max(5000), bank_name: z.string().max(5000), branch_code: z.string().max(5000), expected_debit_date: z.string().max(5000).optional(), last4: z.string().max(5000), suffix: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsOxxo = z.object({number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsP24 = z.object({bank: z.enum(["alior_bank", "bank_millennium", "bank_nowy_bfg_sa", "bank_pekao_sa", "banki_spbdzielcze", "blik", "bnp_paribas", "boz", "citi_handlowy", "credit_agricole", "envelobank", "etransfer_pocztowy24", "getin_bank", "ideabank", "ing", "inteligo", "mbank_mtransfer", "nest_przelew", "noble_pay", "pbac_z_ipko", "plus_bank", "santander_przelew24", "tmobile_usbugi_bankowe", "toyota_bank", "velobank", "volkswagen_bank"]).nullable().optional(), reference: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPayByBank = z.object({}); export const paymentMethodDetailsPayco = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaynow = z.object({location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), reference: z.string().max(5000).nullable().optional()}); export const paypalSellerProtection = z.object({dispute_categories: z.array(z.enum(["fraudulent", "product_not_received"])).nullable().optional(), status: z.enum(["eligible", "not_eligible", "partially_eligible"])}); export const paymentMethodDetailsPaypal = z.object({country: z.string().max(5000).nullable().optional(), payer_email: z.string().max(5000).nullable().optional(), payer_id: z.string().max(5000).nullable().optional(), payer_name: z.string().max(5000).nullable().optional(), seller_protection: paypalSellerProtection.nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaypay = z.object({}); export const paymentMethodDetailsPayto = z.object({bsb_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional(), pay_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPix = z.object({bank_transaction_id: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsPromptpay = z.object({reference: z.string().max(5000).nullable().optional()}); export const revolutPayUnderlyingPaymentMethodFundingDetails = z.object({card: paymentMethodDetailsPassthroughCard.optional(), type: z.literal("card").nullable().optional()}); export const paymentMethodDetailsRevolutPay = z.object({funding: revolutPayUnderlyingPaymentMethodFundingDetails.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSamsungPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSatispay = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsScalapay = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSepaDebit = z.object({bank_code: z.string().max(5000).nullable().optional(), branch_code: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSequra = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSofort = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "es", "fr", "it", "nl", "pl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsStripeAccount = z.object({}); export const paymentMethodDetailsSunbit = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsSwish = z.object({fingerprint: z.string().max(5000).nullable().optional(), payment_reference: z.string().max(5000).nullable().optional(), verified_phone_last4: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsTwint = z.object({mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsUpi = z.object({vpa: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).optional(), payment_reference: z.string().max(5000).nullable().optional(), routing_number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsWechat = z.object({}); export const paymentMethodDetailsWechatPay = z.object({fingerprint: z.string().max(5000).nullable().optional(), location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsZip = z.object({}); export const paymentMethodDetails = z.object({ach_credit_transfer: paymentMethodDetailsAchCreditTransfer.optional(), ach_debit: paymentMethodDetailsAchDebit.optional(), acss_debit: paymentMethodDetailsAcssDebit.optional(), affirm: paymentMethodDetailsAffirm.optional(), afterpay_clearpay: paymentMethodDetailsAfterpayClearpay.optional(), alipay: paymentMethodDetailsAlipay.optional(), alma: paymentMethodDetailsAlma.optional(), amazon_pay: paymentMethodDetailsAmazonPay.optional(), au_becs_debit: paymentMethodDetailsAuBecsDebit.optional(), bacs_debit: paymentMethodDetailsBacsDebit.optional(), bancontact: paymentMethodDetailsBancontact.optional(), billie: paymentMethodDetailsBillie.optional(), bizum: paymentMethodDetailsBizum.optional(), blik: paymentMethodDetailsBlik.optional(), boleto: paymentMethodDetailsBoleto.optional(), card: paymentMethodDetailsCard.optional(), card_present: paymentMethodDetailsCardPresent.optional(), cashapp: paymentMethodDetailsCashapp.optional(), crypto: paymentMethodDetailsCrypto.optional(), customer_balance: paymentMethodDetailsCustomerBalance.optional(), eps: paymentMethodDetailsEps.optional(), fpx: paymentMethodDetailsFpx.optional(), giropay: paymentMethodDetailsGiropay.optional(), grabpay: paymentMethodDetailsGrabpay.optional(), ideal: paymentMethodDetailsIdeal.optional(), interac_present: paymentMethodDetailsInteracPresent.optional(), kakao_pay: paymentMethodDetailsKakaoPay.optional(), klarna: paymentMethodDetailsKlarna.optional(), konbini: paymentMethodDetailsKonbini.optional(), kr_card: paymentMethodDetailsKrCard.optional(), link: paymentMethodDetailsLink.optional(), mb_way: paymentMethodDetailsMbWay.optional(), mobilepay: paymentMethodDetailsMobilepay.optional(), multibanco: paymentMethodDetailsMultibanco.optional(), naver_pay: paymentMethodDetailsNaverPay.optional(), nz_bank_account: paymentMethodDetailsNzBankAccount.optional(), oxxo: paymentMethodDetailsOxxo.optional(), p24: paymentMethodDetailsP24.optional(), pay_by_bank: paymentMethodDetailsPayByBank.optional(), payco: paymentMethodDetailsPayco.optional(), paynow: paymentMethodDetailsPaynow.optional(), paypal: paymentMethodDetailsPaypal.optional(), paypay: paymentMethodDetailsPaypay.optional(), payto: paymentMethodDetailsPayto.optional(), pix: paymentMethodDetailsPix.optional(), promptpay: paymentMethodDetailsPromptpay.optional(), revolut_pay: paymentMethodDetailsRevolutPay.optional(), samsung_pay: paymentMethodDetailsSamsungPay.optional(), satispay: paymentMethodDetailsSatispay.optional(), scalapay: paymentMethodDetailsScalapay.optional(), sepa_debit: paymentMethodDetailsSepaDebit.optional(), sequra: paymentMethodDetailsSequra.optional(), sofort: paymentMethodDetailsSofort.optional(), stripe_account: paymentMethodDetailsStripeAccount.optional(), sunbit: paymentMethodDetailsSunbit.optional(), swish: paymentMethodDetailsSwish.optional(), twint: paymentMethodDetailsTwint.optional(), type: z.string().max(5000), upi: paymentMethodDetailsUpi.optional(), us_bank_account: paymentMethodDetailsUsBankAccount.optional(), wechat: paymentMethodDetailsWechat.optional(), wechat_pay: paymentMethodDetailsWechatPay.optional(), zip: paymentMethodDetailsZip.optional()}); export const radarRadarOptions = z.object({session: z.string().max(5000).optional()}); export const radarReviewResourceLocation = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), latitude: z.number().nullable().optional(), longitude: z.number().nullable().optional(), region: z.string().max(5000).nullable().optional()}); export const radarReviewResourceSession = z.object({browser: z.string().max(5000).nullable().optional(), device: z.string().max(5000).nullable().optional(), platform: z.string().max(5000).nullable().optional(), version: z.string().max(5000).nullable().optional()}); export const review = z.object({billing_zip: z.string().max(5000).nullable().optional(), charge: z.union([z.string().max(5000), z.lazy(() => charge)]).nullable().optional(), closed_reason: z.enum(["acknowledged", "approved", "canceled", "disputed", "payment_never_settled", "redacted", "refunded", "refunded_as_fraud"]).nullable().optional(), created: z.number().int(), id: z.string().max(5000), ip_address: z.string().max(5000).nullable().optional(), ip_address_location: radarReviewResourceLocation.nullable().optional(), livemode: z.boolean(), object: z.literal("review"), open: z.boolean(), opened_reason: z.enum(["manual", "rule"]), payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)]).optional(), reason: z.string().max(5000), session: radarReviewResourceSession.nullable().optional()}); export const chargeTransferData = z.object({amount: z.number().int().nullable().optional(), destination: z.union([z.string().max(5000), account])}); export const charge: z.ZodType = z.object({amount: z.number().int(), amount_captured: z.number().int(), amount_refunded: z.number().int(), application: z.union([z.string().max(5000), application]).nullable().optional(), application_fee: z.union([z.string().max(5000), applicationFee]).nullable().optional(), application_fee_amount: z.number().int().nullable().optional(), balance_transaction: z.union([z.string().max(5000), balanceTransaction]).nullable().optional(), billing_details: billingDetails, calculated_statement_descriptor: z.string().max(5000).nullable().optional(), captured: z.boolean(), created: z.number().int(), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), description: z.string().max(40000).nullable().optional(), disputed: z.boolean(), failure_balance_transaction: z.union([z.string().max(5000), balanceTransaction]).nullable().optional(), failure_code: z.string().max(5000).nullable().optional(), failure_message: z.string().max(5000).nullable().optional(), fraud_details: chargeFraudDetails.nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("charge"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), outcome: chargeOutcome.nullable().optional(), paid: z.boolean(), payment_intent: z.union([z.string().max(5000), z.lazy(() => paymentIntent)]).nullable().optional(), payment_method: z.string().max(5000).nullable().optional(), payment_method_details: paymentMethodDetails.nullable().optional(), presentment_details: paymentFlowsPaymentIntentPresentmentDetails.optional(), radar_options: radarRadarOptions.optional(), receipt_email: z.string().max(5000).nullable().optional(), receipt_number: z.string().max(5000).nullable().optional(), receipt_url: z.string().max(5000).nullable().optional(), refunded: z.boolean(), refunds: z.object({data: z.array(refund), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).nullable().optional(), review: z.union([z.string().max(5000), review]).nullable().optional(), shipping: shipping.nullable().optional(), source_transfer: z.union([z.string().max(5000), transfer]).nullable().optional(), statement_descriptor: z.string().max(5000).nullable().optional(), statement_descriptor_suffix: z.string().max(5000).nullable().optional(), status: z.enum(["failed", "pending", "succeeded"]), transfer: z.union([z.string().max(5000), transfer]).optional(), transfer_data: chargeTransferData.nullable().optional(), transfer_group: z.string().max(5000).nullable().optional()}); export const smorResourceManagedPayments = z.object({enabled: z.boolean()}); export const paymentIntentNextActionAlipayHandleRedirect = z.object({native_data: z.string().max(5000).nullable().optional(), native_url: z.string().max(5000).nullable().optional(), return_url: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const paymentIntentNextActionBlikAuthorize = z.object({}); export const paymentIntentNextActionBoleto = z.object({expires_at: z.number().int().nullable().optional(), hosted_voucher_url: z.string().max(5000).nullable().optional(), number: z.string().max(5000).nullable().optional(), pdf: z.string().max(5000).nullable().optional()}); export const paymentIntentNextActionCardAwaitNotification = z.object({charge_attempt_at: z.number().int().nullable().optional(), customer_approval_required: z.boolean().nullable().optional()}); export const paymentIntentNextActionCashappQrCode = z.object({expires_at: z.number().int(), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionCashappHandleRedirectOrDisplayQrCode = z.object({hosted_instructions_url: z.string().max(5000), mobile_auth_url: z.string().max(5000), qr_code: paymentIntentNextActionCashappQrCode}); export const fundingInstructionsBankTransferAbaRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000), account_number: z.string().max(5000), account_type: z.string().max(5000), bank_address: address, bank_name: z.string().max(5000), routing_number: z.string().max(5000)}); export const fundingInstructionsBankTransferIbanRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000), bank_address: address, bic: z.string().max(5000), country: z.string().max(5000), iban: z.string().max(5000)}); export const fundingInstructionsBankTransferSortCodeRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000), account_number: z.string().max(5000), bank_address: address, sort_code: z.string().max(5000)}); export const fundingInstructionsBankTransferSpeiRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000), bank_address: address, bank_code: z.string().max(5000), bank_name: z.string().max(5000), clabe: z.string().max(5000)}); export const fundingInstructionsBankTransferSwiftRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000), account_number: z.string().max(5000), account_type: z.string().max(5000), bank_address: address, bank_name: z.string().max(5000), swift_code: z.string().max(5000)}); export const fundingInstructionsBankTransferZenginRecord = z.object({account_holder_address: address, account_holder_name: z.string().max(5000).nullable().optional(), account_number: z.string().max(5000).nullable().optional(), account_type: z.string().max(5000).nullable().optional(), bank_address: address, bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), branch_code: z.string().max(5000).nullable().optional(), branch_name: z.string().max(5000).nullable().optional()}); export const fundingInstructionsBankTransferFinancialAddress = z.object({aba: fundingInstructionsBankTransferAbaRecord.optional(), iban: fundingInstructionsBankTransferIbanRecord.optional(), sort_code: fundingInstructionsBankTransferSortCodeRecord.optional(), spei: fundingInstructionsBankTransferSpeiRecord.optional(), supported_networks: z.array(z.enum(["ach", "bacs", "chaps", "domestic_wire_us", "fps", "sepa", "spei", "swift", "zengin"])).optional(), swift: fundingInstructionsBankTransferSwiftRecord.optional(), type: z.enum(["aba", "iban", "sort_code", "spei", "swift", "zengin"]), zengin: fundingInstructionsBankTransferZenginRecord.optional()}); export const paymentIntentNextActionDisplayBankTransferInstructions = z.object({amount_remaining: z.number().int().nullable().optional(), currency: z.string().nullable().optional(), financial_addresses: z.array(fundingInstructionsBankTransferFinancialAddress).optional(), hosted_instructions_url: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional(), type: z.enum(["eu_bank_transfer", "gb_bank_transfer", "jp_bank_transfer", "mx_bank_transfer", "us_bank_transfer"])}); export const paymentIntentNextActionKlarnaDisplayQrCode = z.object({data: z.string().max(5000), expires_at: z.number().int().nullable().optional(), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionKonbiniFamilymart = z.object({confirmation_number: z.string().max(5000).optional(), payment_code: z.string().max(5000)}); export const paymentIntentNextActionKonbiniLawson = z.object({confirmation_number: z.string().max(5000).optional(), payment_code: z.string().max(5000)}); export const paymentIntentNextActionKonbiniMinistop = z.object({confirmation_number: z.string().max(5000).optional(), payment_code: z.string().max(5000)}); export const paymentIntentNextActionKonbiniSeicomart = z.object({confirmation_number: z.string().max(5000).optional(), payment_code: z.string().max(5000)}); export const paymentIntentNextActionKonbiniStores = z.object({familymart: paymentIntentNextActionKonbiniFamilymart.nullable().optional(), lawson: paymentIntentNextActionKonbiniLawson.nullable().optional(), ministop: paymentIntentNextActionKonbiniMinistop.nullable().optional(), seicomart: paymentIntentNextActionKonbiniSeicomart.nullable().optional()}); export const paymentIntentNextActionKonbini = z.object({expires_at: z.number().int(), hosted_voucher_url: z.string().max(5000).nullable().optional(), stores: paymentIntentNextActionKonbiniStores}); export const paymentIntentNextActionDisplayMultibancoDetails = z.object({entity: z.string().max(5000).nullable().optional(), expires_at: z.number().int().nullable().optional(), hosted_voucher_url: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentIntentNextActionDisplayOxxoDetails = z.object({expires_after: z.number().int().nullable().optional(), hosted_voucher_url: z.string().max(5000).nullable().optional(), number: z.string().max(5000).nullable().optional()}); export const paymentIntentNextActionPaynowDisplayQrCode = z.object({data: z.string().max(5000), hosted_instructions_url: z.string().max(5000).nullable().optional(), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionPixDisplayQrCode = z.object({data: z.string().max(5000).optional(), expires_at: z.number().int().optional(), hosted_instructions_url: z.string().max(5000).optional(), image_url_png: z.string().max(5000).optional(), image_url_svg: z.string().max(5000).optional()}); export const paymentIntentNextActionPromptpayDisplayQrCode = z.object({data: z.string().max(5000), hosted_instructions_url: z.string().max(5000), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionRedirectToUrl = z.object({return_url: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const paymentIntentNextActionSwishQrCode = z.object({data: z.string().max(5000), expires_at: z.number().int(), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionSwishHandleRedirectOrDisplayQrCode = z.object({hosted_instructions_url: z.string().max(5000), qr_code: paymentIntentNextActionSwishQrCode}); export const paymentIntentNextActionUpiqrCode = z.object({expires_at: z.number().int(), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionUpiHandleRedirectOrDisplayQrCode = z.object({hosted_instructions_url: z.string().max(5000), qr_code: paymentIntentNextActionUpiqrCode}); export const paymentIntentNextActionVerifyWithMicrodeposits = z.object({arrival_date: z.number().int(), hosted_verification_url: z.string().max(5000), microdeposit_type: z.enum(["amounts", "descriptor_code"]).nullable().optional()}); export const paymentIntentNextActionWechatPayDisplayQrCode = z.object({data: z.string().max(5000), hosted_instructions_url: z.string().max(5000), image_data_url: z.string().max(5000), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const paymentIntentNextActionWechatPayRedirectToAndroidApp = z.object({app_id: z.string().max(5000), nonce_str: z.string().max(5000), package: z.string().max(5000), partner_id: z.string().max(5000), prepay_id: z.string().max(5000), sign: z.string().max(5000), timestamp: z.string().max(5000)}); export const paymentIntentNextActionWechatPayRedirectToIosApp = z.object({native_url: z.string().max(5000)}); export const paymentIntentNextAction = z.object({alipay_handle_redirect: paymentIntentNextActionAlipayHandleRedirect.optional(), blik_authorize: paymentIntentNextActionBlikAuthorize.optional(), boleto_display_details: paymentIntentNextActionBoleto.optional(), card_await_notification: paymentIntentNextActionCardAwaitNotification.optional(), cashapp_handle_redirect_or_display_qr_code: paymentIntentNextActionCashappHandleRedirectOrDisplayQrCode.optional(), display_bank_transfer_instructions: paymentIntentNextActionDisplayBankTransferInstructions.optional(), klarna_display_qr_code: paymentIntentNextActionKlarnaDisplayQrCode.optional(), konbini_display_details: paymentIntentNextActionKonbini.optional(), multibanco_display_details: paymentIntentNextActionDisplayMultibancoDetails.optional(), oxxo_display_details: paymentIntentNextActionDisplayOxxoDetails.optional(), paynow_display_qr_code: paymentIntentNextActionPaynowDisplayQrCode.optional(), pix_display_qr_code: paymentIntentNextActionPixDisplayQrCode.optional(), promptpay_display_qr_code: paymentIntentNextActionPromptpayDisplayQrCode.optional(), redirect_to_url: paymentIntentNextActionRedirectToUrl.optional(), swish_handle_redirect_or_display_qr_code: paymentIntentNextActionSwishHandleRedirectOrDisplayQrCode.optional(), type: z.string().max(5000), upi_handle_redirect_or_display_qr_code: paymentIntentNextActionUpiHandleRedirectOrDisplayQrCode.optional(), use_stripe_sdk: z.record(z.string(), z.unknown()).optional(), verify_with_microdeposits: paymentIntentNextActionVerifyWithMicrodeposits.optional(), wechat_pay_display_qr_code: paymentIntentNextActionWechatPayDisplayQrCode.optional(), wechat_pay_redirect_to_android_app: paymentIntentNextActionWechatPayRedirectToAndroidApp.optional(), wechat_pay_redirect_to_ios_app: paymentIntentNextActionWechatPayRedirectToIosApp.optional()}); export const paymentFlowsPaymentDetails = z.object({customer_reference: z.string().max(5000).nullable().optional(), order_reference: z.string().max(5000).nullable().optional()}); export const paymentMethodConfigBizPaymentMethodConfigurationDetails = z.object({id: z.string().max(5000), parent: z.string().max(5000).nullable().optional()}); export const paymentIntentPaymentMethodOptionsMandateOptionsAcssDebit = z.object({custom_mandate_url: z.string().max(5000).optional(), interval_description: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["combined", "interval", "sporadic"]).nullable().optional(), transaction_type: z.enum(["business", "personal"]).nullable().optional()}); export const paymentIntentPaymentMethodOptionsAcssDebit = z.object({mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsAcssDebit.optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const paymentFlowsInstallmentOptions = z.object({enabled: z.boolean(), plan: paymentMethodDetailsCardInstallmentsPlan.optional()}); export const paymentIntentPaymentMethodOptionsMandateOptionsPayto = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), end_date: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["adhoc", "annual", "daily", "fortnightly", "monthly", "quarterly", "semi_annual", "weekly"]).nullable().optional(), payments_per_period: z.number().int().nullable().optional(), purpose: z.enum(["dependant_support", "government", "loan", "mortgage", "other", "pension", "personal", "retail", "salary", "tax", "utility"]).nullable().optional()}); export const paymentMethodOptionsCardPresentRouting = z.object({requested_priority: z.enum(["domestic", "international"]).nullable().optional()}); export const paymentIntentTypeSpecificPaymentMethodOptionsClient = z.object({capture_method: z.enum(["automatic_delayed", "manual", "manual_preferred"]).optional(), installments: paymentFlowsInstallmentOptions.optional(), mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsPayto.optional(), request_incremental_authorization_support: z.boolean().optional(), require_cvc_recollection: z.boolean().optional(), routing: paymentMethodOptionsCardPresentRouting.optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const paymentMethodOptionsAffirm = z.object({capture_method: z.literal("manual").optional(), preferred_locale: z.string().max(30).optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsAfterpayClearpay = z.object({capture_method: z.literal("manual").optional(), reference: z.string().max(5000).nullable().optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsAlipay = z.object({setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsAlma = z.object({capture_method: z.literal("manual").optional()}); export const paymentMethodOptionsAmazonPay = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentIntentPaymentMethodOptionsAuBecsDebit = z.object({setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional()}); export const paymentIntentPaymentMethodOptionsMandateOptionsBacsDebit = z.object({reference_prefix: z.string().max(5000).optional()}); export const paymentIntentPaymentMethodOptionsBacsDebit = z.object({mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsBacsDebit.optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional()}); export const paymentMethodOptionsBancontact = z.object({preferred_language: z.enum(["de", "en", "fr", "nl"]), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentFlowsPrivatePaymentMethodsBilliePaymentMethodOptionsResourceCompanyDetailsResourceCompanyDetailsRegisteredAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const paymentFlowsPrivatePaymentMethodsBilliePaymentMethodOptionsResourceCompanyDetails = z.object({registered_address: paymentFlowsPrivatePaymentMethodsBilliePaymentMethodOptionsResourceCompanyDetailsResourceCompanyDetailsRegisteredAddress.optional(), registered_name: z.string().max(5000).nullable().optional(), registration_number: z.string().max(5000).nullable().optional(), registration_type: z.enum(["ch_ein", "de_hrb", "dk_cvr", "es_cif", "fi_tunnus", "fr_siren", "fr_siret", "it_rea", "nl_kvk", "no_org_number", "no_pno", "se_org_number", "se_pno", "uk_crn"]).optional(), vat: z.string().max(5000).nullable().optional()}); export const paymentMethodOptionsBillie = z.object({capture_method: z.literal("manual").optional(), company_details: paymentFlowsPrivatePaymentMethodsBilliePaymentMethodOptionsResourceCompanyDetails.optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodOptionsBizum = z.object({}); export const paymentIntentPaymentMethodOptionsMandateOptionsBlik = z.object({expires_at: z.number().int().nullable().optional(), type: z.literal("off_session").nullable().optional()}); export const paymentIntentPaymentMethodOptionsBlik = z.object({mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsBlik.optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsBoleto = z.object({expires_after_days: z.number().int(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional()}); export const paymentMethodOptionsCardInstallments = z.object({available_plans: z.array(paymentMethodDetailsCardInstallmentsPlan).nullable().optional(), enabled: z.boolean(), plan: paymentMethodDetailsCardInstallmentsPlan.nullable().optional()}); export const paymentMethodOptionsCardMandateOptions = z.object({amount: z.number().int(), amount_type: z.enum(["fixed", "maximum"]), description: z.string().max(200).nullable().optional(), end_date: z.number().int().nullable().optional(), interval: z.enum(["day", "month", "sporadic", "week", "year"]), interval_count: z.number().int().nullable().optional(), reference: z.string().max(80), start_date: z.number().int(), supported_types: z.array(z.literal("india")).nullable().optional()}); export const paymentIntentPaymentMethodOptionsCard = z.object({capture_method: z.literal("manual").optional(), installments: paymentMethodOptionsCardInstallments.nullable().optional(), mandate_options: paymentMethodOptionsCardMandateOptions.nullable().optional(), network: z.enum(["amex", "cartes_bancaires", "diners", "discover", "eftpos_au", "girocard", "interac", "jcb", "link", "mastercard", "unionpay", "unknown", "visa"]).nullable().optional(), request_extended_authorization: z.enum(["if_available", "never"]).optional(), request_incremental_authorization: z.enum(["if_available", "never"]).optional(), request_multicapture: z.enum(["if_available", "never"]).optional(), request_overcapture: z.enum(["if_available", "never"]).optional(), request_three_d_secure: z.enum(["any", "automatic", "challenge"]).nullable().optional(), require_cvc_recollection: z.boolean().optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), statement_descriptor_suffix_kana: z.string().max(5000).optional(), statement_descriptor_suffix_kanji: z.string().max(5000).optional()}); export const paymentMethodOptionsCardPresent = z.object({capture_method: z.enum(["manual", "manual_preferred"]).optional(), request_extended_authorization: z.boolean().nullable().optional(), request_incremental_authorization_support: z.boolean().nullable().optional(), routing: paymentMethodOptionsCardPresentRouting.optional()}); export const paymentMethodOptionsCashapp = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional()}); export const paymentMethodOptionsCrypto = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsCustomerBalanceEuBankAccount = z.object({country: z.enum(["BE", "DE", "ES", "FR", "IE", "NL"])}); export const paymentMethodOptionsCustomerBalanceBankTransfer = z.object({eu_bank_transfer: paymentMethodOptionsCustomerBalanceEuBankAccount.optional(), requested_address_types: z.array(z.enum(["aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin"])).optional(), type: z.enum(["eu_bank_transfer", "gb_bank_transfer", "jp_bank_transfer", "mx_bank_transfer", "us_bank_transfer"]).nullable().optional()}); export const paymentMethodOptionsCustomerBalance = z.object({bank_transfer: paymentMethodOptionsCustomerBalanceBankTransfer.optional(), funding_type: z.literal("bank_transfer").nullable().optional(), setup_future_usage: z.literal("none").optional()}); export const paymentIntentPaymentMethodOptionsEps = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsFpx = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsGiropay = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsGrabpay = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsIdeal = z.object({setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsInteracPresent = z.object({}); export const paymentFlowsPrivatePaymentMethodsKakaoPayPaymentMethodOptions = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsKlarna = z.object({capture_method: z.literal("manual").optional(), preferred_locale: z.string().max(5000).nullable().optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional()}); export const paymentMethodOptionsKonbini = z.object({confirmation_number: z.string().max(5000).nullable().optional(), expires_after_days: z.number().int().nullable().optional(), expires_at: z.number().int().nullable().optional(), product_description: z.string().max(5000).nullable().optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsKrCard = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentIntentPaymentMethodOptionsLink = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsMbWay = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentIntentPaymentMethodOptionsMobilepay = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsMultibanco = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentFlowsPrivatePaymentMethodsNaverPayPaymentMethodOptions = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentIntentPaymentMethodOptionsNzBankAccount = z.object({setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional()}); export const paymentMethodOptionsOxxo = z.object({expires_after_days: z.number().int(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsP24 = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsPayByBank = z.object({}); export const paymentFlowsPrivatePaymentMethodsPaycoPaymentMethodOptions = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsPaynow = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsPaypal = z.object({capture_method: z.literal("manual").optional(), preferred_locale: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsPaypay = z.object({}); export const paymentIntentPaymentMethodOptionsPayto = z.object({mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsPayto.optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsMandateOptionsPix = z.object({amount: z.number().int().optional(), amount_includes_iof: z.enum(["always", "never"]).optional(), amount_type: z.enum(["fixed", "maximum"]).optional(), currency: z.string().optional(), end_date: z.string().max(5000).optional(), payment_schedule: z.enum(["halfyearly", "monthly", "quarterly", "weekly", "yearly"]).optional(), reference: z.string().max(5000).optional(), start_date: z.string().max(5000).optional()}); export const paymentMethodOptionsPix = z.object({amount_includes_iof: z.enum(["always", "never"]).optional(), expires_after_seconds: z.number().int().nullable().optional(), expires_at: z.number().int().nullable().optional(), mandate_options: paymentMethodOptionsMandateOptionsPix.optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsPromptpay = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsRevolutPay = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentFlowsPrivatePaymentMethodsSamsungPayPaymentMethodOptions = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsSatispay = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional()}); export const paymentMethodOptionsScalapay = z.object({capture_method: z.literal("manual").optional()}); export const paymentIntentPaymentMethodOptionsMandateOptionsSepaDebit = z.object({reference_prefix: z.string().max(5000).optional()}); export const paymentIntentPaymentMethodOptionsSepaDebit = z.object({mandate_options: paymentIntentPaymentMethodOptionsMandateOptionsSepaDebit.optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional()}); export const paymentMethodOptionsSequra = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsSofort = z.object({preferred_language: z.enum(["de", "en", "es", "fr", "it", "nl", "pl"]).nullable().optional(), setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsSunbit = z.object({capture_method: z.literal("manual").optional(), setup_future_usage: z.literal("none").optional()}); export const paymentIntentPaymentMethodOptionsSwish = z.object({reference: z.string().max(35).nullable().optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsTwint = z.object({setup_future_usage: z.enum(["none", "off_session"]).optional()}); export const paymentMethodOptionsUpi = z.object({setup_future_usage: z.enum(["off_session", "on_session"]).optional()}); export const paymentFlowsPrivatePaymentMethodsFinancialConnectionsCommonLinkedAccountOptionsFilters = z.object({account_subcategories: z.array(z.enum(["checking", "savings"])).optional()}); export const linkedAccountOptionsCommon = z.object({filters: paymentFlowsPrivatePaymentMethodsFinancialConnectionsCommonLinkedAccountOptionsFilters.optional(), permissions: z.array(z.enum(["balances", "ownership", "payment_method", "transactions"])).optional(), prefetch: z.array(z.enum(["balances", "ownership", "transactions"])).nullable().optional(), return_url: z.string().max(5000).optional()}); export const paymentMethodOptionsUsBankAccountMandateOptions = z.object({collection_method: z.literal("paper").optional()}); export const paymentIntentPaymentMethodOptionsUsBankAccount = z.object({financial_connections: linkedAccountOptionsCommon.optional(), mandate_options: paymentMethodOptionsUsBankAccountMandateOptions.optional(), setup_future_usage: z.enum(["none", "off_session", "on_session"]).optional(), target_date: z.string().max(5000).optional(), transaction_purpose: z.enum(["goods", "other", "services", "unspecified"]).optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const paymentMethodOptionsWechatPay = z.object({app_id: z.string().max(5000).nullable().optional(), client: z.enum(["android", "ios", "web"]).nullable().optional(), setup_future_usage: z.literal("none").optional()}); export const paymentMethodOptionsZip = z.object({setup_future_usage: z.literal("none").optional()}); export const paymentIntentPaymentMethodOptions = z.object({acss_debit: z.union([paymentIntentPaymentMethodOptionsAcssDebit, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), affirm: z.union([paymentMethodOptionsAffirm, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), afterpay_clearpay: z.union([paymentMethodOptionsAfterpayClearpay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), alipay: z.union([paymentMethodOptionsAlipay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), alma: z.union([paymentMethodOptionsAlma, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), amazon_pay: z.union([paymentMethodOptionsAmazonPay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), au_becs_debit: z.union([paymentIntentPaymentMethodOptionsAuBecsDebit, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), bacs_debit: z.union([paymentIntentPaymentMethodOptionsBacsDebit, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), bancontact: z.union([paymentMethodOptionsBancontact, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), billie: z.union([paymentMethodOptionsBillie, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), bizum: z.union([paymentMethodOptionsBizum, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), blik: z.union([paymentIntentPaymentMethodOptionsBlik, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), boleto: z.union([paymentMethodOptionsBoleto, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), card: z.union([paymentIntentPaymentMethodOptionsCard, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), card_present: z.union([paymentMethodOptionsCardPresent, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), cashapp: z.union([paymentMethodOptionsCashapp, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), crypto: z.union([paymentMethodOptionsCrypto, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), customer_balance: z.union([paymentMethodOptionsCustomerBalance, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), eps: z.union([paymentIntentPaymentMethodOptionsEps, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), fpx: z.union([paymentMethodOptionsFpx, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), giropay: z.union([paymentMethodOptionsGiropay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), grabpay: z.union([paymentMethodOptionsGrabpay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), ideal: z.union([paymentMethodOptionsIdeal, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), interac_present: z.union([paymentMethodOptionsInteracPresent, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), kakao_pay: z.union([paymentFlowsPrivatePaymentMethodsKakaoPayPaymentMethodOptions, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), klarna: z.union([paymentMethodOptionsKlarna, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), konbini: z.union([paymentMethodOptionsKonbini, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), kr_card: z.union([paymentMethodOptionsKrCard, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), link: z.union([paymentIntentPaymentMethodOptionsLink, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), mb_way: z.union([paymentMethodOptionsMbWay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), mobilepay: z.union([paymentIntentPaymentMethodOptionsMobilepay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), multibanco: z.union([paymentMethodOptionsMultibanco, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), naver_pay: z.union([paymentFlowsPrivatePaymentMethodsNaverPayPaymentMethodOptions, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), nz_bank_account: z.union([paymentIntentPaymentMethodOptionsNzBankAccount, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), oxxo: z.union([paymentMethodOptionsOxxo, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), p24: z.union([paymentMethodOptionsP24, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), pay_by_bank: z.union([paymentMethodOptionsPayByBank, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), payco: z.union([paymentFlowsPrivatePaymentMethodsPaycoPaymentMethodOptions, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), paynow: z.union([paymentMethodOptionsPaynow, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), paypal: z.union([paymentMethodOptionsPaypal, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), paypay: z.union([paymentMethodOptionsPaypay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), payto: z.union([paymentIntentPaymentMethodOptionsPayto, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), pix: z.union([paymentMethodOptionsPix, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), promptpay: z.union([paymentMethodOptionsPromptpay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), revolut_pay: z.union([paymentMethodOptionsRevolutPay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), samsung_pay: z.union([paymentFlowsPrivatePaymentMethodsSamsungPayPaymentMethodOptions, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), satispay: z.union([paymentMethodOptionsSatispay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), scalapay: z.union([paymentMethodOptionsScalapay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), sepa_debit: z.union([paymentIntentPaymentMethodOptionsSepaDebit, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), sequra: z.union([paymentMethodOptionsSequra, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), sofort: z.union([paymentMethodOptionsSofort, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), sunbit: z.union([paymentMethodOptionsSunbit, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), swish: z.union([paymentIntentPaymentMethodOptionsSwish, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), twint: z.union([paymentMethodOptionsTwint, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), upi: z.union([paymentMethodOptionsUpi, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), us_bank_account: z.union([paymentIntentPaymentMethodOptionsUsBankAccount, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), wechat_pay: z.union([paymentMethodOptionsWechatPay, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional(), zip: z.union([paymentMethodOptionsZip, paymentIntentTypeSpecificPaymentMethodOptionsClient]).optional()}); export const paymentsPrimitivesPaymentRecordsResourceAmount = z.object({currency: z.string(), value: z.number().int()}); export const paymentsPrimitivesPaymentRecordsResourceCustomerDetails = z.object({customer: z.string().max(5000).nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), phone: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordAcssDebit = z.object({bank_name: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), institution_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional(), transit_number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordAffirm = z.object({location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordAfterpayClearpay = z.object({order_id: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordAlipay = z.object({buyer_id: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodAlmaDetailsResourceInstallments = z.object({count: z.number().int()}); export const paymentMethodDetailsPaymentRecordAlma = z.object({installments: paymentsPrimitivesPaymentRecordsResourcePaymentMethodAlmaDetailsResourceInstallments.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodAmazonPayDetailsResourceFundingResourceFundingCard = z.object({brand: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), funding: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodAmazonPayDetailsResourceFunding = z.object({card: paymentsPrimitivesPaymentRecordsResourcePaymentMethodAmazonPayDetailsResourceFundingResourceFundingCard.optional(), type: z.literal("card").nullable().optional()}); export const paymentMethodDetailsPaymentRecordAmazonPay = z.object({funding: paymentsPrimitivesPaymentRecordsResourcePaymentMethodAmazonPayDetailsResourceFunding.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordAuBecsDebit = z.object({bsb_number: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsPaymentRecordBacsDebit = z.object({expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).nullable().optional(), sort_code: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordBancontact = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "fr", "nl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordBillie = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourceAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourceBillingDetails = z.object({address: paymentsPrimitivesPaymentRecordsResourceAddress, email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), phone: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordBizum = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordBlik = z.object({buyer_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordBoleto = z.object({tax_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceChecks = z.object({address_line1_check: z.enum(["fail", "pass", "unavailable", "unchecked"]).nullable().optional(), address_postal_code_check: z.enum(["fail", "pass", "unavailable", "unchecked"]).nullable().optional(), cvc_check: z.enum(["fail", "pass", "unavailable", "unchecked"]).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceInstallmentPlan = z.object({count: z.number().int().nullable().optional(), interval: z.literal("month").nullable().optional(), type: z.enum(["bonus", "fixed_count", "revolving"])}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceInstallments = z.object({plan: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceInstallmentPlan.nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceNetworkToken = z.object({used: z.boolean()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceThreeDSecure = z.object({authentication_flow: z.enum(["challenge", "frictionless"]).nullable().optional(), electronic_commerce_indicator: z.enum(["01", "02", "03", "04", "05", "06", "07"]).nullable().optional(), exemption_indicator: z.enum(["low_risk", "none"]).nullable().optional(), exemption_indicator_applied: z.boolean().nullable().optional(), result: z.enum(["attempt_acknowledged", "authenticated", "data_share_only", "exempted", "failed", "not_supported", "processing_error"]).nullable().optional(), result_reason: z.enum(["abandoned", "bypassed", "canceled", "card_not_enrolled", "network_not_supported", "protocol_error", "rejected"]).nullable().optional(), version: z.enum(["1.0.2", "2.1.0", "2.2.0", "2.3.0", "2.3.1"]).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceApplePay = z.object({type: z.string().max(5000)}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceGooglePay = z.object({}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceLink = z.object({}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWallet = z.object({apple_pay: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceApplePay.optional(), dynamic_last4: z.string().max(5000).optional(), google_pay: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceGooglePay.optional(), link: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWalletResourceLink.optional(), type: z.string().max(5000)}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetails = z.object({authorization_code: z.string().max(5000).nullable().optional(), brand: z.enum(["amex", "cartes_bancaires", "diners", "discover", "eftpos_au", "interac", "jcb", "link", "mastercard", "unionpay", "unknown", "visa"]).nullable().optional(), capture_before: z.number().int().optional(), checks: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceChecks.nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.enum(["credit", "debit", "prepaid", "unknown"]).nullable().optional(), installments: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceInstallments.nullable().optional(), last4: z.string().max(5000).nullable().optional(), network: z.enum(["amex", "cartes_bancaires", "diners", "discover", "eftpos_au", "interac", "jcb", "link", "mastercard", "unionpay", "unknown", "visa"]).nullable().optional(), network_advice_code: z.string().max(5000).nullable().optional(), network_decline_code: z.string().max(5000).nullable().optional(), network_token: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceNetworkToken.nullable().optional(), network_transaction_id: z.string().max(5000).nullable().optional(), three_d_secure: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceThreeDSecure.nullable().optional(), wallet: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetailsResourceWallet.nullable().optional()}); export const paymentMethodDetailsPaymentRecordCashapp = z.object({buyer_id: z.string().max(5000).nullable().optional(), cashtag: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodCustomDetails = z.object({display_name: z.string().max(5000), type: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordEps = z.object({bank: z.enum(["arzte_und_apotheker_bank", "austrian_anadi_bank_ag", "bank_austria", "bankhaus_carl_spangler", "bankhaus_schelhammer_und_schattera_ag", "bawag_psk_ag", "bks_bank_ag", "brull_kallmus_bank_ag", "btv_vier_lander_bank", "capital_bank_grawe_gruppe_ag", "deutsche_bank_ag", "dolomitenbank", "easybank_ag", "erste_bank_und_sparkassen", "hypo_alpeadriabank_international_ag", "hypo_bank_burgenland_aktiengesellschaft", "hypo_noe_lb_fur_niederosterreich_u_wien", "hypo_oberosterreich_salzburg_steiermark", "hypo_tirol_bank_ag", "hypo_vorarlberg_bank_ag", "marchfelder_bank", "oberbank_ag", "raiffeisen_bankengruppe_osterreich", "schoellerbank_ag", "sparda_bank_wien", "volksbank_gruppe", "volkskreditbank_ag", "vr_bank_braunau"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordGiropay = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordIdeal = z.object({bank: z.enum(["abn_amro", "adyen", "asn_bank", "bunq", "buut", "finom", "handelsbanken", "ing", "knab", "mollie", "moneyou", "n26", "nn", "rabobank", "regiobank", "revolut", "sns_bank", "triodos_bank", "van_lanschot", "yoursafe"]).nullable().optional(), bic: z.enum(["ABNANL2A", "ADYBNL2A", "ASNBNL21", "BITSNL2A", "BUNQNL2A", "BUUTNL2A", "FNOMNL22", "FVLBNL22", "HANDNL2A", "INGBNL2A", "KNABNL2H", "MLLENL2A", "MOYONL21", "NNBANL2G", "NTSBDEB1", "RABONL2U", "RBRBNL21", "REVOIE23", "REVOLT21", "SNSBNL2A", "TRIONL2U"]).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordKakaoPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodKlarnaDetailsResourcePayerDetailsResourcePayerDetailsAddress = z.object({country: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodKlarnaDetailsResourcePayerDetails = z.object({address: paymentsPrimitivesPaymentRecordsResourcePaymentMethodKlarnaDetailsResourcePayerDetailsResourcePayerDetailsAddress.nullable().optional()}); export const paymentMethodDetailsPaymentRecordKlarna = z.object({location: z.string().max(5000).optional(), payer_details: paymentsPrimitivesPaymentRecordsResourcePaymentMethodKlarnaDetailsResourcePayerDetails.nullable().optional(), payment_method_category: z.string().max(5000).nullable().optional(), preferred_locale: z.string().max(5000).nullable().optional(), reader: z.string().max(5000).optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodKonbiniDetailsResourceStore = z.object({chain: z.enum(["familymart", "lawson", "ministop", "seicomart"]).nullable().optional()}); export const paymentMethodDetailsPaymentRecordKonbini = z.object({store: paymentsPrimitivesPaymentRecordsResourcePaymentMethodKonbiniDetailsResourceStore.nullable().optional()}); export const paymentMethodDetailsPaymentRecordLink = z.object({country: z.string().max(5000).nullable().optional(), funding_source_group: z.string().max(5000).optional()}); export const paymentMethodDetailsPaymentRecordMbWay = z.object({}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodMobilepayDetailsResourceCard = z.object({brand: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordMobilepay = z.object({card: paymentsPrimitivesPaymentRecordsResourcePaymentMethodMobilepayDetailsResourceCard.nullable().optional()}); export const paymentMethodDetailsPaymentRecordMomo = z.object({fingerprint: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsPaymentRecordMultibanco = z.object({entity: z.string().max(5000).nullable().optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordNaverPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordNzBankAccount = z.object({account_holder_name: z.string().max(5000).nullable().optional(), bank_code: z.string().max(5000), bank_name: z.string().max(5000), branch_code: z.string().max(5000), expected_debit_date: z.string().max(5000).optional(), last4: z.string().max(5000), suffix: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordOxxo = z.object({number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordP24 = z.object({bank: z.enum(["alior_bank", "bank_millennium", "bank_nowy_bfg_sa", "bank_pekao_sa", "banki_spbdzielcze", "blik", "bnp_paribas", "boz", "citi_handlowy", "credit_agricole", "envelobank", "etransfer_pocztowy24", "getin_bank", "ideabank", "ing", "inteligo", "mbank_mtransfer", "nest_przelew", "noble_pay", "pbac_z_ipko", "plus_bank", "santander_przelew24", "tmobile_usbugi_bankowe", "toyota_bank", "velobank", "volkswagen_bank"]).nullable().optional(), reference: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordPayByBank = z.object({}); export const paymentMethodDetailsPaymentRecordPayco = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordPaynow = z.object({location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), reference: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordPaypay = z.object({}); export const paymentMethodDetailsPaymentRecordPayto = z.object({bsb_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional(), pay_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordPix = z.object({bank_transaction_id: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsPaymentRecordPromptpay = z.object({reference: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodRevolutPayDetailsResourceFundingResourceFundingCard = z.object({brand: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), funding: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodRevolutPayDetailsResourceFunding = z.object({card: paymentsPrimitivesPaymentRecordsResourcePaymentMethodRevolutPayDetailsResourceFundingResourceFundingCard.optional(), type: z.literal("card").nullable().optional()}); export const paymentMethodDetailsPaymentRecordRevolutPay = z.object({funding: paymentsPrimitivesPaymentRecordsResourcePaymentMethodRevolutPayDetailsResourceFunding.optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSamsungPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSatispay = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordScalapay = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSepaDebit = z.object({bank_code: z.string().max(5000).nullable().optional(), branch_code: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSequra = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSofort = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "es", "fr", "it", "nl", "pl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSunbit = z.object({transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordSwish = z.object({fingerprint: z.string().max(5000).nullable().optional(), payment_reference: z.string().max(5000).nullable().optional(), verified_phone_last4: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordTwint = z.object({mandate: z.string().max(5000).optional()}); export const paymentMethodDetailsPaymentRecordUpi = z.object({vpa: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), expected_debit_date: z.string().max(5000).optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).optional(), payment_reference: z.string().max(5000).nullable().optional(), routing_number: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordWechatPay = z.object({fingerprint: z.string().max(5000).nullable().optional(), location: z.string().max(5000).optional(), reader: z.string().max(5000).optional(), transaction_id: z.string().max(5000).nullable().optional()}); export const paymentMethodDetailsPaymentRecordZip = z.object({}); export const paymentsPrimitivesPaymentRecordsResourcePaymentMethodDetails = z.object({ach_credit_transfer: paymentMethodDetailsAchCreditTransfer.optional(), ach_debit: paymentMethodDetailsAchDebit.optional(), acss_debit: paymentMethodDetailsPaymentRecordAcssDebit.optional(), affirm: paymentMethodDetailsPaymentRecordAffirm.optional(), afterpay_clearpay: paymentMethodDetailsPaymentRecordAfterpayClearpay.optional(), alipay: paymentMethodDetailsPaymentRecordAlipay.optional(), alma: paymentMethodDetailsPaymentRecordAlma.optional(), amazon_pay: paymentMethodDetailsPaymentRecordAmazonPay.optional(), au_becs_debit: paymentMethodDetailsPaymentRecordAuBecsDebit.optional(), bacs_debit: paymentMethodDetailsPaymentRecordBacsDebit.optional(), bancontact: paymentMethodDetailsPaymentRecordBancontact.optional(), billie: paymentMethodDetailsPaymentRecordBillie.optional(), billing_details: paymentsPrimitivesPaymentRecordsResourceBillingDetails.nullable().optional(), bizum: paymentMethodDetailsPaymentRecordBizum.optional(), blik: paymentMethodDetailsPaymentRecordBlik.optional(), boleto: paymentMethodDetailsPaymentRecordBoleto.optional(), card: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCardDetails.optional(), card_present: paymentMethodDetailsCardPresent.optional(), cashapp: paymentMethodDetailsPaymentRecordCashapp.optional(), crypto: paymentMethodDetailsCrypto.optional(), custom: paymentsPrimitivesPaymentRecordsResourcePaymentMethodCustomDetails.optional(), customer_balance: paymentMethodDetailsCustomerBalance.optional(), eps: paymentMethodDetailsPaymentRecordEps.optional(), fpx: paymentMethodDetailsFpx.optional(), giropay: paymentMethodDetailsPaymentRecordGiropay.optional(), grabpay: paymentMethodDetailsGrabpay.optional(), ideal: paymentMethodDetailsPaymentRecordIdeal.optional(), interac_present: paymentMethodDetailsInteracPresent.optional(), kakao_pay: paymentMethodDetailsPaymentRecordKakaoPay.optional(), klarna: paymentMethodDetailsPaymentRecordKlarna.optional(), konbini: paymentMethodDetailsPaymentRecordKonbini.optional(), kr_card: paymentMethodDetailsKrCard.optional(), link: paymentMethodDetailsPaymentRecordLink.optional(), mb_way: paymentMethodDetailsPaymentRecordMbWay.optional(), mobilepay: paymentMethodDetailsPaymentRecordMobilepay.optional(), momo: paymentMethodDetailsPaymentRecordMomo.optional(), multibanco: paymentMethodDetailsPaymentRecordMultibanco.optional(), naver_pay: paymentMethodDetailsPaymentRecordNaverPay.optional(), nz_bank_account: paymentMethodDetailsPaymentRecordNzBankAccount.optional(), oxxo: paymentMethodDetailsPaymentRecordOxxo.optional(), p24: paymentMethodDetailsPaymentRecordP24.optional(), pay_by_bank: paymentMethodDetailsPaymentRecordPayByBank.optional(), payco: paymentMethodDetailsPaymentRecordPayco.optional(), payment_method: z.string().max(5000).nullable().optional(), paynow: paymentMethodDetailsPaymentRecordPaynow.optional(), paypal: paymentMethodDetailsPaypal.optional(), paypay: paymentMethodDetailsPaymentRecordPaypay.optional(), payto: paymentMethodDetailsPaymentRecordPayto.optional(), pix: paymentMethodDetailsPaymentRecordPix.optional(), promptpay: paymentMethodDetailsPaymentRecordPromptpay.optional(), revolut_pay: paymentMethodDetailsPaymentRecordRevolutPay.optional(), samsung_pay: paymentMethodDetailsPaymentRecordSamsungPay.optional(), satispay: paymentMethodDetailsPaymentRecordSatispay.optional(), scalapay: paymentMethodDetailsPaymentRecordScalapay.optional(), sepa_debit: paymentMethodDetailsPaymentRecordSepaDebit.optional(), sequra: paymentMethodDetailsPaymentRecordSequra.optional(), sofort: paymentMethodDetailsPaymentRecordSofort.optional(), stripe_account: paymentMethodDetailsStripeAccount.optional(), sunbit: paymentMethodDetailsPaymentRecordSunbit.optional(), swish: paymentMethodDetailsPaymentRecordSwish.optional(), twint: paymentMethodDetailsPaymentRecordTwint.optional(), type: z.string().max(5000), upi: paymentMethodDetailsPaymentRecordUpi.optional(), us_bank_account: paymentMethodDetailsPaymentRecordUsBankAccount.optional(), wechat: paymentMethodDetailsWechat.optional(), wechat_pay: paymentMethodDetailsPaymentRecordWechatPay.optional(), zip: paymentMethodDetailsPaymentRecordZip.optional()}); export const paymentsPrimitivesPaymentRecordsResourceProcessorDetailsResourceCustomDetails = z.object({payment_reference: z.string().max(5000).nullable().optional()}); export const paymentsPrimitivesPaymentRecordsResourceProcessorDetails = z.object({custom: paymentsPrimitivesPaymentRecordsResourceProcessorDetailsResourceCustomDetails.optional(), type: z.literal("custom")}); export const paymentsPrimitivesPaymentRecordsResourceShippingDetails = z.object({address: paymentsPrimitivesPaymentRecordsResourceAddress, name: z.string().max(5000).nullable().optional(), phone: z.string().max(5000).nullable().optional()}); export const paymentRecord = z.object({amount: paymentsPrimitivesPaymentRecordsResourceAmount, amount_authorized: paymentsPrimitivesPaymentRecordsResourceAmount, amount_canceled: paymentsPrimitivesPaymentRecordsResourceAmount, amount_failed: paymentsPrimitivesPaymentRecordsResourceAmount, amount_guaranteed: paymentsPrimitivesPaymentRecordsResourceAmount, amount_refunded: paymentsPrimitivesPaymentRecordsResourceAmount, amount_requested: paymentsPrimitivesPaymentRecordsResourceAmount, application: z.string().max(5000).nullable().optional(), created: z.number().int(), customer_details: paymentsPrimitivesPaymentRecordsResourceCustomerDetails.nullable().optional(), customer_presence: z.enum(["off_session", "on_session"]).nullable().optional(), description: z.string().max(5000).nullable().optional(), id: z.string().max(5000), latest_payment_attempt_record: z.string().max(5000).nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("payment_record"), payment_method_details: paymentsPrimitivesPaymentRecordsResourcePaymentMethodDetails.nullable().optional(), processor_details: paymentsPrimitivesPaymentRecordsResourceProcessorDetails, reported_by: z.enum(["self", "stripe"]), shipping_details: paymentsPrimitivesPaymentRecordsResourceShippingDetails.nullable().optional()}); export const paymentIntentProcessingCustomerNotification = z.object({approval_requested: z.boolean().nullable().optional(), completes_at: z.number().int().nullable().optional()}); export const paymentIntentCardProcessing = z.object({customer_notification: paymentIntentProcessingCustomerNotification.optional()}); export const paymentIntentProcessing = z.object({card: paymentIntentCardProcessing.optional(), type: z.literal("card")}); export const paymentData = z.object({description: z.string().max(5000).optional(), metadata: z.record(z.string(), z.string().max(500)).optional()}); export const transferData = z.object({amount: z.number().int().optional(), description: z.string().max(5000).optional(), destination: z.union([z.string().max(5000), account]), metadata: z.record(z.string(), z.string().max(500)).optional(), payment_data: paymentData.optional()}); export const paymentIntent: z.ZodType = z.object({allowed_payment_method_types: z.array(z.enum(["acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "card_present", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "interac_present", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip"])).nullable().optional(), amount: z.number().int().optional(), amount_capturable: z.number().int().optional(), amount_details: z.union([paymentFlowsAmountDetails, paymentFlowsAmountDetailsClient]).optional(), amount_received: z.number().int().optional(), application: z.union([z.string().max(5000), application]).nullable().optional(), application_fee_amount: z.number().int().nullable().optional(), automatic_payment_methods: paymentFlowsAutomaticPaymentMethodsPaymentIntent.nullable().optional(), canceled_at: z.number().int().nullable().optional(), cancellation_reason: z.enum(["abandoned", "automatic", "duplicate", "expired", "failed_invoice", "fraudulent", "requested_by_customer", "void_invoice"]).nullable().optional(), capture_method: z.enum(["automatic", "automatic_async", "manual"]).optional(), client_secret: z.string().max(5000).nullable().optional(), confirmation_method: z.enum(["automatic", "manual"]).optional(), created: z.number().int(), currency: z.string().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), excluded_payment_method_types: z.array(z.enum(["acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boleto", "card", "cashapp", "crypto", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "kakao_pay", "klarna", "konbini", "kr_card", "mb_way", "mobilepay", "multibanco", "naver_pay", "nz_bank_account", "oxxo", "p24", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "sofort", "sunbit", "swish", "twint", "upi", "us_bank_account", "wechat_pay", "zip"])).nullable().optional(), hooks: paymentFlowsPaymentIntentAsyncWorkflows.optional(), id: z.string().max(5000), last_payment_error: z.lazy(() => apiErrors.nullable().optional()), latest_charge: z.union([z.string().max(5000), charge]).nullable().optional(), livemode: z.boolean(), managed_payments: smorResourceManagedPayments.nullable().optional(), metadata: z.record(z.string(), z.string().max(500)).optional(), next_action: paymentIntentNextAction.nullable().optional(), object: z.literal("payment_intent"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), payment_details: paymentFlowsPaymentDetails.optional(), payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), payment_method_configuration_details: paymentMethodConfigBizPaymentMethodConfigurationDetails.nullable().optional(), payment_method_options: paymentIntentPaymentMethodOptions.nullable().optional(), payment_method_types: z.array(z.string().max(5000)).optional(), payment_record: z.union([z.string().max(5000), paymentRecord]).nullable().optional(), presentment_details: paymentFlowsPaymentIntentPresentmentDetails.optional(), processing: paymentIntentProcessing.nullable().optional(), receipt_email: z.string().max(5000).nullable().optional(), review: z.union([z.string().max(5000), review]).nullable().optional(), setup_future_usage: z.enum(["off_session", "on_session"]).nullable().optional(), shipping: shipping.nullable().optional(), statement_descriptor: z.string().max(5000).nullable().optional(), statement_descriptor_suffix: z.string().max(5000).nullable().optional(), status: z.enum(["canceled", "processing", "requires_action", "requires_capture", "requires_confirmation", "requires_payment_method", "succeeded"]), transfer_data: transferData.nullable().optional(), transfer_group: z.string().max(5000).nullable().optional()}); export const paymentFlowsAutomaticPaymentMethodsSetupIntent = z.object({allow_redirects: z.enum(["always", "never"]).optional(), enabled: z.boolean().nullable().optional()}); export const setupIntentNextActionPixDisplayQrCode = z.object({data: z.string().max(5000), expires_at: z.number().int(), hosted_instructions_url: z.string().max(5000), image_url_png: z.string().max(5000), image_url_svg: z.string().max(5000)}); export const setupIntentNextActionRedirectToUrl = z.object({return_url: z.string().max(5000).nullable().optional(), url: z.string().max(5000).nullable().optional()}); export const setupIntentNextActionVerifyWithMicrodeposits = z.object({arrival_date: z.number().int(), hosted_verification_url: z.string().max(5000), microdeposit_type: z.enum(["amounts", "descriptor_code"]).nullable().optional()}); export const setupIntentNextAction = z.object({blik_authorize: paymentIntentNextActionBlikAuthorize.optional(), cashapp_handle_redirect_or_display_qr_code: paymentIntentNextActionCashappHandleRedirectOrDisplayQrCode.optional(), pix_display_qr_code: setupIntentNextActionPixDisplayQrCode.optional(), redirect_to_url: setupIntentNextActionRedirectToUrl.optional(), type: z.string().max(5000), upi_handle_redirect_or_display_qr_code: paymentIntentNextActionUpiHandleRedirectOrDisplayQrCode.optional(), use_stripe_sdk: z.record(z.string(), z.unknown()).optional(), verify_with_microdeposits: setupIntentNextActionVerifyWithMicrodeposits.optional()}); export const setupIntentPaymentMethodOptionsMandateOptionsAcssDebit = z.object({custom_mandate_url: z.string().max(5000).optional(), default_for: z.array(z.enum(["invoice", "subscription"])).optional(), interval_description: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["combined", "interval", "sporadic"]).nullable().optional(), transaction_type: z.enum(["business", "personal"]).nullable().optional()}); export const setupIntentPaymentMethodOptionsAcssDebit = z.object({currency: z.enum(["cad", "usd"]).nullable().optional(), mandate_options: setupIntentPaymentMethodOptionsMandateOptionsAcssDebit.optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const setupIntentPaymentMethodOptionsMandateOptionsPayto = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), end_date: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["adhoc", "annual", "daily", "fortnightly", "monthly", "quarterly", "semi_annual", "weekly"]).nullable().optional(), payments_per_period: z.number().int().nullable().optional(), purpose: z.enum(["dependant_support", "government", "loan", "mortgage", "other", "pension", "personal", "retail", "salary", "tax", "utility"]).nullable().optional(), start_date: z.string().max(5000).nullable().optional()}); export const setupIntentTypeSpecificPaymentMethodOptionsClient = z.object({mandate_options: setupIntentPaymentMethodOptionsMandateOptionsPayto.optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const setupIntentPaymentMethodOptionsAmazonPay = z.object({}); export const setupIntentPaymentMethodOptionsMandateOptionsBacsDebit = z.object({reference_prefix: z.string().max(5000).optional()}); export const setupIntentPaymentMethodOptionsBacsDebit = z.object({mandate_options: setupIntentPaymentMethodOptionsMandateOptionsBacsDebit.optional()}); export const setupIntentPaymentMethodOptionsBizum = z.object({}); export const setupIntentPaymentMethodOptionsMandateOptionsBlik = z.object({expires_at: z.number().int().nullable().optional(), type: z.literal("off_session").nullable().optional()}); export const setupIntentPaymentMethodOptionsBlik = z.object({mandate_options: setupIntentPaymentMethodOptionsMandateOptionsBlik.optional()}); export const setupIntentPaymentMethodOptionsCardMandateOptions = z.object({amount: z.number().int(), amount_type: z.enum(["fixed", "maximum"]), currency: z.string(), description: z.string().max(200).nullable().optional(), end_date: z.number().int().nullable().optional(), interval: z.enum(["day", "month", "sporadic", "week", "year"]), interval_count: z.number().int().nullable().optional(), reference: z.string().max(80), start_date: z.number().int(), supported_types: z.array(z.literal("india")).nullable().optional()}); export const setupIntentPaymentMethodOptionsCard = z.object({mandate_options: setupIntentPaymentMethodOptionsCardMandateOptions.nullable().optional(), network: z.enum(["amex", "cartes_bancaires", "diners", "discover", "eftpos_au", "girocard", "interac", "jcb", "link", "mastercard", "unionpay", "unknown", "visa"]).nullable().optional(), request_three_d_secure: z.enum(["any", "automatic", "challenge"]).nullable().optional()}); export const setupIntentPaymentMethodOptionsCardPresent = z.object({}); export const setupIntentPaymentMethodOptionsKlarna = z.object({currency: z.string().nullable().optional(), preferred_locale: z.string().max(5000).nullable().optional()}); export const setupIntentPaymentMethodOptionsLink = z.object({}); export const setupIntentPaymentMethodOptionsPaypal = z.object({billing_agreement_id: z.string().max(5000).nullable().optional()}); export const setupIntentPaymentMethodOptionsPayto = z.object({mandate_options: setupIntentPaymentMethodOptionsMandateOptionsPayto.optional()}); export const setupIntentPaymentMethodOptionsPix = z.object({mandate_options: paymentMethodOptionsMandateOptionsPix.optional()}); export const setupIntentPaymentMethodOptionsMandateOptionsSepaDebit = z.object({reference_prefix: z.string().max(5000).optional()}); export const setupIntentPaymentMethodOptionsSepaDebit = z.object({mandate_options: setupIntentPaymentMethodOptionsMandateOptionsSepaDebit.optional()}); export const paymentMethodOptionsMandateOptionsUpi = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), description: z.string().max(20).nullable().optional(), end_date: z.number().int().nullable().optional()}); export const setupIntentPaymentMethodOptionsUpi = z.object({mandate_options: paymentMethodOptionsMandateOptionsUpi.optional()}); export const setupIntentPaymentMethodOptionsUsBankAccount = z.object({financial_connections: linkedAccountOptionsCommon.optional(), mandate_options: paymentMethodOptionsUsBankAccountMandateOptions.optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const setupIntentPaymentMethodOptions = z.object({acss_debit: z.union([setupIntentPaymentMethodOptionsAcssDebit, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), amazon_pay: z.union([setupIntentPaymentMethodOptionsAmazonPay, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), bacs_debit: z.union([setupIntentPaymentMethodOptionsBacsDebit, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), bizum: z.union([setupIntentPaymentMethodOptionsBizum, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), blik: z.union([setupIntentPaymentMethodOptionsBlik, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), card: z.union([setupIntentPaymentMethodOptionsCard, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), card_present: z.union([setupIntentPaymentMethodOptionsCardPresent, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), klarna: z.union([setupIntentPaymentMethodOptionsKlarna, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), link: z.union([setupIntentPaymentMethodOptionsLink, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), paypal: z.union([setupIntentPaymentMethodOptionsPaypal, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), payto: z.union([setupIntentPaymentMethodOptionsPayto, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), pix: z.union([setupIntentPaymentMethodOptionsPix, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), sepa_debit: z.union([setupIntentPaymentMethodOptionsSepaDebit, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), upi: z.union([setupIntentPaymentMethodOptionsUpi, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional(), us_bank_account: z.union([setupIntentPaymentMethodOptionsUsBankAccount, setupIntentTypeSpecificPaymentMethodOptionsClient]).optional()}); export const setupIntent = z.object({allowed_payment_method_types: z.array(z.enum(["acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "card_present", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "interac_present", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip"])).nullable().optional(), application: z.union([z.string().max(5000), application]).nullable().optional(), attach_to_self: z.boolean().optional(), automatic_payment_methods: paymentFlowsAutomaticPaymentMethodsSetupIntent.nullable().optional(), cancellation_reason: z.enum(["abandoned", "duplicate", "requested_by_customer"]).nullable().optional(), client_secret: z.string().max(5000).nullable().optional(), created: z.number().int(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), excluded_payment_method_types: z.array(z.enum(["acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boleto", "card", "cashapp", "crypto", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "kakao_pay", "klarna", "konbini", "kr_card", "mb_way", "mobilepay", "multibanco", "naver_pay", "nz_bank_account", "oxxo", "p24", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "sofort", "sunbit", "swish", "twint", "upi", "us_bank_account", "wechat_pay", "zip"])).nullable().optional(), flow_directions: z.array(z.enum(["inbound", "outbound"])).nullable().optional(), id: z.string().max(5000), last_setup_error: z.lazy(() => apiErrors.nullable().optional()), latest_attempt: z.union([z.string().max(5000), z.lazy(() => setupAttempt)]).nullable().optional(), livemode: z.boolean(), managed_payments: smorResourceManagedPayments.nullable().optional(), mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), next_action: setupIntentNextAction.nullable().optional(), object: z.literal("setup_intent"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), payment_method_configuration_details: paymentMethodConfigBizPaymentMethodConfigurationDetails.nullable().optional(), payment_method_options: setupIntentPaymentMethodOptions.nullable().optional(), payment_method_types: z.array(z.string().max(5000)), single_use_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), status: z.enum(["canceled", "processing", "requires_action", "requires_confirmation", "requires_payment_method", "succeeded"]), usage: z.string().max(5000)}); export const apiErrors: z.ZodType = z.object({advice_code: z.string().max(5000).optional(), charge: z.string().max(5000).optional(), code: z.string().max(5000).optional(), decline_code: z.string().max(5000).optional(), doc_url: z.string().max(5000).optional(), message: z.string().max(40000).optional(), network_advice_code: z.string().max(5000).optional(), network_decline_code: z.string().max(5000).optional(), param: z.string().max(5000).optional(), payment_intent: paymentIntent.optional(), payment_method: z.lazy(() => paymentMethod.optional()), payment_method_type: z.string().max(5000).optional(), request_log_url: z.string().max(5000).optional(), setup_intent: setupIntent.optional(), source: z.union([z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), account_holder_name: z.string().max(5000).nullable().optional(), account_holder_type: z.string().max(5000).nullable().optional(), account_type: z.string().max(5000).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), future_requirements: externalAccountRequirements.nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("bank_account"), requirements: externalAccountRequirements.nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), status: z.string().max(5000)}), z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), address_city: z.string().max(5000).nullable().optional(), address_country: z.string().max(5000).nullable().optional(), address_line1: z.string().max(5000).nullable().optional(), address_line1_check: z.string().max(5000).nullable().optional(), address_line2: z.string().max(5000).nullable().optional(), address_state: z.string().max(5000).nullable().optional(), address_zip: z.string().max(5000).nullable().optional(), address_zip_check: z.string().max(5000).nullable().optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), brand: z.string().max(5000), country: z.string().max(5000).nullable().optional(), currency: z.string().nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), dynamic_last4: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), name: z.string().max(5000).nullable().optional(), networks: tokenCardNetworks.optional(), object: z.literal("card"), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), status: z.string().max(5000).nullable().optional(), tokenization_method: z.string().max(5000).nullable().optional()}), z.object({ach_credit_transfer: sourceTypeAchCreditTransfer.optional(), ach_debit: sourceTypeAchDebit.optional(), acss_debit: sourceTypeAcssDebit.optional(), alipay: sourceTypeAlipay.optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), amount: z.number().int().nullable().optional(), au_becs_debit: sourceTypeAuBecsDebit.optional(), bancontact: sourceTypeBancontact.optional(), card: sourceTypeCard.optional(), card_present: sourceTypeCardPresent.optional(), client_secret: z.string().max(5000), code_verification: sourceCodeVerificationFlow.optional(), created: z.number().int(), currency: z.string().nullable().optional(), customer: z.string().max(5000).optional(), eps: sourceTypeEps.optional(), flow: z.string().max(5000), giropay: sourceTypeGiropay.optional(), id: z.string().max(5000), ideal: sourceTypeIdeal.optional(), klarna: sourceTypeKlarna.optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), multibanco: sourceTypeMultibanco.optional(), object: z.literal("source"), owner: sourceOwner.nullable().optional(), p24: sourceTypeP24.optional(), receiver: sourceReceiverFlow.optional(), redirect: sourceRedirectFlow.optional(), sepa_debit: sourceTypeSepaDebit.optional(), sofort: sourceTypeSofort.optional(), source_order: sourceOrder.optional(), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.string().max(5000), three_d_secure: sourceTypeThreeDSecure.optional(), type: z.enum(["ach_credit_transfer", "ach_debit", "acss_debit", "alipay", "au_becs_debit", "bancontact", "card", "card_present", "eps", "giropay", "ideal", "klarna", "multibanco", "p24", "sepa_debit", "sofort", "three_d_secure", "wechat"]), usage: z.string().max(5000).nullable().optional(), wechat: sourceTypeWechat.optional()})]).optional(), type: z.enum(["api_error", "card_error", "idempotency_error", "invalid_request_error"])}); export const discountsResourceDiscountAmount = z.object({amount: z.number().int(), discount: z.union([z.string().max(5000), discount, deletedDiscount])}); export const billingBillResourceInvoicingLinesCommonCreditedItems = z.object({invoice: z.string().max(5000), invoice_line_items: z.array(z.string().max(5000))}); export const billingBillResourceInvoicingLinesCommonProrationDetails = z.object({credited_items: billingBillResourceInvoicingLinesCommonCreditedItems.nullable().optional()}); export const billingBillResourceInvoicingLinesParentsInvoiceLineItemInvoiceItemParent = z.object({invoice_item: z.string().max(5000), proration: z.boolean(), proration_details: billingBillResourceInvoicingLinesCommonProrationDetails.nullable().optional(), subscription: z.string().max(5000).nullable().optional()}); export const billingBillResourceInvoicingLinesParentsInvoiceLineItemSubscriptionItemParent = z.object({invoice_item: z.string().max(5000).nullable().optional(), proration: z.boolean(), proration_details: billingBillResourceInvoicingLinesCommonProrationDetails.nullable().optional(), subscription: z.string().max(5000).nullable().optional(), subscription_item: z.string().max(5000)}); export const billingBillResourceInvoicingLinesParentsInvoiceLineItemParent = z.object({invoice_item_details: billingBillResourceInvoicingLinesParentsInvoiceLineItemInvoiceItemParent.nullable().optional(), subscription_item_details: billingBillResourceInvoicingLinesParentsInvoiceLineItemSubscriptionItemParent.nullable().optional(), type: z.enum(["invoice_item_details", "subscription_item_details"])}); export const invoiceLineItemPeriod = z.object({end: z.number().int(), start: z.number().int()}); export const billingCreditGrantsResourceMonetaryAmount = z.object({currency: z.string().max(5000), value: z.number().int()}); export const billingCreditGrantsResourceAmount = z.object({monetary: billingCreditGrantsResourceMonetaryAmount.nullable().optional(), type: z.literal("monetary")}); export const billingCreditGrantsResourceBalanceCreditsApplicationInvoiceVoided = z.object({invoice: z.union([z.string().max(5000), z.lazy(() => invoice)]), invoice_line_item: z.string().max(5000)}); export const billingCreditGrantsResourceBalanceCredit = z.object({amount: billingCreditGrantsResourceAmount, credits_application_invoice_voided: billingCreditGrantsResourceBalanceCreditsApplicationInvoiceVoided.nullable().optional(), type: z.enum(["credits_application_invoice_voided", "credits_granted"])}); export const billingCreditGrantsResourceApplicablePrice = z.object({id: z.string().max(5000).nullable().optional()}); export const billingCreditGrantsResourceScope = z.object({price_type: z.literal("metered").optional(), prices: z.array(billingCreditGrantsResourceApplicablePrice).optional()}); export const billingCreditGrantsResourceApplicabilityConfig = z.object({scope: billingCreditGrantsResourceScope}); export const billingClocksResourceStatusDetailsAdvancingStatusDetails = z.object({target_frozen_time: z.number().int()}); export const billingClocksResourceStatusDetailsStatusDetails = z.object({advancing: billingClocksResourceStatusDetailsAdvancingStatusDetails.optional()}); export const testHelpersTestClock = z.object({created: z.number().int(), deletes_after: z.number().int(), frozen_time: z.number().int(), id: z.string().max(5000), livemode: z.boolean(), name: z.string().max(5000).nullable().optional(), object: z.literal("test_helpers.test_clock"), status: z.enum(["advancing", "internal_failure", "ready"]), status_details: billingClocksResourceStatusDetailsStatusDetails}); export const billingCreditGrant = z.object({amount: billingCreditGrantsResourceAmount, applicability_config: billingCreditGrantsResourceApplicabilityConfig, category: z.enum(["paid", "promotional"]), created: z.number().int(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]), customer_account: z.string().max(5000).nullable().optional(), effective_at: z.number().int().nullable().optional(), expires_at: z.number().int().nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), name: z.string().max(5000).nullable().optional(), object: z.literal("billing.credit_grant"), priority: z.number().int().nullable().optional(), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional(), updated: z.number().int(), voided_at: z.number().int().nullable().optional()}); export const billingCreditGrantsResourceBalanceCreditsApplied = z.object({invoice: z.union([z.string().max(5000), z.lazy(() => invoice)]), invoice_line_item: z.string().max(5000)}); export const billingCreditGrantsResourceBalanceDebit = z.object({amount: billingCreditGrantsResourceAmount, credits_applied: billingCreditGrantsResourceBalanceCreditsApplied.nullable().optional(), type: z.enum(["credits_applied", "credits_expired", "credits_voided"])}); export const billingCreditBalanceTransaction = z.object({created: z.number().int(), credit: billingCreditGrantsResourceBalanceCredit.nullable().optional(), credit_grant: z.union([z.string().max(5000), billingCreditGrant]), debit: billingCreditGrantsResourceBalanceDebit.nullable().optional(), effective_at: z.number().int(), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("billing.credit_balance_transaction"), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional(), type: z.enum(["credit", "debit"]).nullable().optional()}); export const invoicesResourcePretaxCreditAmount = z.object({amount: z.number().int(), credit_balance_transaction: z.union([z.string().max(5000), billingCreditBalanceTransaction]).nullable().optional(), discount: z.union([z.string().max(5000), discount, deletedDiscount]).optional(), type: z.enum(["credit_balance_transaction", "discount"])}); export const billingBillResourceInvoicingPricingPricingPriceDetails = z.object({price: z.union([z.string().max(5000), price]), product: z.string().max(5000)}); export const billingBillResourceInvoicingPricingPricing = z.object({price_details: billingBillResourceInvoicingPricingPricingPriceDetails.optional(), type: z.literal("price_details"), unit_amount_decimal: z.string().nullable().optional()}); export const billingBillResourceInvoicingTaxesTaxRateDetails = z.object({tax_rate: z.union([z.string().max(5000), taxRate])}); export const billingBillResourceInvoicingTaxesTax = z.object({amount: z.number().int(), tax_behavior: z.enum(["exclusive", "inclusive"]), tax_rate_details: billingBillResourceInvoicingTaxesTaxRateDetails.nullable().optional(), taxability_reason: z.enum(["customer_exempt", "not_available", "not_collecting", "not_subject_to_tax", "not_supported", "portion_product_exempt", "portion_reduced_rated", "portion_standard_rated", "product_exempt", "product_exempt_holiday", "proportionally_rated", "reduced_rated", "reverse_charge", "standard_rated", "taxable_basis_reduced", "zero_rated"]), taxable_amount: z.number().int().nullable().optional(), type: z.literal("tax_rate_details")}); export const lineItem = z.object({amount: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), discount_amounts: z.array(discountsResourceDiscountAmount).nullable().optional(), discountable: z.boolean(), discounts: z.array(z.union([z.string().max(5000), discount])), id: z.string().max(5000), invoice: z.string().max(5000).nullable().optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("line_item"), parent: billingBillResourceInvoicingLinesParentsInvoiceLineItemParent.nullable().optional(), period: invoiceLineItemPeriod, pretax_credit_amounts: z.array(invoicesResourcePretaxCreditAmount).nullable().optional(), pricing: billingBillResourceInvoicingPricingPricing.nullable().optional(), quantity: z.number().int().nullable().optional(), quantity_decimal: z.string().nullable().optional(), subscription: z.union([z.string().max(5000), z.lazy(() => subscription)]).nullable().optional(), subtotal: z.number().int(), taxes: z.array(billingBillResourceInvoicingTaxesTax).nullable().optional()}); export const billingBillResourceInvoicingParentsInvoiceQuoteParent = z.object({quote: z.string().max(5000)}); export const billingBillResourceInvoicingParentsInvoiceSubscriptionParent = z.object({metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), subscription: z.union([z.string().max(5000), z.lazy(() => subscription)]), subscription_proration_date: z.number().int().optional()}); export const billingBillResourceInvoicingParentsInvoiceParent = z.object({quote_details: billingBillResourceInvoicingParentsInvoiceQuoteParent.nullable().optional(), subscription_details: billingBillResourceInvoicingParentsInvoiceSubscriptionParent.nullable().optional(), type: z.enum(["quote_details", "subscription_details"])}); export const invoicePaymentMethodOptionsAcssDebitMandateOptions = z.object({transaction_type: z.enum(["business", "personal"]).nullable().optional()}); export const invoicePaymentMethodOptionsAcssDebit = z.object({mandate_options: invoicePaymentMethodOptionsAcssDebitMandateOptions.optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const invoicePaymentMethodOptionsBancontact = z.object({preferred_language: z.enum(["de", "en", "fr", "nl"])}); export const invoicePaymentMethodOptionsBillieCompanyDetailsRegisteredAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const invoicePaymentMethodOptionsBillieCompanyDetails = z.object({registered_address: invoicePaymentMethodOptionsBillieCompanyDetailsRegisteredAddress.optional(), registered_name: z.string().max(5000).nullable().optional(), registration_number: z.string().max(5000).nullable().optional(), registration_type: z.enum(["ch_ein", "de_hrb", "dk_cvr", "es_cif", "fi_tunnus", "fr_siren", "fr_siret", "it_rea", "nl_kvk", "no_org_number", "no_pno", "se_org_number", "se_pno", "uk_crn"]).optional(), vat: z.string().max(5000).nullable().optional()}); export const invoicePaymentMethodOptionsBillie = z.object({company_details: invoicePaymentMethodOptionsBillieCompanyDetails.optional(), reference: z.string().max(5000).nullable().optional()}); export const invoicePaymentMethodOptionsBlik = z.object({}); export const invoiceInstallmentsCard = z.object({enabled: z.boolean().nullable().optional()}); export const invoicePaymentMethodOptionsCard = z.object({installments: invoiceInstallmentsCard.optional(), request_three_d_secure: z.enum(["any", "automatic", "challenge"]).nullable().optional()}); export const invoicePaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer = z.object({country: z.enum(["BE", "DE", "ES", "FR", "IE", "NL"])}); export const invoicePaymentMethodOptionsCustomerBalanceBankTransfer = z.object({eu_bank_transfer: invoicePaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer.optional(), type: z.string().nullable().optional()}); export const invoicePaymentMethodOptionsCustomerBalance = z.object({bank_transfer: invoicePaymentMethodOptionsCustomerBalanceBankTransfer.optional(), funding_type: z.literal("bank_transfer").nullable().optional()}); export const invoicePaymentMethodOptionsKonbini = z.object({}); export const invoiceMandateOptionsPayto = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), purpose: z.enum(["dependant_support", "government", "loan", "mortgage", "other", "pension", "personal", "retail", "salary", "tax", "utility"]).nullable().optional()}); export const invoicePaymentMethodOptionsPayto = z.object({mandate_options: invoiceMandateOptionsPayto.optional()}); export const invoicePaymentMethodOptionsPix = z.object({amount_includes_iof: z.enum(["always", "never"]).nullable().optional(), expires_after_seconds: z.number().int().optional()}); export const invoicePaymentMethodOptionsSepaDebit = z.object({}); export const invoicePaymentMethodOptionsMandateOptionsUpi = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), description: z.string().max(20).nullable().optional(), end_date: z.number().int().nullable().optional()}); export const invoicePaymentMethodOptionsUpi = z.object({mandate_options: invoicePaymentMethodOptionsMandateOptionsUpi.optional()}); export const invoicePaymentMethodOptionsUsBankAccountLinkedAccountOptionsFilters = z.object({account_subcategories: z.array(z.enum(["checking", "savings"])).optional()}); export const invoicePaymentMethodOptionsUsBankAccountLinkedAccountOptions = z.object({filters: invoicePaymentMethodOptionsUsBankAccountLinkedAccountOptionsFilters.optional(), permissions: z.array(z.enum(["balances", "ownership", "payment_method", "transactions"])).optional(), prefetch: z.array(z.enum(["balances", "ownership", "transactions"])).nullable().optional()}); export const invoicePaymentMethodOptionsUsBankAccount = z.object({financial_connections: invoicePaymentMethodOptionsUsBankAccountLinkedAccountOptions.optional(), verification_method: z.enum(["automatic", "instant", "microdeposits"]).optional()}); export const invoicesPaymentMethodOptions = z.object({acss_debit: invoicePaymentMethodOptionsAcssDebit.nullable().optional(), bancontact: invoicePaymentMethodOptionsBancontact.nullable().optional(), billie: invoicePaymentMethodOptionsBillie.nullable().optional(), blik: invoicePaymentMethodOptionsBlik.nullable().optional(), card: invoicePaymentMethodOptionsCard.nullable().optional(), customer_balance: invoicePaymentMethodOptionsCustomerBalance.nullable().optional(), konbini: invoicePaymentMethodOptionsKonbini.nullable().optional(), payto: invoicePaymentMethodOptionsPayto.nullable().optional(), pix: invoicePaymentMethodOptionsPix.nullable().optional(), sepa_debit: invoicePaymentMethodOptionsSepaDebit.nullable().optional(), upi: invoicePaymentMethodOptionsUpi.nullable().optional(), us_bank_account: invoicePaymentMethodOptionsUsBankAccount.nullable().optional()}); export const invoicesPaymentSettings = z.object({default_mandate: z.string().max(5000).nullable().optional(), payment_method_options: invoicesPaymentMethodOptions.nullable().optional(), payment_method_types: z.array(z.enum(["ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "alipay", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "blik", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "mb_way", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "satispay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay"])).nullable().optional()}); export const deletedInvoice = z.object({deleted: z.literal(true), id: z.string().max(5000), object: z.literal("invoice")}); export const invoicesPaymentsInvoicePaymentAssociatedPayment = z.object({charge: z.union([z.string().max(5000), charge]).optional(), payment_intent: z.union([z.string().max(5000), paymentIntent]).optional(), payment_record: z.union([z.string().max(5000), paymentRecord]).optional(), type: z.enum(["charge", "payment_intent", "payment_record"])}); export const invoicesPaymentsInvoicePaymentStatusTransitions = z.object({canceled_at: z.number().int().nullable().optional(), paid_at: z.number().int().nullable().optional()}); export const invoicePayment = z.object({amount_paid: z.number().int().nullable().optional(), amount_requested: z.number().int(), created: z.number().int(), currency: z.string().max(5000), id: z.string().max(5000), invoice: z.union([z.string().max(5000), z.lazy(() => invoice), deletedInvoice]), is_default: z.boolean(), livemode: z.boolean(), object: z.literal("invoice_payment"), payment: invoicesPaymentsInvoicePaymentAssociatedPayment, status: z.string().max(5000), status_transitions: invoicesPaymentsInvoicePaymentStatusTransitions}); export const invoiceRenderingPdf = z.object({page_size: z.enum(["a4", "auto", "letter"]).nullable().optional()}); export const invoicesResourceInvoiceRendering = z.object({amount_tax_display: z.string().max(5000).nullable().optional(), pdf: invoiceRenderingPdf.nullable().optional(), template: z.string().max(5000).nullable().optional(), template_version: z.number().int().nullable().optional()}); export const shippingRateDeliveryEstimateBound = z.object({unit: z.enum(["business_day", "day", "hour", "month", "week"]), value: z.number().int()}); export const shippingRateDeliveryEstimate = z.object({maximum: shippingRateDeliveryEstimateBound.nullable().optional(), minimum: shippingRateDeliveryEstimateBound.nullable().optional()}); export const shippingRateCurrencyOption = z.object({amount: z.number().int(), tax_behavior: z.enum(["exclusive", "inclusive", "unspecified"])}); export const shippingRateFixedAmount = z.object({amount: z.number().int(), currency: z.string(), currency_options: z.record(z.string(), shippingRateCurrencyOption).optional()}); export const shippingRate = z.object({active: z.boolean(), created: z.number().int(), delivery_estimate: shippingRateDeliveryEstimate.nullable().optional(), display_name: z.string().max(5000).nullable().optional(), fixed_amount: shippingRateFixedAmount.optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("shipping_rate"), tax_behavior: z.enum(["exclusive", "inclusive", "unspecified"]).nullable().optional(), tax_code: z.union([z.string().max(5000), taxCode]).nullable().optional(), type: z.literal("fixed_amount")}); export const lineItemsTaxAmount = z.object({amount: z.number().int(), rate: taxRate, taxability_reason: z.enum(["customer_exempt", "not_collecting", "not_subject_to_tax", "not_supported", "portion_product_exempt", "portion_reduced_rated", "portion_standard_rated", "product_exempt", "product_exempt_holiday", "proportionally_rated", "reduced_rated", "reverse_charge", "standard_rated", "taxable_basis_reduced", "zero_rated"]).nullable().optional(), taxable_amount: z.number().int().nullable().optional()}); export const invoicesResourceShippingCost = z.object({amount_subtotal: z.number().int(), amount_tax: z.number().int(), amount_total: z.number().int(), shipping_rate: z.union([z.string().max(5000), shippingRate]).nullable().optional(), taxes: z.array(lineItemsTaxAmount).optional()}); export const invoicesResourceUncollectibleStatusDetails = z.object({reason: z.enum(["max_payment_attempts", "payment_not_received", "subscription_canceled", "subscription_paused", "user_forgiven"]).nullable().optional()}); export const invoicesResourceStatusDetails = z.object({uncollectible: invoicesResourceUncollectibleStatusDetails.optional()}); export const invoicesResourceStatusTransitions = z.object({finalized_at: z.number().int().nullable().optional(), marked_uncollectible_at: z.number().int().nullable().optional(), paid_at: z.number().int().nullable().optional(), voided_at: z.number().int().nullable().optional()}); export const invoiceItemThresholdReason = z.object({line_item_ids: z.array(z.string().max(5000)), usage_gte: z.number().int()}); export const invoiceThresholdReason = z.object({amount_gte: z.number().int().nullable().optional(), item_reasons: z.array(invoiceItemThresholdReason)}); export const invoice: z.ZodType = z.object({account_country: z.string().max(5000).nullable().optional(), account_name: z.string().max(5000).nullable().optional(), account_tax_ids: z.array(z.union([z.string().max(5000), taxId, deletedTaxId])).nullable().optional(), amount_due: z.number().int(), amount_overpaid: z.number().int(), amount_paid: z.number().int(), amount_paid_off_stripe: z.number().int(), amount_remaining: z.number().int(), amount_shipping: z.number().int(), application: z.union([z.string().max(5000), application, deletedApplication]).nullable().optional(), attempt_count: z.number().int(), attempted: z.boolean(), auto_advance: z.boolean(), automatic_tax: automaticTax, automatically_finalizes_at: z.number().int().nullable().optional(), billing_reason: z.enum(["automatic_pending_invoice_item_invoice", "manual", "quote_accept", "subscription", "subscription_create", "subscription_cycle", "subscription_threshold", "subscription_update", "upcoming"]).nullable().optional(), collection_method: z.enum(["charge_automatically", "send_invoice"]), confirmation_secret: invoicesResourceConfirmationSecret.nullable().optional(), created: z.number().int(), currency: z.string(), custom_fields: z.array(invoiceSettingCustomField).nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]), customer_account: z.string().max(5000).nullable().optional(), customer_address: address.nullable().optional(), customer_email: z.string().max(5000).nullable().optional(), customer_name: z.string().max(5000).nullable().optional(), customer_phone: z.string().max(5000).nullable().optional(), customer_shipping: shipping.nullable().optional(), customer_tax_exempt: z.enum(["exempt", "none", "reverse"]).nullable().optional(), customer_tax_ids: z.array(invoicesResourceInvoiceTaxId).nullable().optional(), default_payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), default_source: z.union([z.string().max(5000), bankAccount, card, source]).nullable().optional(), default_tax_rates: z.array(taxRate), description: z.string().max(5000).nullable().optional(), discounts: z.array(z.union([z.string().max(5000), discount, deletedDiscount])), due_date: z.number().int().nullable().optional(), effective_at: z.number().int().nullable().optional(), ending_balance: z.number().int().nullable().optional(), footer: z.string().max(5000).nullable().optional(), from_invoice: invoicesResourceFromInvoice.nullable().optional(), hosted_invoice_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), invoice_pdf: z.string().max(5000).nullable().optional(), issuer: connectAccountReference, last_finalization_error: apiErrors.nullable().optional(), latest_revision: z.union([z.string().max(5000), z.lazy(() => invoice)]).nullable().optional(), lines: z.object({data: z.array(lineItem), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), next_payment_attempt: z.number().int().nullable().optional(), number: z.string().max(5000).nullable().optional(), object: z.literal("invoice"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), parent: billingBillResourceInvoicingParentsInvoiceParent.nullable().optional(), payment_settings: invoicesPaymentSettings, payments: z.object({data: z.array(invoicePayment), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), period_end: z.number().int(), period_start: z.number().int(), post_payment_credit_notes_amount: z.number().int(), pre_payment_credit_notes_amount: z.number().int(), receipt_number: z.string().max(5000).nullable().optional(), rendering: invoicesResourceInvoiceRendering.nullable().optional(), shipping_cost: invoicesResourceShippingCost.nullable().optional(), shipping_details: shipping.nullable().optional(), starting_balance: z.number().int(), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.enum(["draft", "open", "paid", "uncollectible", "void"]).nullable().optional(), status_details: invoicesResourceStatusDetails.optional(), status_transitions: invoicesResourceStatusTransitions, subtotal: z.number().int(), subtotal_excluding_tax: z.number().int().nullable().optional(), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional(), threshold_reason: invoiceThresholdReason.optional(), total: z.number().int(), total_discount_amounts: z.array(discountsResourceDiscountAmount).nullable().optional(), total_excluding_tax: z.number().int().nullable().optional(), total_pretax_credit_amounts: z.array(invoicesResourcePretaxCreditAmount).nullable().optional(), total_taxes: z.array(billingBillResourceInvoicingTaxesTax).nullable().optional(), webhooks_delivered_at: z.number().int().nullable().optional()}); export const subscriptionsResourcePauseCollection = z.object({behavior: z.enum(["keep_as_draft", "mark_uncollectible", "void"]), resumes_at: z.number().int().nullable().optional()}); export const subscriptionPaymentMethodOptionsBillieCompanyDetailsRegisteredAddress = z.object({city: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), line1: z.string().max(5000).nullable().optional(), line2: z.string().max(5000).nullable().optional(), postal_code: z.string().max(5000).nullable().optional(), state: z.string().max(5000).nullable().optional()}); export const subscriptionPaymentMethodOptionsBillieCompanyDetails = z.object({registered_address: subscriptionPaymentMethodOptionsBillieCompanyDetailsRegisteredAddress.optional(), registered_name: z.string().max(5000).nullable().optional(), registration_number: z.string().max(5000).nullable().optional(), registration_type: z.enum(["ch_ein", "de_hrb", "dk_cvr", "es_cif", "fi_tunnus", "fr_siren", "fr_siret", "it_rea", "nl_kvk", "no_org_number", "no_pno", "se_org_number", "se_pno", "uk_crn"]).optional(), vat: z.string().max(5000).nullable().optional()}); export const subscriptionPaymentMethodOptionsBillie = z.object({company_details: subscriptionPaymentMethodOptionsBillieCompanyDetails.optional()}); export const subscriptionPaymentMethodOptionsMandateOptionsBlik = z.object({expires_at: z.number().int().nullable().optional()}); export const subscriptionPaymentMethodOptionsBlik = z.object({mandate_options: subscriptionPaymentMethodOptionsMandateOptionsBlik.optional()}); export const invoiceMandateOptionsCard = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), description: z.string().max(200).nullable().optional()}); export const subscriptionPaymentMethodOptionsCard = z.object({mandate_options: invoiceMandateOptionsCard.optional(), network: z.enum(["amex", "cartes_bancaires", "diners", "discover", "eftpos_au", "girocard", "interac", "jcb", "link", "mastercard", "unionpay", "unknown", "visa"]).nullable().optional(), request_three_d_secure: z.enum(["any", "automatic", "challenge"]).nullable().optional()}); export const subscriptionPaymentMethodOptionsMandateOptionsPix = z.object({amount: z.number().int().nullable().optional(), amount_includes_iof: z.enum(["always", "never"]).nullable().optional(), end_date: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["halfyearly", "monthly", "quarterly", "weekly", "yearly"]).nullable().optional()}); export const subscriptionPaymentMethodOptionsPix = z.object({expires_after_seconds: z.number().int().optional(), mandate_options: subscriptionPaymentMethodOptionsMandateOptionsPix.optional()}); export const subscriptionsResourcePaymentMethodOptions = z.object({acss_debit: invoicePaymentMethodOptionsAcssDebit.nullable().optional(), bancontact: invoicePaymentMethodOptionsBancontact.nullable().optional(), billie: subscriptionPaymentMethodOptionsBillie.nullable().optional(), blik: subscriptionPaymentMethodOptionsBlik.nullable().optional(), card: subscriptionPaymentMethodOptionsCard.nullable().optional(), customer_balance: invoicePaymentMethodOptionsCustomerBalance.nullable().optional(), konbini: invoicePaymentMethodOptionsKonbini.nullable().optional(), payto: invoicePaymentMethodOptionsPayto.nullable().optional(), pix: subscriptionPaymentMethodOptionsPix.nullable().optional(), sepa_debit: invoicePaymentMethodOptionsSepaDebit.nullable().optional(), upi: invoicePaymentMethodOptionsUpi.nullable().optional(), us_bank_account: invoicePaymentMethodOptionsUsBankAccount.nullable().optional()}); export const subscriptionsResourcePaymentSettings = z.object({payment_method_options: subscriptionsResourcePaymentMethodOptions.nullable().optional(), payment_method_types: z.array(z.enum(["ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "alipay", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "blik", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "mb_way", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "satispay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay"])).nullable().optional(), save_default_payment_method: z.enum(["off", "on_subscription"]).nullable().optional()}); export const subscriptionPendingInvoiceItemInterval = z.object({interval: z.enum(["day", "month", "week", "year"]), interval_count: z.number().int()}); export const subscriptionsResourcePendingUpdate = z.object({billing_cycle_anchor: z.number().int().nullable().optional(), cancel_at_period_end: z.boolean().nullable().optional(), discount: discount.nullable().optional(), discounts: z.array(z.union([z.string().max(5000), discount])).nullable().optional(), expires_at: z.number().int(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), subscription_items: z.array(subscriptionItem).nullable().optional(), trial_end: z.number().int().nullable().optional(), trial_from_plan: z.boolean().nullable().optional()}); export const subscriptionsResourceSubscriptionPresentmentDetails = z.object({presentment_currency: z.string().max(5000)}); export const subscriptionScheduleCurrentPhase = z.object({end_date: z.number().int(), start_date: z.number().int()}); export const subscriptionSchedulesResourceDefaultSettingsAutomaticTax = z.object({disabled_reason: z.literal("requires_location_inputs").nullable().optional(), enabled: z.boolean(), liability: connectAccountReference.nullable().optional()}); export const invoiceSettingSubscriptionScheduleSetting = z.object({account_tax_ids: z.array(z.union([z.string().max(5000), taxId, deletedTaxId])).nullable().optional(), custom_fields: z.array(invoiceSettingCustomField).nullable().optional(), days_until_due: z.number().int().nullable().optional(), description: z.string().max(5000).nullable().optional(), footer: z.string().max(5000).nullable().optional(), issuer: connectAccountReference}); export const subscriptionTransferData = z.object({amount_percent: z.number().nullable().optional(), destination: z.union([z.string().max(5000), account])}); export const subscriptionSchedulesResourceDefaultSettings = z.object({application_fee_percent: z.number().nullable().optional(), automatic_tax: subscriptionSchedulesResourceDefaultSettingsAutomaticTax.optional(), billing_cycle_anchor: z.enum(["automatic", "phase_start"]), billing_thresholds: subscriptionBillingThresholds.nullable().optional(), collection_method: z.enum(["charge_automatically", "send_invoice"]).nullable().optional(), default_payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), description: z.string().max(5000).nullable().optional(), invoice_settings: invoiceSettingSubscriptionScheduleSetting, on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), transfer_data: subscriptionTransferData.nullable().optional()}); export const subscriptionSchedulesResourcePauseScheduleOutstandingUsageThrough = z.object({type: z.enum(["none", "pause_at"])}); export const subscriptionSchedulesResourcePauseScheduleUnusedTimeFrom = z.object({type: z.enum(["item_current_period_start", "none", "pause_at"])}); export const subscriptionSchedulesResourcePauseScheduleBillFor = z.object({outstanding_usage_through: subscriptionSchedulesResourcePauseScheduleOutstandingUsageThrough, unused_time_from: subscriptionSchedulesResourcePauseScheduleUnusedTimeFrom}); export const subscriptionSchedulesResourcePauseSchedulePauseSettings = z.object({bill_for: subscriptionSchedulesResourcePauseScheduleBillFor, invoicing_behavior: z.enum(["invoice", "pending_invoice_item"]), type: z.literal("subscription")}); export const subscriptionSchedulesResourcePauseScheduleStatusError = z.object({code: z.string().max(5000).optional(), message: z.string().max(5000)}); export const subscriptionSchedulesResourcePauseSchedulePauseStatus = z.object({error: subscriptionSchedulesResourcePauseScheduleStatusError.optional(), type: z.enum(["error", "scheduled", "succeeded"])}); export const subscriptionSchedulesResourcePauseSchedulePause = z.object({pause_at: z.number().int(), settings: subscriptionSchedulesResourcePauseSchedulePauseSettings.nullable().optional(), status: subscriptionSchedulesResourcePauseSchedulePauseStatus}); export const subscriptionSchedulesResourcePauseScheduleResumeSettings = z.object({billing_cycle_anchor: z.enum(["resume_at", "unchanged"]), payment_behavior: z.enum(["resume_on_payment_attempt", "resume_on_payment_success"]), proration_behavior: z.enum(["always_invoice", "create_prorations", "none"])}); export const subscriptionSchedulesResourcePauseScheduleResumeStatus = z.object({error: subscriptionSchedulesResourcePauseScheduleStatusError.optional(), type: z.enum(["error", "pending", "requires_action", "scheduled", "succeeded"])}); export const subscriptionSchedulesResourcePauseScheduleResume = z.object({resume_at: z.number().int(), settings: subscriptionSchedulesResourcePauseScheduleResumeSettings, status: subscriptionSchedulesResourcePauseScheduleResumeStatus}); export const subscriptionSchedulesResourcePauseSchedule = z.object({key: z.string().max(5000), pause: subscriptionSchedulesResourcePauseSchedulePause, resume: subscriptionSchedulesResourcePauseScheduleResume.nullable().optional()}); export const discountsResourceStackableDiscountWithDiscountEnd = z.object({coupon: z.union([z.string().max(5000), coupon]).nullable().optional(), discount: z.union([z.string().max(5000), discount]).nullable().optional(), promotion_code: z.union([z.string().max(5000), promotionCode]).nullable().optional()}); export const subscriptionSchedulesResourceInvoiceItemPeriodResourcePeriodEnd = z.object({timestamp: z.number().int().optional(), type: z.enum(["min_item_period_end", "phase_end", "timestamp"])}); export const subscriptionSchedulesResourceInvoiceItemPeriodResourcePeriodStart = z.object({timestamp: z.number().int().optional(), type: z.enum(["max_item_period_start", "phase_start", "timestamp"])}); export const subscriptionScheduleAddInvoiceItemPeriod = z.object({end: subscriptionSchedulesResourceInvoiceItemPeriodResourcePeriodEnd, start: subscriptionSchedulesResourceInvoiceItemPeriodResourcePeriodStart}); export const deletedPrice = z.object({deleted: z.literal(true), id: z.string().max(5000), object: z.literal("price")}); export const subscriptionScheduleAddInvoiceItem = z.object({discountable: z.boolean().nullable().optional(), discounts: z.array(discountsResourceStackableDiscountWithDiscountEnd), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), period: subscriptionScheduleAddInvoiceItemPeriod, price: z.union([z.string().max(5000), price, deletedPrice]), quantity: z.number().int().nullable().optional(), tax_rates: z.array(taxRate).nullable().optional()}); export const schedulesPhaseAutomaticTax = z.object({disabled_reason: z.literal("requires_location_inputs").nullable().optional(), enabled: z.boolean(), liability: connectAccountReference.nullable().optional()}); export const stackableDiscountWithDiscountSettingsAndDiscountEnd = z.object({coupon: z.union([z.string().max(5000), coupon]).nullable().optional(), discount: z.union([z.string().max(5000), discount]).nullable().optional(), promotion_code: z.union([z.string().max(5000), promotionCode]).nullable().optional()}); export const invoiceSettingSubscriptionSchedulePhaseSetting = z.object({account_tax_ids: z.array(z.union([z.string().max(5000), taxId, deletedTaxId])).nullable().optional(), custom_fields: z.array(invoiceSettingCustomField).nullable().optional(), days_until_due: z.number().int().nullable().optional(), description: z.string().max(5000).nullable().optional(), footer: z.string().max(5000).nullable().optional(), issuer: connectAccountReference.nullable().optional()}); export const stackableDiscountWithDiscountSettings = z.object({coupon: z.union([z.string().max(5000), coupon]).nullable().optional(), discount: z.union([z.string().max(5000), discount]).nullable().optional(), promotion_code: z.union([z.string().max(5000), promotionCode]).nullable().optional()}); export const subscriptionScheduleConfigurationItem = z.object({billing_thresholds: subscriptionItemBillingThresholds.nullable().optional(), discounts: z.array(stackableDiscountWithDiscountSettings), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), price: z.union([z.string().max(5000), price, deletedPrice]), quantity: z.number().int().optional(), tax_rates: z.array(taxRate).nullable().optional()}); export const subscriptionSchedulePhaseConfiguration = z.object({add_invoice_items: z.array(subscriptionScheduleAddInvoiceItem), application_fee_percent: z.number().nullable().optional(), automatic_tax: schedulesPhaseAutomaticTax.optional(), billing_cycle_anchor: z.enum(["automatic", "phase_start"]).nullable().optional(), billing_thresholds: subscriptionBillingThresholds.nullable().optional(), collection_method: z.enum(["charge_automatically", "send_invoice"]).nullable().optional(), currency: z.string(), default_payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), default_tax_rates: z.array(taxRate).nullable().optional(), description: z.string().max(5000).nullable().optional(), discounts: z.array(stackableDiscountWithDiscountSettingsAndDiscountEnd), end_date: z.number().int(), invoice_settings: invoiceSettingSubscriptionSchedulePhaseSetting.nullable().optional(), items: z.array(subscriptionScheduleConfigurationItem), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), proration_behavior: z.enum(["always_invoice", "create_prorations", "none"]), start_date: z.number().int(), transfer_data: subscriptionTransferData.nullable().optional(), trial: z.boolean().optional(), trial_end: z.number().int().nullable().optional()}); export const subscriptionSchedule = z.object({application: z.union([z.string().max(5000), application, deletedApplication]).nullable().optional(), billing_mode: subscriptionsResourceBillingMode, canceled_at: z.number().int().nullable().optional(), completed_at: z.number().int().nullable().optional(), created: z.number().int(), current_phase: subscriptionScheduleCurrentPhase.nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]), customer_account: z.string().max(5000).nullable().optional(), default_settings: subscriptionSchedulesResourceDefaultSettings, end_behavior: z.enum(["cancel", "none", "release", "renew"]), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("subscription_schedule"), pause_schedules: z.array(subscriptionSchedulesResourcePauseSchedule).optional(), phases: z.array(subscriptionSchedulePhaseConfiguration), released_at: z.number().int().nullable().optional(), released_subscription: z.string().max(5000).nullable().optional(), status: z.enum(["active", "canceled", "completed", "not_started", "released"]), subscription: z.union([z.string().max(5000), z.lazy(() => subscription)]).nullable().optional(), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional()}); export const subscriptionsResourcePausedStatusDetailsSubscription = z.object({type: z.enum(["final_payment_failure", "first_payment_failure", "pause_requested", "system", "trial_end_without_payment_method"])}); export const subscriptionsResourcePausedStatusDetailsPublic = z.object({subscription: subscriptionsResourcePausedStatusDetailsSubscription, transitioned_at: z.number().int(), type: z.literal("subscription")}); export const subscriptionsResourceStatusDetailsPublic = z.object({paused: subscriptionsResourcePausedStatusDetailsPublic}); export const subscriptionsResourceTrialSettingsEndBehavior = z.object({billing_cycle_anchor: z.enum(["now", "unchanged"]).nullable().optional(), missing_payment_method: z.enum(["cancel", "create_invoice", "pause"])}); export const subscriptionsResourceTrialSettingsTrialSettings = z.object({end_behavior: subscriptionsResourceTrialSettingsEndBehavior}); export const subscription: z.ZodType = z.object({application: z.union([z.string().max(5000), application, deletedApplication]).nullable().optional(), application_fee_percent: z.number().nullable().optional(), automatic_tax: subscriptionAutomaticTax, billing_cycle_anchor: z.number().int(), billing_cycle_anchor_config: subscriptionsResourceBillingCycleAnchorConfig.nullable().optional(), billing_mode: subscriptionsResourceBillingMode, billing_schedules: z.array(subscriptionsResourceBillingSchedules), billing_thresholds: subscriptionBillingThresholds.nullable().optional(), cancel_at: z.number().int().nullable().optional(), cancel_at_period_end: z.boolean(), canceled_at: z.number().int().nullable().optional(), cancellation_details: cancellationDetails.nullable().optional(), collection_method: z.enum(["charge_automatically", "send_invoice"]), created: z.number().int(), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]), customer_account: z.string().max(5000).nullable().optional(), days_until_due: z.number().int().nullable().optional(), default_payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), default_source: z.union([z.string().max(5000), bankAccount, card, source]).nullable().optional(), default_tax_rates: z.array(taxRate).nullable().optional(), description: z.string().max(500).nullable().optional(), discounts: z.array(z.union([z.string().max(5000), discount])), ended_at: z.number().int().nullable().optional(), id: z.string().max(5000), invoice_settings: subscriptionsResourceSubscriptionInvoiceSettings, items: z.object({data: z.array(subscriptionItem), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}), latest_invoice: z.union([z.string().max(5000), invoice]).nullable().optional(), livemode: z.boolean(), managed_payments: smorResourceManagedPayments.nullable().optional(), metadata: z.record(z.string(), z.string().max(500)), next_pending_invoice_item_invoice: z.number().int().nullable().optional(), object: z.literal("subscription"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), pause_collection: subscriptionsResourcePauseCollection.nullable().optional(), payment_settings: subscriptionsResourcePaymentSettings.nullable().optional(), pending_invoice_item_interval: subscriptionPendingInvoiceItemInterval.nullable().optional(), pending_setup_intent: z.union([z.string().max(5000), setupIntent]).nullable().optional(), pending_update: subscriptionsResourcePendingUpdate.nullable().optional(), presentment_details: subscriptionsResourceSubscriptionPresentmentDetails.optional(), schedule: z.union([z.string().max(5000), subscriptionSchedule]).nullable().optional(), start_date: z.number().int(), status: z.enum(["active", "canceled", "incomplete", "incomplete_expired", "past_due", "paused", "trialing", "unpaid"]), status_details: subscriptionsResourceStatusDetailsPublic.optional(), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional(), transfer_data: subscriptionTransferData.nullable().optional(), trial_end: z.number().int().nullable().optional(), trial_settings: subscriptionsResourceTrialSettingsTrialSettings.nullable().optional(), trial_start: z.number().int().nullable().optional()}); export const customerTaxLocation = z.object({country: z.string().max(5000), source: z.enum(["billing_address", "ip_address", "payment_method", "shipping_destination"]), state: z.string().max(5000).nullable().optional()}); export const customerTax = z.object({automatic_tax: z.enum(["failed", "not_collecting", "supported", "unrecognized_location"]), ip_address: z.string().max(5000).nullable().optional(), location: customerTaxLocation.nullable().optional(), provider: z.enum(["anrok", "avalara", "sphere", "stripe"])}); export const customer: z.ZodType = z.object({address: address.nullable().optional(), balance: z.number().int().optional(), business_name: z.string().max(150).optional(), cash_balance: cashBalance.nullable().optional(), created: z.number().int(), currency: z.string().max(5000).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), default_source: z.union([z.string().max(5000), bankAccount, card, source]).nullable().optional(), delinquent: z.boolean().nullable().optional(), description: z.string().max(5000).nullable().optional(), discount: discount.nullable().optional(), email: z.string().max(5000).nullable().optional(), id: z.string().max(5000), individual_name: z.string().max(150).optional(), invoice_credit_balance: z.record(z.string(), z.number().int()).optional(), invoice_prefix: z.string().max(5000).nullable().optional(), invoice_settings: invoiceSettingCustomerSetting.optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).optional(), name: z.string().max(5000).nullable().optional(), next_invoice_sequence: z.number().int().optional(), object: z.literal("customer"), phone: z.string().max(5000).nullable().optional(), preferred_locales: z.array(z.string().max(5000)).nullable().optional(), shipping: shipping.nullable().optional(), sources: z.object({data: z.array(z.union([z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), account_holder_name: z.string().max(5000).nullable().optional(), account_holder_type: z.string().max(5000).nullable().optional(), account_type: z.string().max(5000).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000), currency: z.string(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), future_requirements: externalAccountRequirements.nullable().optional(), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), object: z.literal("bank_account"), requirements: externalAccountRequirements.nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), status: z.string().max(5000)}), z.object({account: z.union([z.string().max(5000), account]).nullable().optional(), address_city: z.string().max(5000).nullable().optional(), address_country: z.string().max(5000).nullable().optional(), address_line1: z.string().max(5000).nullable().optional(), address_line1_check: z.string().max(5000).nullable().optional(), address_line2: z.string().max(5000).nullable().optional(), address_state: z.string().max(5000).nullable().optional(), address_zip: z.string().max(5000).nullable().optional(), address_zip_check: z.string().max(5000).nullable().optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), available_payout_methods: z.array(z.enum(["instant", "standard"])).nullable().optional(), brand: z.string().max(5000), country: z.string().max(5000).nullable().optional(), currency: z.string().nullable().optional(), customer: z.union([z.string().max(5000), z.lazy(() => customer), deletedCustomer]).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional(), default_for_currency: z.boolean().nullable().optional(), dynamic_last4: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000), id: z.string().max(5000), last4: z.string().max(5000), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), name: z.string().max(5000).nullable().optional(), networks: tokenCardNetworks.optional(), object: z.literal("card"), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), status: z.string().max(5000).nullable().optional(), tokenization_method: z.string().max(5000).nullable().optional()}), z.object({ach_credit_transfer: sourceTypeAchCreditTransfer.optional(), ach_debit: sourceTypeAchDebit.optional(), acss_debit: sourceTypeAcssDebit.optional(), alipay: sourceTypeAlipay.optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).nullable().optional(), amount: z.number().int().nullable().optional(), au_becs_debit: sourceTypeAuBecsDebit.optional(), bancontact: sourceTypeBancontact.optional(), card: sourceTypeCard.optional(), card_present: sourceTypeCardPresent.optional(), client_secret: z.string().max(5000), code_verification: sourceCodeVerificationFlow.optional(), created: z.number().int(), currency: z.string().nullable().optional(), customer: z.string().max(5000).optional(), eps: sourceTypeEps.optional(), flow: z.string().max(5000), giropay: sourceTypeGiropay.optional(), id: z.string().max(5000), ideal: sourceTypeIdeal.optional(), klarna: sourceTypeKlarna.optional(), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), multibanco: sourceTypeMultibanco.optional(), object: z.literal("source"), owner: sourceOwner.nullable().optional(), p24: sourceTypeP24.optional(), receiver: sourceReceiverFlow.optional(), redirect: sourceRedirectFlow.optional(), sepa_debit: sourceTypeSepaDebit.optional(), sofort: sourceTypeSofort.optional(), source_order: sourceOrder.optional(), statement_descriptor: z.string().max(5000).nullable().optional(), status: z.string().max(5000), three_d_secure: sourceTypeThreeDSecure.optional(), type: z.enum(["ach_credit_transfer", "ach_debit", "acss_debit", "alipay", "au_becs_debit", "bancontact", "card", "card_present", "eps", "giropay", "ideal", "klarna", "multibanco", "p24", "sepa_debit", "sofort", "three_d_secure", "wechat"]), usage: z.string().max(5000).nullable().optional(), wechat: sourceTypeWechat.optional()})])), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), subscriptions: z.object({data: z.array(subscription), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), tax: customerTax.optional(), tax_exempt: z.enum(["exempt", "none", "reverse"]).nullable().optional(), tax_ids: z.object({data: z.array(taxId), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).optional(), test_clock: z.union([z.string().max(5000), testHelpersTestClock]).nullable().optional()}); export const setupAttemptPaymentMethodDetailsAcssDebit = z.object({}); export const setupAttemptPaymentMethodDetailsAmazonPay = z.object({}); export const setupAttemptPaymentMethodDetailsAuBecsDebit = z.object({}); export const setupAttemptPaymentMethodDetailsBacsDebit = z.object({}); export const setupAttemptPaymentMethodDetailsBancontact = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "fr", "nl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const setupAttemptPaymentMethodDetailsBlik = z.object({buyer_id: z.string().max(5000).nullable().optional()}); export const setupAttemptPaymentMethodDetailsBoleto = z.object({}); export const setupAttemptPaymentMethodDetailsCardChecks = z.object({address_line1_check: z.string().max(5000).nullable().optional(), address_postal_code_check: z.string().max(5000).nullable().optional(), cvc_check: z.string().max(5000).nullable().optional()}); export const threeDSecureDetails = z.object({authentication_flow: z.enum(["challenge", "frictionless"]).nullable().optional(), electronic_commerce_indicator: z.enum(["01", "02", "05", "06", "07"]).nullable().optional(), result: z.enum(["attempt_acknowledged", "authenticated", "data_share_only", "exempted", "failed", "not_supported", "processing_error"]).nullable().optional(), result_reason: z.enum(["abandoned", "bypassed", "canceled", "card_not_enrolled", "network_not_supported", "protocol_error", "rejected"]).nullable().optional(), transaction_id: z.string().max(5000).nullable().optional(), version: z.enum(["1.0.2", "2.1.0", "2.2.0", "2.3.0", "2.3.1"]).nullable().optional()}); export const setupAttemptPaymentMethodDetailsCardWallet = z.object({apple_pay: paymentMethodDetailsCardWalletApplePay.optional(), google_pay: paymentMethodDetailsCardWalletGooglePay.optional(), type: z.enum(["apple_pay", "google_pay", "link"])}); export const setupAttemptPaymentMethodDetailsCard = z.object({brand: z.string().max(5000).nullable().optional(), checks: setupAttemptPaymentMethodDetailsCardChecks.nullable().optional(), country: z.string().max(5000).nullable().optional(), exp_month: z.number().int().nullable().optional(), exp_year: z.number().int().nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), network: z.string().max(5000).nullable().optional(), three_d_secure: threeDSecureDetails.nullable().optional(), wallet: setupAttemptPaymentMethodDetailsCardWallet.nullable().optional()}); export const setupAttemptPaymentMethodDetailsCardPresent = z.object({generated_card: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), offline: paymentMethodDetailsCardPresentOffline.nullable().optional()}); export const setupAttemptPaymentMethodDetailsCashapp = z.object({}); export const setupAttemptPaymentMethodDetailsIdeal = z.object({bank: z.enum(["abn_amro", "adyen", "asn_bank", "bunq", "buut", "finom", "handelsbanken", "ing", "knab", "mollie", "moneyou", "n26", "nn", "rabobank", "regiobank", "revolut", "sns_bank", "triodos_bank", "van_lanschot", "yoursafe"]).nullable().optional(), bic: z.enum(["ABNANL2A", "ADYBNL2A", "ASNBNL21", "BITSNL2A", "BUNQNL2A", "BUUTNL2A", "FNOMNL22", "FVLBNL22", "HANDNL2A", "INGBNL2A", "KNABNL2H", "MLLENL2A", "MOYONL21", "NNBANL2G", "NTSBDEB1", "RABONL2U", "RBRBNL21", "REVOIE23", "REVOLT21", "SNSBNL2A", "TRIONL2U"]).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const setupAttemptPaymentMethodDetailsKakaoPay = z.object({}); export const setupAttemptPaymentMethodDetailsKlarna = z.object({}); export const setupAttemptPaymentMethodDetailsKrCard = z.object({}); export const setupAttemptPaymentMethodDetailsLink = z.object({}); export const setupAttemptPaymentMethodDetailsNaverPay = z.object({buyer_id: z.string().max(5000).optional()}); export const setupAttemptPaymentMethodDetailsNzBankAccount = z.object({}); export const setupAttemptPaymentMethodDetailsPaypal = z.object({}); export const setupAttemptPaymentMethodDetailsPayto = z.object({}); export const setupAttemptPaymentMethodDetailsPix = z.object({fingerprint: z.string().max(5000).nullable().optional()}); export const setupAttemptPaymentMethodDetailsRevolutPay = z.object({}); export const paymentFlowsPrivatePaymentMethodsSatispaySetupAttemptDetails = z.object({}); export const setupAttemptPaymentMethodDetailsSepaDebit = z.object({}); export const setupAttemptPaymentMethodDetailsSofort = z.object({bank_code: z.string().max(5000).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), bic: z.string().max(5000).nullable().optional(), generated_sepa_debit: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]).nullable().optional(), generated_sepa_debit_mandate: z.union([z.string().max(5000), z.lazy(() => mandate)]).nullable().optional(), iban_last4: z.string().max(5000).nullable().optional(), preferred_language: z.enum(["de", "en", "fr", "nl"]).nullable().optional(), verified_name: z.string().max(5000).nullable().optional()}); export const setupAttemptPaymentMethodDetailsTwint = z.object({}); export const setupAttemptPaymentMethodDetailsUpi = z.object({}); export const setupAttemptPaymentMethodDetailsUsBankAccount = z.object({}); export const setupAttemptPaymentMethodDetails = z.object({acss_debit: setupAttemptPaymentMethodDetailsAcssDebit.optional(), amazon_pay: setupAttemptPaymentMethodDetailsAmazonPay.optional(), au_becs_debit: setupAttemptPaymentMethodDetailsAuBecsDebit.optional(), bacs_debit: setupAttemptPaymentMethodDetailsBacsDebit.optional(), bancontact: setupAttemptPaymentMethodDetailsBancontact.optional(), blik: setupAttemptPaymentMethodDetailsBlik.optional(), boleto: setupAttemptPaymentMethodDetailsBoleto.optional(), card: setupAttemptPaymentMethodDetailsCard.optional(), card_present: setupAttemptPaymentMethodDetailsCardPresent.optional(), cashapp: setupAttemptPaymentMethodDetailsCashapp.optional(), ideal: setupAttemptPaymentMethodDetailsIdeal.optional(), kakao_pay: setupAttemptPaymentMethodDetailsKakaoPay.optional(), klarna: setupAttemptPaymentMethodDetailsKlarna.optional(), kr_card: setupAttemptPaymentMethodDetailsKrCard.optional(), link: setupAttemptPaymentMethodDetailsLink.optional(), naver_pay: setupAttemptPaymentMethodDetailsNaverPay.optional(), nz_bank_account: setupAttemptPaymentMethodDetailsNzBankAccount.optional(), paypal: setupAttemptPaymentMethodDetailsPaypal.optional(), payto: setupAttemptPaymentMethodDetailsPayto.optional(), pix: setupAttemptPaymentMethodDetailsPix.optional(), revolut_pay: setupAttemptPaymentMethodDetailsRevolutPay.optional(), satispay: paymentFlowsPrivatePaymentMethodsSatispaySetupAttemptDetails.optional(), sepa_debit: setupAttemptPaymentMethodDetailsSepaDebit.optional(), sofort: setupAttemptPaymentMethodDetailsSofort.optional(), twint: setupAttemptPaymentMethodDetailsTwint.optional(), type: z.string().max(5000), upi: setupAttemptPaymentMethodDetailsUpi.optional(), us_bank_account: setupAttemptPaymentMethodDetailsUsBankAccount.optional()}); export const setupAttempt: z.ZodType = z.object({application: z.union([z.string().max(5000), application]).nullable().optional(), attach_to_self: z.boolean().optional(), created: z.number().int(), customer: z.union([z.string().max(5000), customer, deletedCustomer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), flow_directions: z.array(z.enum(["inbound", "outbound"])).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("setup_attempt"), on_behalf_of: z.union([z.string().max(5000), account]).nullable().optional(), payment_method: z.union([z.string().max(5000), z.lazy(() => paymentMethod)]), payment_method_details: setupAttemptPaymentMethodDetails, setup_error: apiErrors.nullable().optional(), setup_intent: z.union([z.string().max(5000), setupIntent]), status: z.string().max(5000), usage: z.string().max(5000)}); export const paymentMethodCardGeneratedCard = z.object({charge: z.string().max(5000).nullable().optional(), payment_method_details: cardGeneratedFromPaymentMethodDetails.nullable().optional(), setup_attempt: z.union([z.string().max(5000), setupAttempt]).nullable().optional()}); export const networks = z.object({available: z.array(z.string().max(5000)), preferred: z.string().max(5000).nullable().optional()}); export const threeDSecureUsage = z.object({supported: z.boolean()}); export const paymentMethodCardWalletAmexExpressCheckout = z.object({}); export const paymentMethodCardWalletApplePay = z.object({}); export const paymentMethodCardWalletGooglePay = z.object({}); export const paymentMethodCardWalletLink = z.object({}); export const paymentMethodCardWalletMasterpass = z.object({billing_address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), shipping_address: address.nullable().optional()}); export const paymentMethodCardWalletSamsungPay = z.object({}); export const paymentMethodCardWalletVisaCheckout = z.object({billing_address: address.nullable().optional(), email: z.string().max(5000).nullable().optional(), name: z.string().max(5000).nullable().optional(), shipping_address: address.nullable().optional()}); export const paymentMethodCardWallet = z.object({amex_express_checkout: paymentMethodCardWalletAmexExpressCheckout.optional(), apple_pay: paymentMethodCardWalletApplePay.optional(), dynamic_last4: z.string().max(5000).nullable().optional(), google_pay: paymentMethodCardWalletGooglePay.optional(), link: paymentMethodCardWalletLink.optional(), masterpass: paymentMethodCardWalletMasterpass.optional(), samsung_pay: paymentMethodCardWalletSamsungPay.optional(), type: z.enum(["amex_express_checkout", "apple_pay", "google_pay", "link", "masterpass", "samsung_pay", "visa_checkout"]), visa_checkout: paymentMethodCardWalletVisaCheckout.optional()}); export const paymentMethodCard = z.object({brand: z.string().max(5000), checks: paymentMethodCardChecks.nullable().optional(), country: z.string().max(5000).nullable().optional(), display_brand: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000), generated_from: paymentMethodCardGeneratedCard.nullable().optional(), last4: z.string().max(5000), networks: networks.nullable().optional(), regulated_status: z.enum(["regulated", "unregulated"]).nullable().optional(), three_d_secure_usage: threeDSecureUsage.nullable().optional(), wallet: paymentMethodCardWallet.nullable().optional()}); export const paymentMethodCardPresentNetworks = z.object({available: z.array(z.string().max(5000)), preferred: z.string().max(5000).nullable().optional()}); export const paymentMethodCardPresent = z.object({brand: z.string().max(5000).nullable().optional(), brand_product: z.string().max(5000).nullable().optional(), cardholder_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), issuer: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), networks: paymentMethodCardPresentNetworks.nullable().optional(), offline: paymentMethodDetailsCardPresentOffline.nullable().optional(), preferred_locales: z.array(z.string().max(5000)).nullable().optional(), read_method: z.enum(["contact_emv", "contactless_emv", "contactless_magstripe_mode", "magnetic_stripe_fallback", "magnetic_stripe_track2"]).nullable().optional(), wallet: paymentFlowsPrivatePaymentMethodsCardPresentCommonWallet.optional()}); export const paymentMethodCashapp = z.object({buyer_id: z.string().max(5000).nullable().optional(), cashtag: z.string().max(5000).nullable().optional()}); export const paymentMethodCrypto = z.object({}); export const customLogo = z.object({content_type: z.string().max(5000).nullable().optional(), url: z.string().max(5000)}); export const paymentMethodCustom = z.object({display_name: z.string().max(5000).nullable().optional(), logo: customLogo.nullable().optional(), type: z.string().max(5000)}); export const paymentMethodCustomerBalance = z.object({}); export const paymentMethodEps = z.object({bank: z.enum(["arzte_und_apotheker_bank", "austrian_anadi_bank_ag", "bank_austria", "bankhaus_carl_spangler", "bankhaus_schelhammer_und_schattera_ag", "bawag_psk_ag", "bks_bank_ag", "brull_kallmus_bank_ag", "btv_vier_lander_bank", "capital_bank_grawe_gruppe_ag", "deutsche_bank_ag", "dolomitenbank", "easybank_ag", "erste_bank_und_sparkassen", "hypo_alpeadriabank_international_ag", "hypo_bank_burgenland_aktiengesellschaft", "hypo_noe_lb_fur_niederosterreich_u_wien", "hypo_oberosterreich_salzburg_steiermark", "hypo_tirol_bank_ag", "hypo_vorarlberg_bank_ag", "marchfelder_bank", "oberbank_ag", "raiffeisen_bankengruppe_osterreich", "schoellerbank_ag", "sparda_bank_wien", "volksbank_gruppe", "volkskreditbank_ag", "vr_bank_braunau"]).nullable().optional()}); export const paymentMethodFpx = z.object({bank: z.enum(["affin_bank", "agrobank", "alliance_bank", "ambank", "bank_islam", "bank_muamalat", "bank_of_china", "bank_rakyat", "bnp_paribas", "bsn", "cimb", "citibank", "deutsche_bank", "hong_leong_bank", "hsbc", "kfh", "maybank2e", "maybank2u", "mbsb_bank", "ocbc", "pb_enterprise", "public_bank", "rhb", "standard_chartered", "uob"])}); export const paymentMethodGiropay = z.object({}); export const paymentMethodGrabpay = z.object({}); export const paymentMethodIdeal = z.object({bank: z.enum(["abn_amro", "adyen", "asn_bank", "bunq", "buut", "finom", "handelsbanken", "ing", "knab", "mollie", "moneyou", "n26", "nn", "rabobank", "regiobank", "revolut", "sns_bank", "triodos_bank", "van_lanschot", "yoursafe"]).nullable().optional(), bic: z.enum(["ABNANL2A", "ADYBNL2A", "ASNBNL21", "BITSNL2A", "BUNQNL2A", "BUUTNL2A", "FNOMNL22", "FVLBNL22", "HANDNL2A", "INGBNL2A", "KNABNL2H", "MLLENL2A", "MOYONL21", "NNBANL2G", "NTSBDEB1", "RABONL2U", "RBRBNL21", "REVOIE23", "REVOLT21", "SNSBNL2A", "TRIONL2U"]).nullable().optional()}); export const paymentMethodInteracPresent = z.object({brand: z.string().max(5000).nullable().optional(), cardholder_name: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), exp_month: z.number().int(), exp_year: z.number().int(), fingerprint: z.string().max(5000).nullable().optional(), funding: z.string().max(5000).nullable().optional(), issuer: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), networks: paymentMethodCardPresentNetworks.nullable().optional(), preferred_locales: z.array(z.string().max(5000)).nullable().optional(), read_method: z.enum(["contact_emv", "contactless_emv", "contactless_magstripe_mode", "magnetic_stripe_fallback", "magnetic_stripe_track2"]).nullable().optional()}); export const paymentMethodKakaoPay = z.object({}); export const paymentFlowsPrivatePaymentMethodsKlarnaDob = z.object({day: z.number().int().nullable().optional(), month: z.number().int().nullable().optional(), year: z.number().int().nullable().optional()}); export const paymentMethodKlarna = z.object({dob: paymentFlowsPrivatePaymentMethodsKlarnaDob.nullable().optional()}); export const paymentMethodKonbini = z.object({}); export const paymentMethodKrCard = z.object({brand: z.enum(["bc", "citi", "hana", "hyundai", "jeju", "jeonbuk", "kakaobank", "kbank", "kdbbank", "kookmin", "kwangju", "lotte", "mg", "nh", "post", "samsung", "savingsbank", "shinhan", "shinhyup", "suhyup", "tossbank", "woori"]).nullable().optional(), last4: z.string().max(4).nullable().optional()}); export const paymentMethodLink = z.object({email: z.string().max(5000).nullable().optional()}); export const paymentMethodMbWay = z.object({}); export const paymentMethodMobilepay = z.object({}); export const paymentMethodMultibanco = z.object({}); export const paymentMethodNaverPay = z.object({buyer_id: z.string().max(5000).nullable().optional(), funding: z.enum(["card", "points"])}); export const paymentMethodNzBankAccount = z.object({account_holder_name: z.string().max(5000).nullable().optional(), bank_code: z.string().max(5000), bank_name: z.string().max(5000), branch_code: z.string().max(5000), last4: z.string().max(5000), suffix: z.string().max(5000).nullable().optional()}); export const paymentMethodOxxo = z.object({}); export const paymentMethodP24 = z.object({bank: z.enum(["alior_bank", "bank_millennium", "bank_nowy_bfg_sa", "bank_pekao_sa", "banki_spbdzielcze", "blik", "bnp_paribas", "boz", "citi_handlowy", "credit_agricole", "envelobank", "etransfer_pocztowy24", "getin_bank", "ideabank", "ing", "inteligo", "mbank_mtransfer", "nest_przelew", "noble_pay", "pbac_z_ipko", "plus_bank", "santander_przelew24", "tmobile_usbugi_bankowe", "toyota_bank", "velobank", "volkswagen_bank"]).nullable().optional()}); export const paymentMethodPayByBank = z.object({}); export const paymentMethodPayco = z.object({}); export const paymentMethodPaynow = z.object({}); export const paymentMethodPaypal = z.object({country: z.string().max(5000).nullable().optional(), payer_email: z.string().max(5000).nullable().optional(), payer_id: z.string().max(5000).nullable().optional()}); export const paymentMethodPaypay = z.object({}); export const paymentMethodPayto = z.object({bsb_number: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), pay_id: z.string().max(5000).nullable().optional()}); export const paymentMethodPix = z.object({fingerprint: z.string().max(5000).nullable().optional()}); export const paymentMethodPromptpay = z.object({}); export const paymentMethodRevolutPay = z.object({}); export const paymentMethodSamsungPay = z.object({}); export const paymentMethodSatispay = z.object({}); export const paymentMethodScalapay = z.object({}); export const sepaDebitGeneratedFrom = z.object({charge: z.union([z.string().max(5000), charge]).nullable().optional(), setup_attempt: z.union([z.string().max(5000), setupAttempt]).nullable().optional()}); export const paymentMethodSepaDebit = z.object({bank_code: z.string().max(5000).nullable().optional(), branch_code: z.string().max(5000).nullable().optional(), country: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), generated_from: sepaDebitGeneratedFrom.nullable().optional(), last4: z.string().max(5000).nullable().optional()}); export const paymentMethodSequra = z.object({}); export const paymentMethodSofort = z.object({country: z.string().max(5000).nullable().optional()}); export const paymentMethodSunbit = z.object({}); export const paymentMethodSwish = z.object({}); export const paymentMethodTwint = z.object({}); export const paymentMethodUpi = z.object({vpa: z.string().max(5000).nullable().optional()}); export const usBankAccountNetworks = z.object({preferred: z.string().max(5000).nullable().optional(), supported: z.array(z.enum(["ach", "us_domestic_wire"]))}); export const paymentMethodUsBankAccountBlocked = z.object({network_code: z.enum(["R02", "R03", "R04", "R05", "R07", "R08", "R10", "R11", "R16", "R20", "R29", "R31"]).nullable().optional(), reason: z.enum(["bank_account_closed", "bank_account_frozen", "bank_account_invalid_details", "bank_account_restricted", "bank_account_unusable", "debit_not_authorized", "tokenized_account_number_deactivated"]).nullable().optional()}); export const paymentMethodUsBankAccountStatusDetails = z.object({blocked: paymentMethodUsBankAccountBlocked.optional()}); export const paymentMethodUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), financial_connections_account: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), networks: usBankAccountNetworks.nullable().optional(), routing_number: z.string().max(5000).nullable().optional(), status_details: paymentMethodUsBankAccountStatusDetails.nullable().optional()}); export const paymentMethodWechatPay = z.object({}); export const paymentMethodZip = z.object({}); export const paymentMethod: z.ZodType = z.object({acss_debit: paymentMethodAcssDebit.optional(), affirm: paymentMethodAffirm.optional(), afterpay_clearpay: paymentMethodAfterpayClearpay.optional(), alipay: paymentFlowsPrivatePaymentMethodsAlipay.optional(), allow_redisplay: z.enum(["always", "limited", "unspecified"]).optional(), alma: paymentMethodAlma.optional(), amazon_pay: paymentMethodAmazonPay.optional(), au_becs_debit: paymentMethodAuBecsDebit.optional(), bacs_debit: paymentMethodBacsDebit.optional(), bancontact: paymentMethodBancontact.optional(), billie: paymentMethodBillie.optional(), billing_details: billingDetails, bizum: paymentMethodBizum.optional(), blik: paymentMethodBlik.optional(), boleto: paymentMethodBoleto.optional(), card: paymentMethodCard.optional(), card_present: paymentMethodCardPresent.optional(), cashapp: paymentMethodCashapp.optional(), created: z.number().int(), crypto: paymentMethodCrypto.optional(), custom: paymentMethodCustom.optional(), customer: z.union([z.string().max(5000), customer]).nullable().optional(), customer_account: z.string().max(5000).nullable().optional(), customer_balance: paymentMethodCustomerBalance.optional(), eps: paymentMethodEps.optional(), fpx: paymentMethodFpx.optional(), giropay: paymentMethodGiropay.optional(), grabpay: paymentMethodGrabpay.optional(), id: z.string().max(5000), ideal: paymentMethodIdeal.optional(), interac_present: paymentMethodInteracPresent.optional(), kakao_pay: paymentMethodKakaoPay.optional(), klarna: paymentMethodKlarna.optional(), konbini: paymentMethodKonbini.optional(), kr_card: paymentMethodKrCard.optional(), link: paymentMethodLink.optional(), livemode: z.boolean(), mb_way: paymentMethodMbWay.optional(), metadata: z.record(z.string(), z.string().max(500)).nullable().optional(), mobilepay: paymentMethodMobilepay.optional(), multibanco: paymentMethodMultibanco.optional(), naver_pay: paymentMethodNaverPay.optional(), nz_bank_account: paymentMethodNzBankAccount.optional(), object: z.literal("payment_method"), oxxo: paymentMethodOxxo.optional(), p24: paymentMethodP24.optional(), pay_by_bank: paymentMethodPayByBank.optional(), payco: paymentMethodPayco.optional(), paynow: paymentMethodPaynow.optional(), paypal: paymentMethodPaypal.optional(), paypay: paymentMethodPaypay.optional(), payto: paymentMethodPayto.optional(), pix: paymentMethodPix.optional(), promptpay: paymentMethodPromptpay.optional(), radar_options: radarRadarOptions.optional(), revolut_pay: paymentMethodRevolutPay.optional(), samsung_pay: paymentMethodSamsungPay.optional(), satispay: paymentMethodSatispay.optional(), scalapay: paymentMethodScalapay.optional(), sepa_debit: paymentMethodSepaDebit.optional(), sequra: paymentMethodSequra.optional(), sofort: paymentMethodSofort.optional(), sunbit: paymentMethodSunbit.optional(), swish: paymentMethodSwish.optional(), twint: paymentMethodTwint.optional(), type: z.enum(["acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boleto", "card", "card_present", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "interac_present", "kakao_pay", "klarna", "konbini", "kr_card", "link", "mb_way", "mobilepay", "multibanco", "naver_pay", "nz_bank_account", "oxxo", "p24", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "sofort", "sunbit", "swish", "twint", "upi", "us_bank_account", "wechat_pay", "zip"]), upi: paymentMethodUpi.optional(), us_bank_account: paymentMethodUsBankAccount.optional(), wechat_pay: paymentMethodWechatPay.optional(), zip: paymentMethodZip.optional()}); export const mandateAcssDebit = z.object({default_for: z.array(z.enum(["invoice", "subscription"])).optional(), interval_description: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["combined", "interval", "sporadic"]), transaction_type: z.enum(["business", "personal"])}); export const mandateAmazonPay = z.object({}); export const mandateAuBecsDebit = z.object({url: z.string().max(5000)}); export const mandateBacsDebit = z.object({display_name: z.string().max(5000).nullable().optional(), network_status: z.enum(["accepted", "pending", "refused", "revoked"]), reference: z.string().max(5000), revocation_reason: z.enum(["account_closed", "bank_account_restricted", "bank_ownership_changed", "could_not_process", "debit_not_authorized"]).nullable().optional(), service_user_number: z.string().max(5000).nullable().optional(), url: z.string().max(5000)}); export const mandateBlik = z.object({expires_at: z.number().int().nullable().optional(), type: z.literal("off_session")}); export const cardMandatePaymentMethodDetailsIndia = z.object({inactive_reason: z.enum(["canceled", "card_not_supported", "currency_not_supported", "expired", "issuer_not_supported", "processing_error", "undetermined"]).nullable().optional()}); export const cardMandatePaymentMethodDetails = z.object({india: cardMandatePaymentMethodDetailsIndia.optional()}); export const mandateCashapp = z.object({}); export const mandateKakaoPay = z.object({}); export const mandateKlarna = z.object({}); export const mandateKrCard = z.object({}); export const mandateLink = z.object({}); export const mandateNaverPay = z.object({}); export const mandateNzBankAccount = z.object({}); export const mandatePaypal = z.object({billing_agreement_id: z.string().max(5000).nullable().optional(), payer_id: z.string().max(5000).nullable().optional()}); export const mandatePayto = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]), end_date: z.string().max(5000).nullable().optional(), payment_schedule: z.enum(["adhoc", "annual", "daily", "fortnightly", "monthly", "quarterly", "semi_annual", "weekly"]), payments_per_period: z.number().int().nullable().optional(), purpose: z.enum(["dependant_support", "government", "loan", "mortgage", "other", "pension", "personal", "retail", "salary", "tax", "utility"]).nullable().optional(), start_date: z.string().max(5000).nullable().optional()}); export const mandatePix = z.object({amount_includes_iof: z.enum(["always", "never"]).optional(), amount_type: z.enum(["fixed", "maximum"]).optional(), end_date: z.string().max(5000).optional(), payment_schedule: z.enum(["halfyearly", "monthly", "quarterly", "weekly", "yearly"]).optional(), reference: z.string().max(5000).optional(), start_date: z.string().max(5000).optional()}); export const mandateRevolutPay = z.object({}); export const mandateSepaDebit = z.object({reference: z.string().max(5000), url: z.string().max(5000)}); export const mandateTwint = z.object({}); export const mandateUpi = z.object({amount: z.number().int().nullable().optional(), amount_type: z.enum(["fixed", "maximum"]).nullable().optional(), description: z.string().max(20).nullable().optional(), end_date: z.number().int().nullable().optional()}); export const mandateUsBankAccount = z.object({collection_method: z.literal("paper").optional()}); export const mandatePaymentMethodDetails = z.object({acss_debit: mandateAcssDebit.optional(), amazon_pay: mandateAmazonPay.optional(), au_becs_debit: mandateAuBecsDebit.optional(), bacs_debit: mandateBacsDebit.optional(), blik: mandateBlik.optional(), card: cardMandatePaymentMethodDetails.optional(), cashapp: mandateCashapp.optional(), kakao_pay: mandateKakaoPay.optional(), klarna: mandateKlarna.optional(), kr_card: mandateKrCard.optional(), link: mandateLink.optional(), naver_pay: mandateNaverPay.optional(), nz_bank_account: mandateNzBankAccount.optional(), paypal: mandatePaypal.optional(), payto: mandatePayto.optional(), pix: mandatePix.optional(), revolut_pay: mandateRevolutPay.optional(), sepa_debit: mandateSepaDebit.optional(), twint: mandateTwint.optional(), type: z.string().max(5000), upi: mandateUpi.optional(), us_bank_account: mandateUsBankAccount.optional()}); export const mandateSingleUse = z.object({amount: z.number().int(), currency: z.string()}); export const mandate: z.ZodType = z.object({customer_acceptance: customerAcceptance, id: z.string().max(5000), livemode: z.boolean(), multi_use: mandateMultiUse.optional(), object: z.literal("mandate"), on_behalf_of: z.string().max(5000).optional(), payment_method: z.union([z.string().max(5000), paymentMethod]), payment_method_details: mandatePaymentMethodDetails, single_use: mandateSingleUse.optional(), status: z.enum(["active", "inactive", "pending"]), type: z.enum(["multi_use", "single_use"])}); export const inboundTransfersPaymentMethodDetailsUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), mandate]).optional(), network: z.literal("ach"), routing_number: z.string().max(5000).nullable().optional()}); export const inboundTransfers = z.object({billing_details: treasurySharedResourceBillingDetails, type: z.literal("us_bank_account"), us_bank_account: inboundTransfersPaymentMethodDetailsUsBankAccount.optional()}); export const treasuryInboundTransfersResourceInboundTransferResourceStatusTransitions = z.object({canceled_at: z.number().int().nullable().optional(), failed_at: z.number().int().nullable().optional(), succeeded_at: z.number().int().nullable().optional()}); export const treasuryInboundTransfer = z.object({amount: z.number().int(), cancelable: z.boolean(), created: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), failure_details: treasuryInboundTransfersResourceFailureDetails.nullable().optional(), financial_account: z.string().max(5000), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), linked_flows: treasuryInboundTransfersResourceInboundTransferResourceLinkedFlows, livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("treasury.inbound_transfer"), origin_payment_method: z.string().max(5000).nullable().optional(), origin_payment_method_details: inboundTransfers.nullable().optional(), returned: z.boolean().nullable().optional(), statement_descriptor: z.string().max(5000), status: z.enum(["canceled", "failed", "processing", "succeeded"]), status_transitions: treasuryInboundTransfersResourceInboundTransferResourceStatusTransitions, transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)]).nullable().optional()}); export const outboundPaymentsPaymentMethodDetailsFinancialAccount = z.object({id: z.string().max(5000), network: z.literal("stripe")}); export const outboundPaymentsPaymentMethodDetailsUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), mandate]).optional(), network: z.enum(["ach", "us_domestic_wire"]), routing_number: z.string().max(5000).nullable().optional()}); export const outboundPaymentsPaymentMethodDetails = z.object({billing_details: treasurySharedResourceBillingDetails, financial_account: outboundPaymentsPaymentMethodDetailsFinancialAccount.optional(), type: z.enum(["financial_account", "us_bank_account"]), us_bank_account: outboundPaymentsPaymentMethodDetailsUsBankAccount.optional()}); export const treasuryOutboundPaymentsResourceOutboundPaymentResourceEndUserDetails = z.object({ip_address: z.string().max(5000).nullable().optional(), present: z.boolean()}); export const treasuryOutboundPaymentsResourceReturnedStatus = z.object({code: z.enum(["account_closed", "account_frozen", "bank_account_restricted", "bank_ownership_changed", "declined", "incorrect_account_holder_name", "invalid_account_number", "invalid_currency", "no_account", "other"]), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)])}); export const treasuryOutboundPaymentsResourceOutboundPaymentResourceStatusTransitions = z.object({canceled_at: z.number().int().nullable().optional(), failed_at: z.number().int().nullable().optional(), posted_at: z.number().int().nullable().optional(), returned_at: z.number().int().nullable().optional()}); export const treasuryOutboundPaymentsResourceAchTrackingDetails = z.object({trace_id: z.string().max(5000)}); export const treasuryOutboundPaymentsResourceUsDomesticWireTrackingDetails = z.object({chips: z.string().max(5000).nullable().optional(), imad: z.string().max(5000).nullable().optional(), omad: z.string().max(5000).nullable().optional()}); export const treasuryOutboundPaymentsResourceOutboundPaymentResourceTrackingDetails = z.object({ach: treasuryOutboundPaymentsResourceAchTrackingDetails.optional(), type: z.enum(["ach", "us_domestic_wire"]), us_domestic_wire: treasuryOutboundPaymentsResourceUsDomesticWireTrackingDetails.optional()}); export const treasuryOutboundPayment = z.object({amount: z.number().int(), cancelable: z.boolean(), created: z.number().int(), currency: z.string(), customer: z.string().max(5000).nullable().optional(), description: z.string().max(5000).nullable().optional(), destination_payment_method: z.string().max(5000).nullable().optional(), destination_payment_method_details: outboundPaymentsPaymentMethodDetails.nullable().optional(), end_user_details: treasuryOutboundPaymentsResourceOutboundPaymentResourceEndUserDetails.nullable().optional(), expected_arrival_date: z.number().int(), financial_account: z.string().max(5000), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("treasury.outbound_payment"), returned_details: treasuryOutboundPaymentsResourceReturnedStatus.nullable().optional(), statement_descriptor: z.string().max(5000), status: z.enum(["canceled", "failed", "posted", "processing", "returned"]), status_transitions: treasuryOutboundPaymentsResourceOutboundPaymentResourceStatusTransitions, tracking_details: treasuryOutboundPaymentsResourceOutboundPaymentResourceTrackingDetails.nullable().optional(), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)])}); export const outboundTransfersPaymentMethodDetailsFinancialAccount = z.object({id: z.string().max(5000), network: z.literal("stripe")}); export const outboundTransfersPaymentMethodDetailsUsBankAccount = z.object({account_holder_type: z.enum(["company", "individual"]).nullable().optional(), account_type: z.enum(["checking", "savings"]).nullable().optional(), bank_name: z.string().max(5000).nullable().optional(), fingerprint: z.string().max(5000).nullable().optional(), last4: z.string().max(5000).nullable().optional(), mandate: z.union([z.string().max(5000), mandate]).optional(), network: z.enum(["ach", "us_domestic_wire"]), routing_number: z.string().max(5000).nullable().optional()}); export const outboundTransfersPaymentMethodDetails = z.object({billing_details: treasurySharedResourceBillingDetails, financial_account: outboundTransfersPaymentMethodDetailsFinancialAccount.optional(), type: z.enum(["financial_account", "us_bank_account"]), us_bank_account: outboundTransfersPaymentMethodDetailsUsBankAccount.optional()}); export const treasuryOutboundTransfersResourceReturnedDetails = z.object({code: z.enum(["account_closed", "account_frozen", "bank_account_restricted", "bank_ownership_changed", "declined", "incorrect_account_holder_name", "invalid_account_number", "invalid_currency", "no_account", "other"]), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)])}); export const treasuryOutboundTransfersResourceStatusTransitions = z.object({canceled_at: z.number().int().nullable().optional(), failed_at: z.number().int().nullable().optional(), posted_at: z.number().int().nullable().optional(), returned_at: z.number().int().nullable().optional()}); export const treasuryOutboundTransfersResourceAchTrackingDetails = z.object({trace_id: z.string().max(5000)}); export const treasuryOutboundTransfersResourceUsDomesticWireTrackingDetails = z.object({chips: z.string().max(5000).nullable().optional(), imad: z.string().max(5000).nullable().optional(), omad: z.string().max(5000).nullable().optional()}); export const treasuryOutboundTransfersResourceOutboundTransferResourceTrackingDetails = z.object({ach: treasuryOutboundTransfersResourceAchTrackingDetails.optional(), type: z.enum(["ach", "us_domestic_wire"]), us_domestic_wire: treasuryOutboundTransfersResourceUsDomesticWireTrackingDetails.optional()}); export const treasuryOutboundTransfer = z.object({amount: z.number().int(), cancelable: z.boolean(), created: z.number().int(), currency: z.string(), description: z.string().max(5000).nullable().optional(), destination_payment_method: z.string().max(5000).nullable().optional(), destination_payment_method_details: outboundTransfersPaymentMethodDetails, expected_arrival_date: z.number().int(), financial_account: z.string().max(5000), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), object: z.literal("treasury.outbound_transfer"), returned_details: treasuryOutboundTransfersResourceReturnedDetails.nullable().optional(), statement_descriptor: z.string().max(5000), status: z.enum(["canceled", "failed", "posted", "processing", "returned"]), status_transitions: treasuryOutboundTransfersResourceStatusTransitions, tracking_details: treasuryOutboundTransfersResourceOutboundTransferResourceTrackingDetails.nullable().optional(), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)])}); export const treasuryReceivedDebitsResourceLinkedFlows = z.object({debit_reversal: z.string().max(5000).nullable().optional(), inbound_transfer: z.string().max(5000).nullable().optional(), issuing_authorization: z.string().max(5000).nullable().optional(), issuing_transaction: z.string().max(5000).nullable().optional(), payout: z.string().max(5000).nullable().optional(), topup: z.string().max(5000).nullable().optional()}); export const treasuryReceivedDebitsResourceReversalDetails = z.object({deadline: z.number().int().nullable().optional(), restricted_reason: z.enum(["already_reversed", "deadline_passed", "network_restricted", "other", "source_flow_restricted"]).nullable().optional()}); export const treasuryReceivedDebit = z.object({amount: z.number().int(), created: z.number().int(), currency: z.string(), description: z.string().max(5000), failure_code: z.enum(["account_closed", "account_frozen", "insufficient_funds", "international_transaction", "other"]).nullable().optional(), financial_account: z.string().max(5000).nullable().optional(), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), initiating_payment_method_details: treasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails.optional(), linked_flows: treasuryReceivedDebitsResourceLinkedFlows, livemode: z.boolean(), network: z.enum(["ach", "card", "stripe"]), object: z.literal("treasury.received_debit"), reversal_details: treasuryReceivedDebitsResourceReversalDetails.nullable().optional(), status: z.enum(["failed", "succeeded"]), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)]).nullable().optional()}); export const treasuryTransactionsResourceFlowDetails = z.object({credit_reversal: z.lazy(() => treasuryCreditReversal.optional()), debit_reversal: treasuryDebitReversal.optional(), inbound_transfer: treasuryInboundTransfer.optional(), issuing_authorization: issuingAuthorization.optional(), outbound_payment: treasuryOutboundPayment.optional(), outbound_transfer: treasuryOutboundTransfer.optional(), received_credit: z.lazy(() => treasuryReceivedCredit.optional()), received_debit: treasuryReceivedDebit.optional(), type: z.enum(["credit_reversal", "debit_reversal", "inbound_transfer", "issuing_authorization", "other", "outbound_payment", "outbound_transfer", "received_credit", "received_debit"])}); export const treasuryTransactionEntry = z.object({balance_impact: treasuryTransactionsResourceBalanceImpact, created: z.number().int(), currency: z.string(), effective_at: z.number().int(), financial_account: z.string().max(5000), flow: z.string().max(5000).nullable().optional(), flow_details: treasuryTransactionsResourceFlowDetails.nullable().optional(), flow_type: z.enum(["credit_reversal", "debit_reversal", "inbound_transfer", "issuing_authorization", "other", "outbound_payment", "outbound_transfer", "received_credit", "received_debit"]), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("treasury.transaction_entry"), transaction: z.union([z.string().max(5000), z.lazy(() => treasuryTransaction)]), type: z.enum(["credit_reversal", "credit_reversal_posting", "debit_reversal", "inbound_transfer", "inbound_transfer_return", "issuing_authorization_hold", "issuing_authorization_release", "other", "outbound_payment", "outbound_payment_cancellation", "outbound_payment_failure", "outbound_payment_posting", "outbound_payment_return", "outbound_transfer", "outbound_transfer_cancellation", "outbound_transfer_failure", "outbound_transfer_posting", "outbound_transfer_return", "received_credit", "received_debit"])}); export const treasuryTransactionsResourceAbstractTransactionResourceStatusTransitions = z.object({posted_at: z.number().int().nullable().optional(), void_at: z.number().int().nullable().optional()}); export const treasuryTransaction: z.ZodType = z.object({amount: z.number().int(), balance_impact: treasuryTransactionsResourceBalanceImpact, created: z.number().int(), currency: z.string(), description: z.string().max(5000), entries: z.object({data: z.array(treasuryTransactionEntry), has_more: z.boolean(), object: z.literal("list"), url: z.string().max(5000)}).nullable().optional(), financial_account: z.string().max(5000), flow: z.string().max(5000).nullable().optional(), flow_details: treasuryTransactionsResourceFlowDetails.nullable().optional(), flow_type: z.enum(["credit_reversal", "debit_reversal", "inbound_transfer", "issuing_authorization", "other", "outbound_payment", "outbound_transfer", "received_credit", "received_debit"]), id: z.string().max(5000), livemode: z.boolean(), object: z.literal("treasury.transaction"), status: z.enum(["open", "posted", "void"]), status_transitions: treasuryTransactionsResourceAbstractTransactionResourceStatusTransitions}); export const treasuryCreditReversal: z.ZodType = z.object({amount: z.number().int(), created: z.number().int(), currency: z.string(), financial_account: z.string().max(5000), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), livemode: z.boolean(), metadata: z.record(z.string(), z.string().max(500)), network: z.enum(["ach", "stripe"]), object: z.literal("treasury.credit_reversal"), received_credit: z.string().max(5000), status: z.enum(["canceled", "posted", "processing"]), status_transitions: treasuryReceivedCreditsResourceStatusTransitions, transaction: z.union([z.string().max(5000), treasuryTransaction]).nullable().optional()}); export const treasuryReceivedCreditsResourceSourceFlowsDetails = z.object({credit_reversal: treasuryCreditReversal.optional(), outbound_payment: treasuryOutboundPayment.optional(), outbound_transfer: treasuryOutboundTransfer.optional(), payout: payout.optional(), type: z.enum(["credit_reversal", "other", "outbound_payment", "outbound_transfer", "payout"])}); export const treasuryReceivedCreditsResourceLinkedFlows = z.object({credit_reversal: z.string().max(5000).nullable().optional(), issuing_authorization: z.string().max(5000).nullable().optional(), issuing_transaction: z.string().max(5000).nullable().optional(), source_flow: z.string().max(5000).nullable().optional(), source_flow_details: treasuryReceivedCreditsResourceSourceFlowsDetails.nullable().optional(), source_flow_type: z.string().max(5000).nullable().optional()}); export const treasuryReceivedCreditsResourceReversalDetails = z.object({deadline: z.number().int().nullable().optional(), restricted_reason: z.enum(["already_reversed", "deadline_passed", "network_restricted", "other", "source_flow_restricted"]).nullable().optional()}); export const treasuryReceivedCredit: z.ZodType = z.object({amount: z.number().int(), created: z.number().int(), currency: z.string(), description: z.string().max(5000), failure_code: z.enum(["account_closed", "account_frozen", "international_transaction", "other"]).nullable().optional(), financial_account: z.string().max(5000).nullable().optional(), hosted_regulatory_receipt_url: z.string().max(5000).nullable().optional(), id: z.string().max(5000), initiating_payment_method_details: treasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails, linked_flows: treasuryReceivedCreditsResourceLinkedFlows, livemode: z.boolean(), network: z.enum(["ach", "card", "rtp", "stripe", "us_domestic_wire"]), object: z.literal("treasury.received_credit"), reversal_details: treasuryReceivedCreditsResourceReversalDetails.nullable().optional(), status: z.enum(["failed", "succeeded"]), transaction: z.union([z.string().max(5000), treasuryTransaction]).nullable().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Test mode: Create a ReceivedCredit * * POST /v1/test_helpers/treasury/received_credits * * Also accepts auth: bearerAuth */ export const createApiV1TestHelpersTreasuryReceivedCredits = async (args: CreateApiV1TestHelpersTreasuryReceivedCreditsArgs, options?: CreateApiV1TestHelpersTreasuryReceivedCreditsOptions) => { const {baseUrl = "https://api.stripe.com", fetch: fetchFn = fetch, basicAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/x-www-form-urlencoded") headers.set('accept', "application/json") if (basicAuth !== undefined) headers.set('authorization', `Basic ${btoa(`${basicAuth.username}:${basicAuth.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/test_helpers/treasury/received_credits${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: new URLSearchParams(Object.entries(args.body).flatMap(([key, value]) => (value == null ? [] : [[key, String(value)]])))}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(treasuryReceivedCredit, await res.json()) };