import {z} from 'zod' export type PaymentGatewayInteraction = {gatewayAVSCodes?: (string | null) | undefined, gatewayAuthCode?: (string | null) | undefined, gatewayCVV2Codes?: (string | null) | undefined, gatewayInteractionId?: (number | null) | undefined, gatewayResponseCode?: (string | null) | undefined, gatewayResponseText?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined, isOrderRefund?: boolean | undefined}; export type CoreApiContractsAuditInfo = {createBy?: (string | null) | undefined, createDate?: (string | null) | undefined, updateBy?: (string | null) | undefined, updateDate?: (string | null) | undefined}; export type CommerceRuntimeAddress = {address1?: (string | null) | undefined, address2?: (string | null) | undefined, address3?: (string | null) | undefined, address4?: (string | null) | undefined, addressType?: (string | null) | undefined, cityOrTown?: (string | null) | undefined, countryCode?: (string | null) | undefined, isValidated?: (boolean | null) | undefined, postalOrZipCode?: (string | null) | undefined, stateOrProvince?: (string | null) | undefined}; export type CommerceRuntimePhone = {home?: (string | null) | undefined, mobile?: (string | null) | undefined, work?: (string | null) | undefined}; export type CommerceRuntimeContact = {address?: CommerceRuntimeAddress | undefined, companyOrOrganization?: (string | null) | undefined, email?: (string | null) | undefined, firstName?: (string | null) | undefined, id?: (number | null) | undefined, lastNameOrSurname?: (string | null) | undefined, middleNameOrInitial?: (string | null) | undefined, phoneNumbers?: CommerceRuntimePhone | undefined}; export type PaymentCard = {bin?: (string | null) | undefined, cardNumberPartOrMask?: (string | null) | undefined, ccLastFour?: (string | null) | undefined, expireMonth?: number | undefined, expireYear?: number | undefined, isCardInfoSaved?: boolean | undefined, isTokenized?: boolean | undefined, isUsedRecurring?: (boolean | null) | undefined, nameOnCard?: (string | null) | undefined, paymentOrCardType?: (string | null) | undefined, paymentServiceCardId?: (string | null) | undefined}; export type CheckPayment = {checkNumber?: (string | null) | undefined}; export type CommerceRuntimePurchaseOrderCustomField = {code?: (string | null) | undefined, label?: (string | null) | undefined, value?: (string | null) | undefined}; export type CommerceRuntimePurchaseOrderPaymentTerm = {code?: (string | null) | undefined, description?: (string | null) | undefined}; export type PurchaseOrderPayment = {customFields?: (Array | null) | undefined, paymentTerm?: CommerceRuntimePurchaseOrderPaymentTerm | undefined, purchaseOrderNumber?: (string | null) | undefined}; export type PaymentToken = {paymentServiceTokenId?: (string | null) | undefined, type?: (string | null) | undefined}; export type CommerceRuntimeBillingInfo = {auditInfo?: CoreApiContractsAuditInfo | undefined, billingContact?: CommerceRuntimeContact | undefined, card?: PaymentCard | undefined, check?: CheckPayment | undefined, customCreditType?: (string | null) | undefined, data?: (Record | null) | undefined, externalTransactionId?: (string | null) | undefined, isRecurring?: boolean | undefined, isSameBillingShippingAddress?: boolean | undefined, paymentType?: (string | null) | undefined, paymentWorkflow?: (string | null) | undefined, purchaseOrder?: PurchaseOrderPayment | undefined, recurringTransactionId?: (string | null) | undefined, storeCreditCode?: (string | null) | undefined, storeCreditType?: (string | null) | undefined, token?: PaymentToken | undefined}; export type PaymentAction = {actionName?: (string | null) | undefined, amount?: (number | null) | undefined, cancelUrl?: (string | null) | undefined, checkNumber?: (string | null) | undefined, currencyCode?: (string | null) | undefined, data?: (Record | null) | undefined, externalTransactionId?: (string | null) | undefined, installmentPlanCode?: (string | null) | undefined, interactionDate?: (string | null) | undefined, manualGatewayInteraction?: PaymentGatewayInteraction | undefined, newBillingInfo?: CommerceRuntimeBillingInfo | undefined, recaptcha?: (string | null) | undefined, referenceSourcePaymentId?: (string | null) | undefined, returnUrl?: (string | null) | undefined}; export type CreateApiCommerceCheckoutsCheckoutIdPaymentsPaymentIdActionsArgs = {checkoutId: string, paymentId: string, responseFields?: string | undefined, body: PaymentAction}; export type CreateApiCommerceCheckoutsCheckoutIdPaymentsPaymentIdActionsOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const alternateContact = z.object({emailAddress: z.string().min(1).optional(), firstName: z.string().min(1).optional(), lastNameOrSurname: z.string().min(1).optional(), phoneNumber: z.string().nullable().optional()}); export const coreApiContractsAuditInfo = z.object({createBy: z.string().nullable().optional(), createDate: z.string().nullable().optional(), updateBy: z.string().nullable().optional(), updateDate: z.string().nullable().optional()}); export const commerceRuntimeOrderAttribute = z.object({attributeDefinitionId: z.number().int().nullable().optional(), auditInfo: coreApiContractsAuditInfo.optional(), fullyQualifiedName: z.string().nullable().optional(), values: z.array(z.unknown()).nullable().optional()}); export const commerceRuntimeAddress = z.object({address1: z.string().nullable().optional(), address2: z.string().nullable().optional(), address3: z.string().nullable().optional(), address4: z.string().nullable().optional(), addressType: z.string().nullable().optional(), cityOrTown: z.string().nullable().optional(), countryCode: z.string().nullable().optional(), isValidated: z.boolean().nullable().optional(), postalOrZipCode: z.string().nullable().optional(), stateOrProvince: z.string().nullable().optional()}); export const commerceRuntimePhone = z.object({home: z.string().nullable().optional(), mobile: z.string().nullable().optional(), work: z.string().nullable().optional()}); export const commerceRuntimeContact = z.object({address: commerceRuntimeAddress.optional(), companyOrOrganization: z.string().nullable().optional(), email: z.string().nullable().optional(), firstName: z.string().nullable().optional(), id: z.number().int().nullable().optional(), lastNameOrSurname: z.string().nullable().optional(), middleNameOrInitial: z.string().nullable().optional(), phoneNumbers: commerceRuntimePhone.optional()}); export const commerceRuntimeDestination = z.object({data: z.object({}).nullable().optional(), destinationContact: commerceRuntimeContact.optional(), id: z.string().nullable().optional(), isDestinationCommercial: z.boolean().nullable().optional()}); export const commerceRuntimeThresholdMessage = z.object({discountId: z.number().int().optional(), message: z.string().nullable().optional(), requiresCouponCode: z.boolean().optional(), showInCart: z.boolean().optional(), showOnCheckout: z.boolean().optional(), thresholdValue: z.number().optional()}); export const commerceRuntimeDiscount = z.object({expirationDate: z.string().nullable().optional(), hasMultipleTargetProducts: z.boolean().optional(), id: z.number().int().optional(), itemIds: z.array(z.string()).nullable().optional(), name: z.string().nullable().optional()}); export const commerceRuntimeAppliedDiscount = z.object({couponCode: z.string().nullable().optional(), data: z.object({}).nullable().optional(), discount: commerceRuntimeDiscount.optional(), excluded: z.boolean().nullable().optional(), groupId: z.string().nullable().optional(), impact: z.number().nullable().optional()}); export const shippingDiscount = z.object({discount: commerceRuntimeAppliedDiscount.optional(), methodCode: z.string().nullable().optional()}); export const checkoutGrouping = z.object({destinationId: z.string().nullable().optional(), dutyAmount: z.number().nullable().optional(), dutyTotal: z.number().optional(), fulfillmentMethod: z.string().nullable().optional(), handlingAmount: z.number().nullable().optional(), handlingDiscounts: z.array(commerceRuntimeAppliedDiscount).nullable().optional(), handlingSubTotal: z.number().optional(), handlingTax: z.number().nullable().optional(), handlingTaxTotal: z.number().optional(), handlingTotal: z.number().optional(), id: z.string().nullable().optional(), itemLevelHandlingDiscountTotal: z.number().optional(), itemLevelShippingDiscountTotal: z.number().optional(), orderItemIds: z.array(z.string()).nullable().optional(), orderLevelHandlingDiscountTotal: z.number().optional(), orderLevelShippingDiscountTotal: z.number().optional(), shippingAmount: z.number().nullable().optional(), shippingDiscounts: z.array(shippingDiscount).nullable().optional(), shippingMethodCode: z.string().nullable().optional(), shippingMethodName: z.string().nullable().optional(), shippingSubTotal: z.number().optional(), shippingTax: z.number().nullable().optional(), shippingTaxTotal: z.number().optional(), shippingTotal: z.number().optional(), standaloneGroup: z.boolean().optional(), taxData: z.object({}).nullable().optional()}); export const invalidCoupon = z.object({couponCode: z.string().nullable().optional(), createDate: z.string().optional(), discountId: z.number().int().optional(), reason: z.string().nullable().optional(), reasonCode: z.number().int().optional()}); export const orderLineAttribute = z.object({attributeDefinitionId: z.number().int().nullable().optional(), auditInfo: coreApiContractsAuditInfo.optional(), fullyQualifiedName: z.string().nullable().optional(), values: z.array(z.unknown()).nullable().optional()}); export const commerceRuntimeDeliveryWindow = z.object({endTime: z.string().optional(), startTime: z.string().optional()}); export const giftInfo = z.object({giftMessage: z.string().max(500).nullable().optional(), isGiftItem: z.boolean().nullable().optional()}); export const inventoryTags = z.object({name: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const commerceRuntimeMeasurement = z.object({unit: z.string().nullable().optional(), value: z.number().nullable().optional()}); export const commerceRuntimePackageMeasurements = z.object({height: commerceRuntimeMeasurement.optional(), length: commerceRuntimeMeasurement.optional(), weight: commerceRuntimeMeasurement.optional(), width: commerceRuntimeMeasurement.optional()}); export const commerceRuntimeFutureInventory = z.object({allocated: z.number().int().nullable().optional(), available: z.number().int().nullable().optional(), createDate: z.string().nullable().optional(), deliveryDate: z.string().nullable().optional(), futureInventoryID: z.number().int().nullable().optional(), onhand: z.number().int().nullable().optional(), pending: z.number().int().nullable().optional()}); export const productStock = z.object({aggregateInventory: z.number().int().nullable().optional(), availableDate: z.string().nullable().optional(), availableFutureInventories: z.number().int().optional(), futureInventories: z.array(commerceRuntimeFutureInventory).nullable().optional(), isOnBackOrder: z.boolean().optional(), isSubstitutable: z.boolean().nullable().optional(), manageStock: z.boolean().optional(), stockAvailable: z.number().int().nullable().optional(), totalAvailableStock: z.number().int().optional()}); export const commerceRuntimeBundledProduct = z.object({allocationExpiration: z.string().nullable().optional(), allocationId: z.number().int().nullable().optional(), creditValue: z.number().nullable().optional(), deltaPrice: z.number().nullable().optional(), description: z.string().nullable().optional(), fulfillmentStatus: z.string().nullable().optional(), goodsType: z.string().nullable().optional(), imageUrl: z.string().nullable().optional(), isPackagedStandAlone: z.boolean().optional(), measurements: commerceRuntimePackageMeasurements.optional(), name: z.string().nullable().optional(), optionAttributeFQN: z.string().nullable().optional(), optionValue: z.unknown(), productCode: z.string().nullable().optional(), productReservationId: z.number().int().nullable().optional(), quantity: z.number().int().optional(), stock: productStock.optional()}); export const commerceRuntimeCategory = z.object({id: z.number().int().nullable().optional(), parent: z.object({}).optional()}); export const commerceRuntimeFulfillmentField = z.object({name: z.string().nullable().optional(), required: z.boolean().optional(), userEnteredValue: z.unknown()}); export const commerceRuntimeProductOption = z.object({attributeFQN: z.string().nullable().optional(), dataType: z.string().nullable().optional(), name: z.string().nullable().optional(), shopperEnteredValue: z.unknown(), stringValue: z.string().nullable().optional(), value: z.unknown()}); export const commerceRuntimeProductPrice = z.object({creditValue: z.number().nullable().optional(), isOverRidePriceSalePrice: z.boolean().nullable().optional(), msrp: z.number().nullable().optional(), price: z.number().nullable().optional(), priceListCode: z.string().nullable().optional(), priceListEntryMode: z.string().nullable().optional(), salePrice: z.number().nullable().optional(), tenantOverridePrice: z.number().nullable().optional()}); export const commerceRuntimeProductPropertyValue = z.object({stringValue: z.string().nullable().optional(), value: z.unknown()}); export const commerceRuntimeProductProperty = z.object({attributeFQN: z.string().nullable().optional(), dataType: z.string().nullable().optional(), isMultiValue: z.boolean().optional(), name: z.string().nullable().optional(), values: z.array(commerceRuntimeProductPropertyValue).nullable().optional()}); export const commerceRuntimeProduct = z.object({allocationExpiration: z.string().nullable().optional(), allocationId: z.number().int().nullable().optional(), bundledProducts: z.array(commerceRuntimeBundledProduct).nullable().optional(), categories: z.array(commerceRuntimeCategory).nullable().optional(), condition: z.string().nullable().optional(), description: z.string().nullable().optional(), discountsRestricted: z.boolean().nullable().optional(), discountsRestrictedEndDate: z.string().nullable().optional(), discountsRestrictedStartDate: z.string().nullable().optional(), fulfillmentFields: z.array(commerceRuntimeFulfillmentField).nullable().optional(), fulfillmentStatus: z.string().nullable().optional(), fulfillmentTypesSupported: z.array(z.string()).nullable().optional(), goodsType: z.string().nullable().optional(), imageAlternateText: z.string().nullable().optional(), imageUrl: z.string().nullable().optional(), isPackagedStandAlone: z.boolean().optional(), isRecurring: z.boolean().nullable().optional(), isTaxable: z.boolean().nullable().optional(), measurements: commerceRuntimePackageMeasurements.optional(), mfgPartNumber: z.string().nullable().optional(), name: z.string().nullable().optional(), options: z.array(commerceRuntimeProductOption).nullable().optional(), price: commerceRuntimeProductPrice.optional(), productCode: z.string().nullable().optional(), productReservationId: z.number().int().nullable().optional(), productType: z.string().nullable().optional(), productUsage: z.string().nullable().optional(), properties: z.array(commerceRuntimeProductProperty).nullable().optional(), serialNumber: z.string().nullable().optional(), sku: z.string().nullable().optional(), stock: productStock.optional(), upc: z.string().nullable().optional(), variationProductCode: z.string().nullable().optional()}); export const commerceRuntimeAppliedLineItemProductDiscount = z.object({appliesToSalePrice: z.boolean().nullable().optional(), discountQuantity: z.number().int().optional()}); export const returnRuleInfo = z.object({isReturnable: z.boolean().nullable().optional(), maxDays: z.number().int().nullable().optional(), maxQty: z.number().int().nullable().optional(), ruleCode: z.string().nullable().optional()}); export const commerceRuntimeAppliedLineItemShippingDiscount = z.object({discount: commerceRuntimeAppliedDiscount.optional(), discountQuantity: z.number().int().optional(), impactPerUnit: z.number().optional(), methodCode: z.string().nullable().optional()}); export const frequency = z.object({unit: z.string().nullable().optional(), value: z.number().int().optional()}); export const trial = z.object({duration: z.number().int().optional(), enabled: z.boolean().optional(), substituteProductCode: z.string().nullable().optional(), substituteProductOptions: z.array(commerceRuntimeProductOption).nullable().optional(), substituteProductQuantity: z.number().int().optional(), substituteVariationProductCode: z.string().nullable().optional()}); export const subscriptionInfo = z.object({frequency: frequency.optional(), required: z.boolean().nullable().optional(), trial: trial.optional()}); export const substituteInfo = z.object({optIn: z.string().nullable().optional(), substituteProductCode: z.string().nullable().optional(), substituteVariantCode: z.string().nullable().optional()}); export const suggestion = z.object({futureDate: z.string().nullable().optional(), locationCode: z.string().nullable().optional(), productCode: z.string().nullable().optional(), quantity: z.number().int().optional(), suggestionType: z.string().nullable().optional(), transferToLocationCode: z.string().nullable().optional()}); export const commerceUnitPrice = z.object({extendedAmount: z.number().nullable().optional(), listAmount: z.number().nullable().optional(), overrideAmount: z.number().nullable().optional(), saleAmount: z.number().nullable().optional()}); export const commerceRuntimeOrderItem = z.object({adjustedLineItemSubtotal: z.number().nullable().optional(), attributes: z.array(orderLineAttribute).nullable().optional(), auditInfo: coreApiContractsAuditInfo.optional(), autoAddDiscountId: z.number().int().nullable().optional(), callOffOrderItemId: z.string().nullable().optional(), childItemIds: z.array(z.string()).nullable().optional(), data: z.object({}).nullable().optional(), deliveryWindow: commerceRuntimeDeliveryWindow.optional(), destinationId: z.string().nullable().optional(), discountTotal: z.number().nullable().optional(), discountedTotal: z.number().nullable().optional(), dutyAmount: z.number().nullable().optional(), expectedDeliveryDate: z.string().nullable().optional(), extendedTotal: z.number().nullable().optional(), feeTotal: z.number().nullable().optional(), fulfillmentLocationCode: z.string().nullable().optional(), fulfillmentMethod: z.string().nullable().optional(), giftInfo: giftInfo.optional(), handlingAmount: z.number().nullable().optional(), id: z.string().nullable().optional(), inventoryTags: z.array(inventoryTags).nullable().optional(), isAssemblyRequired: z.boolean().optional(), isRecurring: z.boolean().nullable().optional(), isReservationEnabled: z.boolean().optional(), isTaxable: z.boolean().nullable().optional(), itemTaxTotal: z.number().nullable().optional(), lineId: z.number().int().nullable().optional(), lineItemAdjustment: z.number().nullable().optional(), localeCode: z.string().nullable().optional(), originalCartItemId: z.string().nullable().optional(), parentItemId: z.string().nullable().optional(), priceMode: z.string().nullable().optional(), product: commerceRuntimeProduct.optional(), productDiscount: commerceRuntimeAppliedLineItemProductDiscount.optional(), productDiscounts: z.array(commerceRuntimeAppliedLineItemProductDiscount).nullable().optional(), purchaseLocation: z.string().nullable().optional(), quantity: z.number().int().optional(), returnRuleInfo: returnRuleInfo.optional(), shippingAmountBeforeDiscountsAndAdjustments: z.number().nullable().optional(), shippingDiscounts: z.array(commerceRuntimeAppliedLineItemShippingDiscount).nullable().optional(), shippingMethodCode: z.string().nullable().optional(), shippingMethodName: z.string().nullable().optional(), shippingTaxTotal: z.number().nullable().optional(), shippingTotal: z.number().nullable().optional(), subscription: subscriptionInfo.optional(), substituteInfo: substituteInfo.optional(), subtotal: z.number().nullable().optional(), suggestions: z.array(suggestion).nullable().optional(), taxData: z.object({}).nullable().optional(), taxableTotal: z.number().nullable().optional(), total: z.number().nullable().optional(), totalWithWeightedShippingAndHandling: z.number().nullable().optional(), totalWithoutWeightedShippingAndHandling: z.number().nullable().optional(), unitPrice: commerceUnitPrice.optional(), weightedOrderAdjustment: z.number().nullable().optional(), weightedOrderDiscount: z.number().nullable().optional(), weightedOrderDuty: z.number().nullable().optional(), weightedOrderHandlingAdjustment: z.number().nullable().optional(), weightedOrderHandlingFee: z.number().nullable().optional(), weightedOrderHandlingFeeDiscount: z.number().nullable().optional(), weightedOrderHandlingFeeTax: z.number().nullable().optional(), weightedOrderShipping: z.number().nullable().optional(), weightedOrderShippingDiscount: z.number().nullable().optional(), weightedOrderShippingManualAdjustment: z.number().nullable().optional(), weightedOrderShippingTax: z.number().nullable().optional(), weightedOrderTax: z.number().nullable().optional()}); export const paymentCard = z.object({bin: z.string().nullable().optional(), cardNumberPartOrMask: z.string().nullable().optional(), ccLastFour: z.string().nullable().optional(), expireMonth: z.number().int().optional(), expireYear: z.number().int().optional(), isCardInfoSaved: z.boolean().optional(), isTokenized: z.boolean().optional(), isUsedRecurring: z.boolean().nullable().optional(), nameOnCard: z.string().nullable().optional(), paymentOrCardType: z.string().nullable().optional(), paymentServiceCardId: z.string().nullable().optional()}); export const checkPayment = z.object({checkNumber: z.string().nullable().optional()}); export const commerceRuntimePurchaseOrderCustomField = z.object({code: z.string().nullable().optional(), label: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const commerceRuntimePurchaseOrderPaymentTerm = z.object({code: z.string().nullable().optional(), description: z.string().nullable().optional()}); export const purchaseOrderPayment = z.object({customFields: z.array(commerceRuntimePurchaseOrderCustomField).nullable().optional(), paymentTerm: commerceRuntimePurchaseOrderPaymentTerm.optional(), purchaseOrderNumber: z.string().nullable().optional()}); export const paymentToken = z.object({paymentServiceTokenId: z.string().nullable().optional(), type: z.string().nullable().optional()}); export const commerceRuntimeBillingInfo = z.object({auditInfo: coreApiContractsAuditInfo.optional(), billingContact: commerceRuntimeContact.optional(), card: paymentCard.optional(), check: checkPayment.optional(), customCreditType: z.string().nullable().optional(), data: z.object({}).nullable().optional(), externalTransactionId: z.string().nullable().optional(), isRecurring: z.boolean().optional(), isSameBillingShippingAddress: z.boolean().optional(), paymentType: z.string().nullable().optional(), paymentWorkflow: z.string().nullable().optional(), purchaseOrder: purchaseOrderPayment.optional(), recurringTransactionId: z.string().nullable().optional(), storeCreditCode: z.string().nullable().optional(), storeCreditType: z.string().nullable().optional(), token: paymentToken.optional()}); export const commerceRuntimeChangeMessage = z.object({amount: z.number().nullable().optional(), appId: z.string().nullable().optional(), appKey: z.string().nullable().optional(), appName: z.string().nullable().optional(), attributes: z.record(z.string(), z.unknown()).nullable().optional(), correlationId: z.string().nullable().optional(), createDate: z.string().nullable().optional(), id: z.string().nullable().optional(), identifier: z.string().nullable().optional(), message: z.string().nullable().optional(), metadata: z.unknown(), newValue: z.string().nullable().optional(), oldValue: z.string().nullable().optional(), subject: z.string().nullable().optional(), subjectType: z.string().nullable().optional(), success: z.boolean().nullable().optional(), userFirstName: z.string().nullable().optional(), userId: z.string().nullable().optional(), userLastName: z.string().nullable().optional(), userScopeType: z.string().nullable().optional(), verb: z.string().nullable().optional()}); export const gatewayGiftCard = z.object({amount: z.number().optional(), cardNumber: z.string().nullable().optional(), cardPin: z.string().nullable().optional(), currencyCode: z.string().nullable().optional(), id: z.string().nullable().optional()}); export const paymentActionTarget = z.object({targetId: z.string().nullable().optional(), targetNumber: z.number().int().nullable().optional(), targetType: z.string().nullable().optional()}); export const capturableShipmentSummary = z.object({amountApplied: z.number().optional(), shipmentNumber: z.number().int().optional(), shipmentTotal: z.number().optional()}); export const paymentGatewayResponseData = z.object({key: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const commerceRuntimePaymentInteraction = z.object({amount: z.number().nullable().optional(), auditInfo: coreApiContractsAuditInfo.optional(), capturableShipmentsSummary: z.array(capturableShipmentSummary).nullable().optional(), checkNumber: z.string().nullable().optional(), currencyCode: z.string().nullable().optional(), gatewayAVSCodes: z.string().nullable().optional(), gatewayAuthCode: z.string().nullable().optional(), gatewayCVV2Codes: z.string().nullable().optional(), gatewayInteractionId: z.number().int().nullable().optional(), gatewayResponseCode: z.string().nullable().optional(), gatewayResponseData: z.array(paymentGatewayResponseData).nullable().optional(), gatewayResponseText: z.string().nullable().optional(), gatewayTransactionId: z.string().nullable().optional(), id: z.string().nullable().optional(), interactionDate: z.string().nullable().optional(), interactionType: z.string().nullable().optional(), isManual: z.boolean().optional(), isPending: z.boolean().optional(), isRecurring: z.boolean().nullable().optional(), note: z.string().nullable().optional(), orderId: z.string().nullable().optional(), paymentEntryStatus: z.string().nullable().optional(), paymentId: z.string().nullable().optional(), paymentTransactionInteractionIdReference: z.number().int().nullable().optional(), refundId: z.string().nullable().optional(), returnId: z.string().nullable().optional(), status: z.string().nullable().optional(), target: paymentActionTarget.optional()}); export const subPayment = z.object({amountCollected: z.number().optional(), amountCredited: z.number().optional(), amountRefunded: z.number().optional(), amountRequested: z.number().optional(), status: z.string().nullable().optional(), target: paymentActionTarget.optional()}); export const commerceRuntimePayment = z.object({amountCollected: z.number().optional(), amountCredited: z.number().optional(), amountRequested: z.number().optional(), auditInfo: coreApiContractsAuditInfo.optional(), availableActions: z.array(z.string()).nullable().optional(), billingInfo: commerceRuntimeBillingInfo.optional(), changeMessages: z.array(commerceRuntimeChangeMessage).nullable().optional(), data: z.object({}).nullable().optional(), externalTransactionId: z.string().nullable().optional(), gatewayGiftCard: gatewayGiftCard.optional(), groupId: paymentActionTarget.optional(), id: z.string().nullable().optional(), installmentPlanCode: z.string().nullable().optional(), interactions: z.array(commerceRuntimePaymentInteraction).nullable().optional(), isRecurring: z.boolean().optional(), orderId: z.string().nullable().optional(), paymentServiceTransactionId: z.string().nullable().optional(), paymentType: z.string().nullable().optional(), paymentWorkflow: z.string().nullable().optional(), status: z.string().nullable().optional(), subPayments: z.array(subPayment).nullable().optional()}); export const commerceRuntimeShopperNotes = z.object({comments: z.string().max(500).nullable().optional(), deliveryInstructions: z.string().max(500).nullable().optional(), giftMessage: z.string().max(500).nullable().optional()}); export const suggestedDiscount = z.object({autoAdd: z.boolean().optional(), discountId: z.number().int().optional(), hasMultipleProducts: z.boolean().optional(), hasOptions: z.boolean().optional(), productCode: z.string().nullable().optional()}); export const checkout = z.object({acceptsMarketing: z.boolean().nullable().optional(), alternateContact: alternateContact.optional(), amountRemainingForPayment: z.number().optional(), attributes: z.array(commerceRuntimeOrderAttribute).nullable().optional(), auditInfo: coreApiContractsAuditInfo.optional(), availableActions: z.array(z.string()).nullable().optional(), channelCode: z.string().nullable().optional(), couponCodes: z.array(z.string()).nullable().optional(), currencyCode: z.string().nullable().optional(), customerAccountId: z.number().int().nullable().optional(), customerInteractionType: z.string().nullable().optional(), customerTaxId: z.string().nullable().optional(), data: z.object({}).nullable().optional(), destinations: z.array(commerceRuntimeDestination).nullable().optional(), discountThresholdMessages: z.array(commerceRuntimeThresholdMessage).nullable().optional(), dutyTotal: z.number().nullable().optional(), email: z.string().nullable().optional(), feeTotal: z.number().optional(), groupings: z.array(checkoutGrouping).nullable().optional(), handlingSubTotal: z.number().optional(), handlingTaxTotal: z.number().optional(), handlingTotal: z.number().optional(), id: z.string().nullable().optional(), invalidCoupons: z.array(invalidCoupon).nullable().optional(), ipAddress: z.string().nullable().optional(), isTaxExempt: z.boolean().nullable().optional(), itemLevelHandlingDiscountTotal: z.number().optional(), itemLevelProductDiscountTotal: z.number().optional(), itemLevelShippingDiscountTotal: z.number().optional(), itemTaxTotal: z.number().optional(), itemTotal: z.number().optional(), items: z.array(commerceRuntimeOrderItem).nullable().optional(), locationCode: z.string().nullable().optional(), number: z.number().int().nullable().optional(), orderDiscounts: z.array(commerceRuntimeAppliedDiscount).nullable().optional(), orderLevelHandlingDiscountTotal: z.number().optional(), orderLevelProductDiscountTotal: z.number().optional(), orderLevelShippingDiscountTotal: z.number().optional(), originalCartId: z.string().nullable().optional(), payments: z.array(commerceRuntimePayment).nullable().optional(), priceListCode: z.string().nullable().optional(), shippingSubTotal: z.number().optional(), shippingTaxTotal: z.number().optional(), shippingTotal: z.number().optional(), shopperNotes: commerceRuntimeShopperNotes.optional(), siteId: z.number().int().optional(), sourceDevice: z.string().nullable().optional(), subTotal: z.number().optional(), submittedDate: z.string().nullable().optional(), suggestedDiscounts: z.array(suggestedDiscount).nullable().optional(), taxData: z.object({}).nullable().optional(), tenantId: z.number().int().optional(), total: z.number().optional(), type: z.string().nullable().optional(), visitId: z.string().nullable().optional(), webSessionId: z.string().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 }; /** * Perform Payment Action * * POST /commerce/checkouts/{checkoutId}/payments/{paymentId}/actions */ export const createApiCommerceCheckoutsCheckoutIdPaymentsPaymentIdActions = async (args: CreateApiCommerceCheckoutsCheckoutIdPaymentsPaymentIdActionsArgs, options?: CreateApiCommerceCheckoutsCheckoutIdPaymentsPaymentIdActionsOptions) => { const {baseUrl = "https://t1000000.sb.usc1.gcp.kibocommerce.com/api", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.responseFields != null) query.append("responseFields", String(args.responseFields)) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/commerce/checkouts/${encodeURIComponent(String(args.checkoutId))}/payments/${encodeURIComponent(String(args.paymentId))}/actions${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(checkout, await res.json()) };