import {z} from 'zod' export type UUID = string; export type PaymentAmount = number; export type SubmerchantUUID = string; export type SubmerchantAmount = number; export type PlatformFeeAmount = number; export type Submerchant = {submerchant_id: SubmerchantUUID, amount: SubmerchantAmount, platform_fee: PlatformFeeAmount}; export type PlatformDetails = {submerchants: Array, processing_merchant_id?: UUID | undefined}; export type RefundPaymentRequest = {amount?: PaymentAmount | undefined, description?: string | undefined, platform_details?: PlatformDetails | undefined}; export type CreateApiPaymentsIdRefundArgs = {id: UUID, body: RefundPaymentRequest}; export type CreateApiPaymentsIdRefundOptions = {baseUrl?: string | undefined, apiKey?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const paymentUUID = z.string().min(25).max(25); export const paymentStatus = z.enum(["pending", "authorized", "captured", "cancelled", "expired", "refunded", "failed"]); export const paymentAmount = z.number().int().gte(0); export const taxAmount = z.number().int().gte(0); export const responseCreditCardMonth = z.number().int().gte(1).lte(12); export const responseCreditCardYear = z.number().int().gte(0).lte(2100); export const responseCustomerEmail = z.string(); export const responseCustomerName = z.string().max(255); export const responseCustomerGivenName = z.string().max(255); export const responseCustomerFamilyName = z.string().max(255); export const installments = z.enum(["3", "5", "6", "10", "12", "15", "18", "20", "24", "revolving"]); export const responsePaymentDetailsCreditCard = z.object({type: z.literal("credit_card"), brand: z.string(), last_four_digits: z.string(), month: responseCreditCardMonth, year: responseCreditCardYear, email: responseCustomerEmail, verification_value: z.enum(["Approved", "Invalid", "Not Checked", "Not Supplied"]).optional(), name: responseCustomerName.optional(), given_name: responseCustomerGivenName.optional(), family_name: responseCustomerFamilyName.optional(), expiry_days: z.number().int().optional(), intent: z.enum(["one_time", "card_on_file", "subscription", "installment"]).optional(), initiator: z.enum(["merchant", "customer"]).optional(), usage: z.enum(["first", "used"]).optional(), scheme_reference: z.string().optional(), installments: installments.optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsCreditCardBrazil = z.object({type: z.literal("credit_card_brazil"), email: responseCustomerEmail, remote_payment_id: z.string()}); export const responsePaymentDetailsCreditCardKorea = z.object({type: z.literal("credit_card_korea"), brand: z.string(), last_four_digits: z.string(), month: responseCreditCardMonth, year: responseCreditCardYear, verification_value: z.enum(["Approved", "Invalid", "Not Checked", "Not Supplied"]).optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsCreditCardTerminal = z.object({type: z.literal("credit_card_terminal"), brand: z.string().optional(), last_four_digits: z.string().optional(), month: responseCreditCardMonth.optional(), year: responseCreditCardYear.optional(), field55: z.string().optional(), cardnet_status: z.string().optional(), approval_number: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsAlipay = z.object({type: z.literal("alipay"), email: responseCustomerEmail, transaction_id: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsAlipayHK = z.object({type: z.literal("alipay_hk"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsAU = z.object({type: z.literal("au"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), pay_info_no: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsAupay = z.object({type: z.literal("aupay"), email: responseCustomerEmail, transaction_id: z.string().nullable().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsBancontact = z.object({type: z.literal("bancontact"), email: responseCustomerEmail, transaction_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responseCustomerEmailWithInstruction = z.string(); export const responsePaymentDetailsBankTransfer = z.object({type: z.literal("bank_transfer"), email: responseCustomerEmailWithInstruction, order_id: z.string().optional(), bank_name: z.string().optional(), account_branch_name: z.string().optional(), account_number: z.string().optional(), account_type: z.string().optional(), account_name: z.string().optional(), instructions_url: z.string().optional(), payment_deadline: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsBitCash = z.object({type: z.literal("bit_cash"), email: responseCustomerEmail.optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsBlik = z.object({type: z.literal("blik"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsCultureVoucher = z.object({type: z.literal("culture_voucher"), email: responseCustomerEmail, culture_id: z.string(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsCVS = z.object({type: z.literal("cvs"), email: responseCustomerEmail, bardcode: z.string().optional(), instructions_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsDana = z.object({type: z.literal("dana"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const providerOrderNumber = z.string().max(12); export const responsePaymentDetailsDocomo = z.object({type: z.literal("docomo"), email: responseCustomerEmail, redirect_url: z.string().optional(), provider_order_number: providerOrderNumber.optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsDokuWallet = z.object({type: z.literal("doku_wallet"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsDospara = z.object({type: z.literal("dospara"), email: responseCustomerEmail, user_no: z.string(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsDragonpay = z.object({type: z.literal("dragonpay"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsEnets = z.object({type: z.literal("enets"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsEpospay = z.object({type: z.literal("epospay"), email: responseCustomerEmail, offsite_fake_new_path: z.string().optional(), offsite_url: z.string().optional(), merchant_id: z.string().optional(), shop_id: z.string().optional(), deal_id: z.string().optional(), token: z.string().optional(), prd_list: z.string().optional(), amount: z.number().int().optional(), customer_id: z.string().optional(), return_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsEps = z.object({type: z.literal("eps"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsFpx = z.object({type: z.literal("fpx"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsGCash = z.object({type: z.literal("gcash"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsGiropay = z.object({type: z.literal("giropay"), email: responseCustomerEmail, transaction_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsHappyMoney = z.object({type: z.literal("happy_money"), email: responseCustomerEmail, happy_money_id: z.string(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsIdeal = z.object({type: z.literal("ideal"), email: responseCustomerEmail, transacion_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsKakaopay = z.object({type: z.literal("kakaopay"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsKonbini = z.object({type: z.literal("konbini"), store: z.enum(["seven-eleven", "lawson", "family-mart", "ministop", "daily-yamazaki", "seicomart"]), email: responseCustomerEmailWithInstruction, confirmation_code: z.string().nullable().optional(), receipt: z.string().nullable().optional(), instructions_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsMerpay = z.object({type: z.literal("merpay"), email: responseCustomerEmail, transaction_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsMobileJapan = z.object({type: z.literal("japan_mobile"), email: responseCustomerEmail, provider: z.enum(["au", "docomo", "softbank"]), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsMobile = z.object({type: z.literal("mobile"), email: responseCustomerEmail, provider: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsMultibanco = z.object({type: z.literal("multibanco"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsMybank = z.object({type: z.literal("mybank"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsNarvesen = z.object({type: z.literal("narvesen"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsNaverpay = z.object({type: z.literal("naverpay"), email: responseCustomerEmail, callback_url: z.string().optional(), mode: z.enum(["production", "development"]).optional(), redirect: z.boolean().optional(), offsite_fake_new_path: z.string().optional(), client_id: z.string().optional(), digital_content_only: z.boolean().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const prepaidCards = z.object({last_four_digits: z.string().optional(), points: z.number().int().optional()}); export const responsePaymentDetailsNetCash = z.object({type: z.literal("net_cash"), email: responseCustomerEmail.optional(), short_amount: z.number().int().optional(), prepaid_cards: z.array(prepaidCards).optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsOvo = z.object({type: z.literal("ovo"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPaidy = z.object({type: z.literal("paidy"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPayco = z.object({type: z.literal("payco"), email: responseCustomerEmail, order_sheet_url: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPayEasy = z.object({type: z.literal("pay_easy"), email: responseCustomerEmailWithInstruction, bank_id: z.string().optional(), customer_id: z.string().optional(), confirmation_id: z.string().optional(), instructions_url: z.string().optional(), payment_url: z.string().optional(), cvs_code: z.string().nullable().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPayPay = z.object({type: z.literal("paypay"), email: responseCustomerEmail, redirect_url: z.string().optional(), external_payment_id: z.string().nullable().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPaypost = z.object({type: z.literal("paypost"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPaysafeCard = z.object({type: z.literal("paysafe_card"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPaysafeCash = z.object({type: z.literal("paysafe_cash"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPaysera = z.object({type: z.literal("paysera"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPayu = z.object({type: z.literal("payu"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPerlas = z.object({type: z.literal("perlas"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPix = z.object({type: z.literal("pix"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_code: z.string().optional(), qr_code_url: z.string().optional(), pix_payment_code: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPoli = z.object({type: z.literal("poli"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsPrzelewy24 = z.object({type: z.literal("przelewy24"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsRakutenpay = z.object({type: z.literal("rakutenpay"), email: responseCustomerEmail, charge_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsSepaTransfer = z.object({type: z.literal("sepa_transfer"), email: responseCustomerEmail, transaction_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsSofortbanking = z.object({type: z.literal("sofortbanking"), email: responseCustomerEmail, transaction_key: z.string().optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsSoftbank = z.object({type: z.literal("softbank"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsToss = z.object({type: z.literal("toss"), email: responseCustomerEmail, toss_pay_token: z.string().optional(), qr_code: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsTNG = z.object({type: z.literal("tng"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsTruemoney = z.object({type: z.literal("truemoney"), email: responseCustomerEmail, redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsUnionpay = z.object({type: z.literal("unionpay"), email: responseCustomerEmail, redirect_url: z.string().optional(), transaction_id: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsWebMoney = z.object({type: z.literal("web_money"), email: responseCustomerEmail.optional(), short_amount: z.number().int().optional(), prepaid_cards: z.array(prepaidCards).optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsWechatpay = z.object({type: z.literal("wechatpay"), email: responseCustomerEmail, qr_code_url: z.string().optional(), mweb_url: z.string().optional(), trade_type: z.enum(["NATIVE", "MWEB"]).optional(), redirect_url: z.string().optional(), shipping_address_name: z.string().optional(), shipping_address_line1: z.string().optional(), shipping_address_line2: z.string().optional(), shipping_address_city: z.string().optional(), shipping_address_state: z.string().optional(), shipping_address_zip: z.string().optional(), shipping_address_country: z.string().optional(), billing_address_name: z.string().optional(), billing_address_line1: z.string().optional(), billing_address_line2: z.string().optional(), billing_address_city: z.string().optional(), billing_address_state: z.string().optional(), billing_address_zip: z.string().optional(), billing_address_country: z.string().optional()}); export const responsePaymentDetailsAll = z.discriminatedUnion("type", [responsePaymentDetailsCreditCard, responsePaymentDetailsCreditCardBrazil, responsePaymentDetailsCreditCardKorea, responsePaymentDetailsCreditCardTerminal, responsePaymentDetailsAlipay, responsePaymentDetailsAlipayHK, responsePaymentDetailsAU, responsePaymentDetailsAupay, responsePaymentDetailsBancontact, responsePaymentDetailsBankTransfer, responsePaymentDetailsBitCash, responsePaymentDetailsBlik, responsePaymentDetailsCultureVoucher, responsePaymentDetailsCVS, responsePaymentDetailsDana, responsePaymentDetailsDocomo, responsePaymentDetailsDokuWallet, responsePaymentDetailsDospara, responsePaymentDetailsDragonpay, responsePaymentDetailsEnets, responsePaymentDetailsEpospay, responsePaymentDetailsEps, responsePaymentDetailsFpx, responsePaymentDetailsGCash, responsePaymentDetailsGiropay, responsePaymentDetailsHappyMoney, responsePaymentDetailsIdeal, responsePaymentDetailsKakaopay, responsePaymentDetailsKonbini, responsePaymentDetailsMerpay, responsePaymentDetailsMobileJapan, responsePaymentDetailsMobile, responsePaymentDetailsMultibanco, responsePaymentDetailsMybank, responsePaymentDetailsNarvesen, responsePaymentDetailsNaverpay, responsePaymentDetailsNetCash, responsePaymentDetailsOvo, responsePaymentDetailsPaidy, responsePaymentDetailsPayco, responsePaymentDetailsPayEasy, responsePaymentDetailsPayPay, responsePaymentDetailsPaypost, responsePaymentDetailsPaysafeCard, responsePaymentDetailsPaysafeCash, responsePaymentDetailsPaysera, responsePaymentDetailsPayu, responsePaymentDetailsPerlas, responsePaymentDetailsPix, responsePaymentDetailsPoli, responsePaymentDetailsPrzelewy24, responsePaymentDetailsRakutenpay, responsePaymentDetailsSepaTransfer, responsePaymentDetailsSofortbanking, responsePaymentDetailsSoftbank, responsePaymentDetailsToss, responsePaymentDetailsTNG, responsePaymentDetailsTruemoney, responsePaymentDetailsUnionpay, responsePaymentDetailsWebMoney, responsePaymentDetailsWechatpay]); export const amount = z.number().int().gte(0); export const currency = z.enum(["JPY", "USD", "EUR", "TWD", "KRW", "PLN", "GBP", "HKD", "SGD", "NZD", "AUD", "IDR", "MYR", "PHP", "THB", "CNY", "BRL", "CHF", "CAD", "VND"]); export const locale = z.enum(["ja", "en", "ko"]); export const uUID = z.string().min(25).max(25); export const statementDescriptor = z.object({statement_descriptor: z.string().optional(), statement_descriptor_alpha: z.string().optional(), statement_descriptor_kana: z.string().optional(), statement_city: z.string().optional(), contact_phone: z.string().optional()}); export const submerchantUUID = z.string().min(25).max(25); export const submerchantAmount = z.number().int().gte(0); export const platformFeeAmount = z.number().int().gte(0); export const submerchant = z.object({submerchant_id: submerchantUUID, amount: submerchantAmount, platform_fee: platformFeeAmount}); export const platformDetails = z.object({submerchants: z.array(submerchant), processing_merchant_id: uUID.optional()}); export const refundUUID = z.string().min(25).max(25); export const refundAmount = z.number().int().gte(0); export const refund = z.object({id: refundUUID, resource: z.literal("refund"), amount: refundAmount, currency: currency, payment: paymentUUID, description: z.string(), created_at: z.string(), chargeback: z.boolean(), refund_type: z.string().optional(), platform_details: platformDetails.optional()}); export const refundRequestUUID = z.string().min(25).max(25); export const refundRequestStatus = z.enum(["pending", "rejected", "completed"]); export const refundRequest = z.object({id: refundRequestUUID, payment: paymentUUID, customer_name: z.string(), bank_name: z.string(), bank_code: z.string().min(4).max(4), branch_name: z.string(), branch_number: z.string().min(3).max(3), account_number: z.string().min(7).max(7), description: z.string().optional(), status: refundRequestStatus, created_at: z.string(), platform_details: platformDetails.optional()}); export const payment = z.object({id: paymentUUID, resource: z.literal("payment"), status: paymentStatus, amount: paymentAmount, tax: taxAmount, customer: z.string().nullable(), payment_deadline: z.string().nullable(), payment_details: responsePaymentDetailsAll, payment_method_fee: amount, total: amount, currency: currency, description: z.string().nullable(), captured_at: z.string().nullable(), external_order_num: z.string().nullable(), metadata: z.object({}), created_at: z.string(), amount_refunded: amount, locale: locale, session: uUID, customer_family_name: z.string().nullable(), customer_given_name: z.string().nullable(), mcc: z.string().nullable(), statement_descriptor: statementDescriptor, platform_details: platformDetails.optional(), refunds: z.array(refund), refund_requests: z.array(refundRequest)}); 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 }; /** * Payment: Refund * * POST /payments/{id}/refund */ export const createApiPaymentsIdRefund = async (args: CreateApiPaymentsIdRefundArgs, options?: CreateApiPaymentsIdRefundOptions) => { const {baseUrl = "https://komoju.com/api/v1", fetch: fetchFn = fetch, apiKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (apiKey !== undefined) headers.set('authorization', `Basic ${btoa(`${apiKey.username}:${apiKey.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/payments/${encodeURIComponent(String(args.id))}/refund${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(payment, await res.json()) };