import {z} from 'zod' export type CreateApiAccountsAidWalletsTransactionsArgs = {aid: unknown, body: {token?: string | undefined, card_id?: string | undefined, id?: string | undefined, created_at?: string | undefined, created_by?: string | undefined, metadata?: Record | undefined, ref_id: string, amount: number, currency: 'NOK' | 'SEK' | 'DKK' | 'EUR' | 'USD', originated_by?: string | undefined, type?: ('drawdown' | 'fund') | undefined, pending?: boolean | undefined}}; export type CreateApiAccountsAidWalletsTransactionsOptions = {baseUrl?: string | undefined, JWT?: string | undefined, fetch?: typeof fetch | undefined}; export const paymentOperationIntent = z.enum(["unscheduled_purchase", "recurring_purchase", "generate_payment_token"]); export const settlementStatus = z.enum(["NOT_SETTLED", "PENDING_SETTLEMENT", "PARTIALLY_SETTLED", "SETTLED"]); export const myDinteroUserCreation = z.object({actions: z.array(z.enum(["create_user", "skip"])), terms: z.object({id: z.string(), url: z.string()})}); export const systemRequestHeaders = z.object({"dintero-system-name": z.string().optional(), "dintero-system-version": z.string().optional(), "dintero-system-plugin-name": z.string().optional(), "dintero-system-plugin-version": z.string().optional(), "user-agent": z.string().optional()}); export const orderAddress = z.object({first_name: z.string().optional(), last_name: z.string().optional(), address_line: z.string().optional(), address_line_2: z.string().optional(), co_address: z.string().optional(), business_name: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string().optional(), country: z.string().optional(), phone_number: z.string().optional(), email: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), comment: z.string().optional(), organization_number: z.string().optional(), organization_type: z.string().optional(), customer_reference: z.string().optional(), cost_center: z.string().optional()}); export const openingHours = z.unknown(); export const payoutFeeSplit = z.object({type: z.literal("proportional"), destinations: z.array(z.string().max(40)).optional()}); export const payoutSplit = z.object({payout_destination_id: z.string().max(40), amount: z.number().int().gte(0)}); export const multiShipmentItem = z.object({line_id: z.string(), quantity: z.number().optional()}); export const multiShipmentShippingOption = z.object({id: z.string(), line_id: z.string(), countries: z.array(z.string()).optional(), amount: z.number().int(), vat_amount: z.number().int().optional(), vat: z.number().optional(), title: z.string(), description: z.string().optional(), delivery_method: z.enum(["delivery", "pick_up", "unspecified", "none"]).optional(), operator: z.string(), operator_product_id: z.string().optional(), eta: z.object({working_days: z.array(z.number().gte(0)).optional(), shipping_day_of_week: z.number().gte(1).lte(7).optional(), arrival_day_of_week: z.number().gte(1).lte(7).optional(), starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), time_slot: z.object({starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), pick_up_address: z.object({first_name: z.string().optional(), last_name: z.string().optional(), address_line: z.string().optional(), address_line_2: z.string().optional(), co_address: z.string().optional(), business_name: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string().optional(), country: z.string().optional(), phone_number: z.string().optional(), email: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), comment: z.string().optional(), organization_number: z.string().optional(), organization_type: z.string().optional(), customer_reference: z.string().optional(), cost_center: z.string().optional(), website_url: z.string().optional(), opening_hours: openingHours.optional(), distance: z.number().optional()}).optional(), metadata: z.record(z.string(), z.union([z.string(), z.number()])).optional(), environmental_data: z.object({description: z.string(), details: z.array(z.object({label: z.string().max(50), value: z.string().max(50)})).optional()}).optional(), thumbnail_url: z.string().optional(), pay_in_store: z.object({type: z.literal("full")}).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), shipment_id: z.string().optional(), shipment_items: z.array(multiShipmentItem).optional()}); export const multiShipmentTopLevelShippingOption = z.object({id: z.string(), line_id: z.string(), countries: z.array(z.string()).optional(), amount: z.number().int(), vat_amount: z.number().int().optional(), vat: z.number().optional(), title: z.string(), description: z.string().optional(), delivery_method: z.enum(["delivery", "pick_up", "unspecified", "none"]).optional(), operator: z.string(), operator_product_id: z.string().optional(), eta: z.object({working_days: z.array(z.number().gte(0)).optional(), shipping_day_of_week: z.number().gte(1).lte(7).optional(), arrival_day_of_week: z.number().gte(1).lte(7).optional(), starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), time_slot: z.object({starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), pick_up_address: z.object({first_name: z.string().optional(), last_name: z.string().optional(), address_line: z.string().optional(), address_line_2: z.string().optional(), co_address: z.string().optional(), business_name: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string().optional(), country: z.string().optional(), phone_number: z.string().optional(), email: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), comment: z.string().optional(), organization_number: z.string().optional(), organization_type: z.string().optional(), customer_reference: z.string().optional(), cost_center: z.string().optional(), website_url: z.string().optional(), opening_hours: openingHours.optional(), distance: z.number().optional()}).optional(), metadata: z.record(z.string(), z.union([z.string(), z.number()])).optional(), environmental_data: z.object({description: z.string(), details: z.array(z.object({label: z.string().max(50), value: z.string().max(50)})).optional()}).optional(), thumbnail_url: z.string().optional(), pay_in_store: z.object({type: z.literal("full")}).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), shipments: z.array(multiShipmentShippingOption).optional()}); export const address = z.object({address_line: z.string(), address_line_2: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string(), country: z.string()}); export const store = z.object({id: z.string(), name: z.string().optional(), business_name: z.string().optional(), address: address.optional(), chain: z.string().optional(), email: z.string().optional(), gln: z.string().optional(), organization_number: z.string().optional(), phone_number: z.string().optional(), mcc: z.string().optional(), bax: z.string().optional(), terminal_id: z.string().optional(), payout_destination_id: z.string().max(40).optional()}); export const giftcard = z.object({type: z.literal("dintero.wallets"), card_id: z.string(), amount: z.number().int(), masked_card_token: z.string().optional()}); export const emdEvent = z.array(z.object({event_name: z.string(), event_company: z.string(), genre_of_event: z.string(), arena_name: z.string().optional(), arena_location: z.object({street_address: z.string().optional(), postal_code: z.string().optional(), city: z.string(), country: z.string()}).optional(), start_time: z.string(), end_time: z.string(), access_controlled_venue: z.boolean().optional(), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), affiliate_name: z.string().optional()})); export const emdSubscription = z.object({subscription_name: z.string(), start_time: z.string(), end_time: z.string(), auto_renewal_of_subscription: z.boolean(), affiliate_name: z.string().optional()}); export const emdCustomerAccountInfo = z.object({unique_account_identifier: z.string(), account_registration_date: z.string(), account_last_modified: z.string()}); export const emdRecurring = z.object({subscription: emdSubscription, customer_account_info: emdCustomerAccountInfo}); export const emdAirReservationDetailsItinerary = z.object({departure: z.string(), departure_city: z.string().optional(), arrival: z.string(), arrival_city: z.string().optional(), carrier: z.string(), segment_price: z.number().int().optional(), departure_date: z.string(), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), passenger_id: z.array(z.number().int()).optional(), class: z.string().optional()}); export const emdTravelInsurance = z.object({insurance_company: z.string().optional(), insurance_type: z.enum(["cancellation", "travel", "cancellation_travel", "bankruptcy"]).optional(), insurance_price: z.number().int().optional()}); export const emdTravelPassenger = z.object({id: z.number().int().optional(), title: z.enum(["mr", "mrs", "ms", ""]).optional(), first_name: z.string(), last_name: z.string()}); export const emdAirReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdAirReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), passengers: z.array(emdTravelPassenger).optional(), affiliate_name: z.string().optional()}); export const emdBusReservationDetailsItinerary = z.object({departure_city: z.string(), arrival_city: z.string(), carrier: z.string(), segment_price: z.number().int().optional(), departure_date: z.string(), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), passenger_id: z.array(z.number().int()).optional(), class: z.string().optional()}); export const emdBusReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdBusReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), passengers: z.array(emdTravelPassenger).optional(), affiliate_name: z.string().optional()}); export const emdTrainReservationDetailsItinerary = z.object({departure_city: z.string(), arrival_city: z.string(), carrier: z.string(), segment_price: z.number().int().optional(), departure_date: z.string(), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), passenger_id: z.array(z.number().int()), class: z.string().optional()}); export const emdTrainReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdTrainReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), passengers: z.array(emdTravelPassenger).optional(), affiliate_name: z.string().optional()}); export const emdFerryReservationDetailsItinerary = z.object({departure_city: z.string(), arrival_city: z.string(), carrier: z.string(), segment_price: z.number().int().optional(), departure_date: z.string(), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), passenger_id: z.array(z.number().int()).optional(), class: z.string().optional()}); export const emdFerryReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdFerryReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), passengers: z.array(emdTravelPassenger).optional(), affiliate_name: z.string().optional()}); export const emdHotelReservationDetailsItinerary = z.object({hotel_name: z.string().optional(), address: z.object({street_address: z.string().optional(), postal_code: z.string().optional(), city: z.string(), country: z.string()}).optional(), start_time: z.string(), end_time: z.string(), number_of_rooms: z.number().int(), passenger_id: z.array(z.number().int()), ticket_delivery_method: z.enum(["pick_up", "email", "post", "phone"]), ticket_delivery_recipient: z.string(), hotel_price: z.number().int(), class: z.string().optional()}); export const emdHotelReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdHotelReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), passengers: z.array(emdTravelPassenger).optional(), affiliate_name: z.string().optional()}); export const emdCarRentalReservationDetailsItinerary = z.object({rental_company: z.string(), drivers_id: z.array(z.number().int()).optional(), pick_up_location: z.object({street_address: z.string().optional(), postal_code: z.string().optional(), city: z.string(), country: z.string()}).optional(), drop_off_location: z.object({street_address: z.string().optional(), postal_code: z.string().optional(), city: z.string(), country: z.string()}).optional(), start_time: z.string(), end_time: z.string(), car_price: z.number().int().optional(), class: z.string().optional()}); export const emdCarRentalReservationDetails = z.object({pnr: z.string().optional(), itinerary: z.array(emdCarRentalReservationDetailsItinerary), insurance: z.array(emdTravelInsurance).optional(), drivers: z.array(emdTravelPassenger), affiliate_name: z.string().optional()}); export const emdTravel = z.object({air_reservation_details: emdAirReservationDetails.optional(), bus_reservation_details: emdBusReservationDetails.optional(), train_reservation_details: emdTrainReservationDetails.optional(), ferry_reservation_details: emdFerryReservationDetails.optional(), hotel_reservation_details: emdHotelReservationDetails.optional(), car_rental_reservation_details: emdCarRentalReservationDetails.optional()}); export const emdMarketplaceAccountLastModified = z.object({password: z.string(), email: z.string(), listing: z.string(), login: z.string(), address: z.string()}); export const emdMarketplaceSellerInfo = z.object({unique_account_identifier_seller: z.object({email: z.string().optional(), phone_number: z.string().optional(), other: z.string().optional()}).optional(), sub_merchant_id: z.string(), product_category: z.string(), product_name: z.string().optional(), account_registration_date: z.string(), account_last_modified: emdMarketplaceAccountLastModified, seller_rating: z.number().optional(), number_of_trades: z.number().int(), volume_of_trades: z.number().int().optional()}); export const emdMarketplaceWinnerInfo = z.object({unique_account_identifier_winner: z.object({email: z.string().optional(), phone_number: z.string().optional(), other: z.string().optional()}).optional(), account_registration_date: z.string(), account_last_modified: emdMarketplaceAccountLastModified, number_of_trades: z.number().int(), volume_of_trades: z.number().int().optional()}); export const emdMarketplaceOrder = z.object({seller_info: emdMarketplaceSellerInfo, winner_info: emdMarketplaceWinnerInfo}); export const emd = z.object({event: emdEvent.optional(), subscription: emdRecurring.optional(), travel: emdTravel.optional(), marketplace_order: emdMarketplaceOrder.optional()}); export const discountType = z.enum(["customer", "periodic", "manual", "loyalty", "total", "employee", "external"]); export const discountItem = z.object({amount: z.number().int().optional(), percentage: z.number().optional(), discount_type: discountType.optional(), discount_id: z.string().optional(), description: z.string().optional(), line_id: z.number().int().optional()}); export const requestHeaders = z.object({"dintero-system-name": z.string().optional(), "dintero-system-version": z.string().optional(), "dintero-system-plugin-name": z.string().optional(), "dintero-system-plugin-version": z.string().optional(), "user-agent": z.string().optional(), "dintero-checkout-instance-id": z.string().optional()}); export const transactionSettlementsEvent = z.object({settlement_id: z.string(), provider_reference: z.string(), event_correlation_id: z.string().optional(), amount: z.number(), capture: z.number().optional(), refund: z.number().optional(), fee: z.number().optional()}); export const transactionSettlementsRead = z.object({events: z.array(transactionSettlementsEvent), settlement_status: z.enum(["NOT_SETTLED", "PENDING_SETTLEMENT", "PARTIALLY_SETTLED", "SETTLED"]).optional()}); export const sessionUrls = z.object({return_url: z.string()}); export const sessionCustomer = z.object({customer_id: z.string().optional(), email: z.string().optional(), phone_number: z.string().optional()}); export const sessionOrder = z.object({amount: z.number().int(), currency: z.string(), vat_amount: z.number().int().optional(), merchant_reference_2: z.string().optional(), event_reference: z.string().optional(), shipping_address: orderAddress.optional(), billing_address: orderAddress.optional(), partial_payment: z.boolean().optional(), items: z.array(z.object({id: z.string().optional(), groups: z.array(z.object({id: z.string(), name: z.string().optional()})).optional(), line_id: z.string().optional(), version: z.number().optional(), description: z.string().optional(), quantity: z.number().optional(), amount: z.number().int().optional(), vat_amount: z.number().int().optional(), vat: z.number().optional(), unit_volume: z.number().optional(), unit_weight: z.number().optional(), unit_dimensional_weight: z.number().optional(), type: z.enum(["physical", "digital", "service", "gift_card", "shipping", "surcharge"]).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), thumbnail_url: z.string().optional(), emd: emd.optional(), store: store.optional(), eligible_for_discount: z.boolean().optional(), is_changed: z.boolean().optional(), gross_amount: z.number().optional(), discount_lines: z.array(discountItem).optional()})).optional(), gross_amount: z.number().optional(), is_changed: z.boolean().optional(), shipping_option: multiShipmentTopLevelShippingOption.optional(), store: store.optional(), discount_lines: z.array(discountItem).optional(), discount_codes: z.array(z.string()).optional(), gift_cards: z.array(giftcard).optional(), emd: emd.optional(), payout_destination_id: z.string().max(40).optional(), merchant_reference: z.string()}); export const checkbox = z.object({id: z.string(), label: z.string().min(2).max(99), checked: z.boolean().optional(), required: z.boolean().optional(), link: z.object({url: z.string(), text: z.string()}).optional()}); export const checkboxConfiguration = z.array(checkbox); export const publishConfiguration = z.array(z.object({channel: z.enum(["sms", "push"]), type: z.enum(["checkout-link", "app", "terminal"]), id: z.string().optional(), status: z.enum(["sent", "skipped", "failed"]).optional()})); export const bamboraConfiguration = z.unknown(); export const dinteroConfiguration = z.unknown(); export const dinteroPspConfiguration = z.unknown(); export const instabankConfiguration = z.unknown(); export const netaxeptConfiguration = z.unknown(); export const payExConfiguration = z.unknown(); export const vippsConfiguration = z.unknown(); export const collectorConfiguration = z.unknown(); export const klarnaConfiguration = z.unknown(); export const kraviaConfiguration = z.unknown(); export const twoConfiguration = z.unknown(); export const santanderConfiguration = z.unknown(); export const seitatechConfiguration = z.unknown(); export const swishConfiguration = z.unknown(); export const payoutConfiguration = z.unknown(); export const ageVerificationConfiguration = z.unknown(); export const sessionPayability = z.unknown(); export const collectorB2BPaymentOperationAddress = z.object({business_name: z.string().max(50), organization_number: z.string().min(9).max(12), address_line: z.string().max(50), postal_code: z.string().max(50), postal_place: z.string().max(50), country: z.string(), address_id: z.string().optional()}); export const collectorProduct = z.object({id: z.string(), type: z.enum(["interest_free", "annuity"]), credit_time: z.number().int(), campaign_fee: z.number().int(), origination_fee: z.number().int(), notification_fee: z.number().int(), annual_interest_rate: z.string().optional(), effective_annual_interest_rate: z.string().optional(), total_amount: z.number().int(), monthly_amount: z.number().int(), first_monthly_amount: z.number().int()}); export const shippingOption = z.object({id: z.string(), line_id: z.string(), countries: z.array(z.string()).optional(), amount: z.number().int(), vat_amount: z.number().int().optional(), vat: z.number().optional(), title: z.string(), description: z.string().optional(), delivery_method: z.enum(["delivery", "pick_up", "unspecified", "none"]).optional(), operator: z.string(), operator_product_id: z.string().optional(), eta: z.object({working_days: z.array(z.number().gte(0)).optional(), shipping_day_of_week: z.number().gte(1).lte(7).optional(), arrival_day_of_week: z.number().gte(1).lte(7).optional(), starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), time_slot: z.object({starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), pick_up_address: z.object({first_name: z.string().optional(), last_name: z.string().optional(), address_line: z.string().optional(), address_line_2: z.string().optional(), co_address: z.string().optional(), business_name: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string().optional(), country: z.string().optional(), phone_number: z.string().optional(), email: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), comment: z.string().optional(), organization_number: z.string().optional(), organization_type: z.string().optional(), customer_reference: z.string().optional(), cost_center: z.string().optional(), website_url: z.string().optional(), opening_hours: openingHours.optional(), distance: z.number().optional()}).optional(), metadata: z.record(z.string(), z.union([z.string(), z.number()])).optional(), environmental_data: z.object({description: z.string(), details: z.array(z.object({label: z.string().max(50), value: z.string().max(50)})).optional()}).optional(), thumbnail_url: z.string().optional()}); export const sessionExpress = z.object({express: z.object({shipping_options: z.array(shippingOption), shipping_mode: z.enum(["shipping_required", "shipping_not_required"]).optional(), discount_codes: z.object({max_count: z.number().optional(), callback_url: z.string().optional()}).optional(), shipping_address_callback_url: z.string().optional(), customer_types: z.array(z.enum(["b2c", "b2b"])).optional(), default_different_billing_shipping_address: z.array(z.enum(["b2c", "b2b"])).optional()}).optional()}); export const session = z.object({url: sessionUrls, customer: sessionCustomer.optional(), order: sessionOrder, expires_at: z.string().optional(), checkboxes: checkboxConfiguration.optional(), express: z.object({shipping_options: z.array(z.object({id: z.string(), line_id: z.string(), countries: z.array(z.string()).optional(), amount: z.number().int(), vat_amount: z.number().int().optional(), vat: z.number().optional(), title: z.string(), description: z.string().optional(), delivery_method: z.enum(["delivery", "pick_up", "unspecified", "none"]).optional(), operator: z.string(), operator_product_id: z.string().optional(), eta: z.object({working_days: z.array(z.number().gte(0)).optional(), shipping_day_of_week: z.number().gte(1).lte(7).optional(), arrival_day_of_week: z.number().gte(1).lte(7).optional(), starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), time_slot: z.object({starts_at: z.string().optional(), ends_at: z.string().optional()}).optional(), pick_up_address: z.object({first_name: z.string().optional(), last_name: z.string().optional(), address_line: z.string().optional(), address_line_2: z.string().optional(), co_address: z.string().optional(), business_name: z.string().optional(), postal_code: z.string().optional(), postal_place: z.string().optional(), country: z.string().optional(), phone_number: z.string().optional(), email: z.string().optional(), latitude: z.number().optional(), longitude: z.number().optional(), comment: z.string().optional(), organization_number: z.string().optional(), organization_type: z.string().optional(), customer_reference: z.string().optional(), cost_center: z.string().optional(), website_url: z.string().optional(), opening_hours: openingHours.optional(), distance: z.number().optional()}).optional(), metadata: z.record(z.string(), z.union([z.string(), z.number()])).optional(), environmental_data: z.object({description: z.string(), details: z.array(z.object({label: z.string().max(50), value: z.string().max(50)})).optional()}).optional(), thumbnail_url: z.string().optional(), pay_in_store: z.object({type: z.literal("full")}).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), shipment_id: z.string().optional(), shipment_items: z.array(multiShipmentItem).optional()})), shipping_mode: z.enum(["shipping_required", "shipping_not_required"]).optional(), discount_codes: z.object({max_count: z.number().optional(), callback_url: z.string().optional()}).optional(), shipping_address_callback_url: z.string().optional(), customer_types: z.array(z.enum(["b2c", "b2b"])).optional(), default_different_billing_shipping_address: z.array(z.enum(["b2c", "b2b"])).optional()}).optional(), configuration: z.object({auto_capture: z.boolean().optional(), channel: z.enum(["ecommerce", "in_app", "in_store", "hosted"]).optional(), publish: publishConfiguration.optional(), active_payment_types: z.object({enabled: z.boolean().optional()}).optional(), default_payment_type: z.enum(["bambora.applepay", "bambora.creditcard", "bambora.googlepay", "bambora.mobilepay", "bambora.vipps", "dintero.zero", "dintero_psp.applepay", "dintero_psp.creditcard", "dintero_psp.vipps", "dintero_psp.googlepay", "dintero_psp.clicktopay", "instabank.finance", "instabank.invoice", "instabank.installment", "instabank.postponement", "vipps", "payex.creditcard", "payex.mobilepay", "payex.swish", "payex.vipps", "payex.applepay", "payex.clicktopay", "payex.googlepay", "collector.finance", "collector.invoice", "collector.invoice_b2b", "collector.invoice_b2b_preapproved", "collector.installment_b2b_preapproved", "collector.installment", "santander.debit_account", "swish.swish", "netaxept.creditcard", "klarna.klarna", "klarna.billie", "kravia.invoice_b2b", "kravia.invoice_b2b_grouped", "kravia.invoice_b2c", "seitatech.in_person", "two.invoice_b2b"]).optional(), bambora: bamboraConfiguration.optional(), dintero: dinteroConfiguration.optional(), dintero_psp: dinteroPspConfiguration.optional(), instabank: instabankConfiguration.optional(), netaxept: netaxeptConfiguration.optional(), payex: payExConfiguration.optional(), vipps: vippsConfiguration.optional(), collector: collectorConfiguration.optional(), klarna: klarnaConfiguration.optional(), kravia: kraviaConfiguration.optional(), two: twoConfiguration.optional(), santander: santanderConfiguration.optional(), seitatech: seitatechConfiguration.optional(), swish: swishConfiguration.optional(), payout: payoutConfiguration.optional(), allow_express_wallet_payment: z.boolean().optional(), age_verification: ageVerificationConfiguration.optional(), discounts: z.object({type: z.literal("discounts").optional(), express_discount_codes: z.object({payability: sessionPayability.optional(), enabled: z.boolean()}).optional(), order: z.object({enabled: z.boolean()}).optional()}).optional(), theme: z.object({backdrop: z.string().optional(), primary: z.string().optional(), cardRadius: z.string().optional(), buttonRadius: z.string().optional()}).optional(), countries: z.object({preferred_country: z.string().optional(), allow_countries: z.array(z.string()).optional(), deny_countries: z.array(z.string()).optional()}).optional(), default_customer_type: z.enum(["b2c", "b2b"]).optional(), allow_different_billing_shipping_address: z.array(z.enum(["b2c", "b2b"])).optional()}), id: z.string().optional(), created_at: z.string().optional(), updated_at: z.string().optional(), customer_ip: z.string().optional(), user_agent: z.string().optional(), initiating_system_request_headers: systemRequestHeaders.optional(), payment_operation: paymentOperationIntent.optional(), events: z.array(z.object({created_at: z.string().optional(), id: z.string().optional(), request_id: z.string().optional(), name: z.enum(["INITIATED", "VISITED", "COMPLETED", "AUTHORIZED", "DECLINED", "PAY_LOCK_START", "PAY_LOCK_META", "PAY_LOCK_END", "PAY_FAILED", "ON_HOLD_CALLBACK_SENT", "AUTH_CALLBACK_SENT", "FAILED", "UNKNOWN", "PAYMENT_TOKEN_FLOW_START", "UPDATE_SESSION", "CANCELLED", "SET_BILLING_ADDRESS", "SET_DISCOUNT_CODES", "SET_SHIPPING_ADDRESS", "SET_SHIPPING_OPTION", "SET_GIFT_CARD", "PUSH_NOTIFICATION_SENT", "SECRET_CONFIRMATION_CODE_SENT", "SET_MY_DINTERO", "ADD_PAYMENT_INFORMATION"]).optional(), request_headers: requestHeaders.optional(), details: z.object({error: z.string().optional(), payment_product_type: z.string().optional(), amount: z.number().int().optional(), shipping_option: multiShipmentTopLevelShippingOption.optional(), shipping_address: orderAddress.optional(), bambora: z.object({session_token: z.string().optional(), session_url: z.string().optional(), wallet_session_id: z.string().optional()}).optional(), klarna: z.object({client_token: z.string(), session_id: z.string()}).optional(), "seitatech:payment_reference": z.string().optional(), "seitatech:terminal_id": z.string().optional(), "seitatech:terminal_tms_id": z.string().optional(), "payex:payment:id": z.string().optional(), "vipps:payment:id": z.string().optional(), "vipps:gateway_api_version": z.string().optional(), "collector:invoice_b2b:addresses": z.array(collectorB2BPaymentOperationAddress).optional(), "collector:installment:products": z.array(collectorProduct).optional(), my_dintero: myDinteroUserCreation.optional(), organization_number: z.string().optional(), previous_order: sessionOrder.optional(), updated_order: sessionOrder.optional(), updated_order_result: z.object({status: z.literal("NOT_MODIFIED").optional()}).optional(), previous_express: sessionExpress.optional(), updated_express: sessionExpress.optional(), updated_express_result: z.object({status: z.literal("NOT_MODIFIED").optional()}).optional(), gift_card: z.object({card_id: z.string().optional(), card_amount: z.number().optional(), masked_card_token: z.string().optional(), currency: z.string().optional()}).optional(), transaction_event_id: z.string().optional()}).optional()})).optional(), transaction_id: z.string().optional()}); export const invoiceChannel = z.enum(["merchant", "kravia"]); export const card = z.object({brand: z.string().optional(), masked_pan: z.string().optional(), expiry_date: z.string().optional(), type: z.enum(["Credit", "Debit", "Credit Card", "Debit Card", "Prepaid"]).optional(), region: z.enum(["domestic", "eea", "eea-uk", "europe", "inter"]).optional(), country: z.string().optional(), product_platform: z.enum(["consumer", "commercial"]).optional(), issuing_bank: z.string().optional(), acquirer_transaction_type: z.enum(["3DSECURE", "SSL"]).optional(), acquirer_stan: z.string().optional(), acquirer_terminal_id: z.string().optional(), acquirer_transaction_time: z.string().optional(), authentication_status: z.enum(["Y", "A", "U", "N"]).optional(), three_ds_version: z.string().optional(), three_ds_server_trans_id: z.string().optional(), eci: z.string().optional(), payment_system_type: z.string().optional(), payment_token: z.string().optional(), payment_token_id: z.string().optional(), recurrence_token: z.string().optional(), recurrence_token_id: z.string().optional(), card_holder_tokenization_consent: z.enum(["opt_in", "opt_out"]).optional(), entry_method: z.enum(["chip", "contactless", "magstripe"]).optional()}); export const verifiedIdentity = z.object({type: z.enum(["collector-idp", "dintero-idp"]), iss: z.string().max(100), sub: z.string().max(100).optional(), aud: z.string().max(100), acr: z.string().max(100), auth_time: z.string(), national_idp: z.string().max(20), national_country: z.string().max(2), nonce: z.string().optional(), name: z.string().max(100).optional(), given_name: z.string().max(100).optional(), family_name: z.string().max(100).optional()}); export const transaction = z.object({id: z.string().optional(), created_at: z.string().optional(), payment_product: z.enum(["bambora", "collector", "dintero", "dintero_psp", "instabank", "klarna", "netaxept", "payex", "santander", "swish", "vipps", "kravia", "two", "seitatech"]), payment_product_type: z.enum(["bambora.applepay", "bambora.creditcard", "bambora.googlepay", "bambora.mobilepay", "bambora.vipps", "collector.invoice", "collector.invoice_b2b", "collector.invoice_b2b_preapproved", "collector.installment", "dintero.zero", "dintero.wallets", "dintero.external", "dintero_psp.creditcard", "dintero_psp.vipps", "dintero_psp.googlepay", "dintero_psp.applepay", "dintero_psp.clicktopay", "instabank.finance", "instabank.invoice", "instabank.installment", "instabank.postponement", "klarna.klarna", "klarna.billie", "kravia.invoice_b2b", "kravia.invoice_b2b_grouped", "kravia.invoice_b2c", "two.invoice_b2b", "netaxept.creditcard", "payex.creditcard", "payex.mobilepay", "payex.swish", "payex.vipps", "payex.applepay", "payex.clicktopay", "payex.googlepay", "santander.debit_account", "seitatech.in_person", "swish.swish", "vipps"]), amount: z.number().int(), currency: z.string(), payout_destination_id: z.string().max(40).optional(), merchant_reference: z.string().optional(), channel: z.enum(["ecommerce", "in_app", "in_store"]).optional(), platform_type: z.enum(["aggregator", "marketplace"]).optional(), merchant_reference_2: z.string().optional(), dynamic_descriptor: z.string().optional(), payment_operation: paymentOperationIntent.optional(), settlement_status: settlementStatus.optional(), customer: z.object({customer_id: z.string().optional(), email: z.string().optional(), phone_number: z.string().optional(), my_dintero: myDinteroUserCreation.optional()}).optional(), customer_ip: z.string().optional(), user_agent: z.string().optional(), initiating_system_request_headers: systemRequestHeaders.optional(), shipping_address: orderAddress.optional(), shipping_option: multiShipmentTopLevelShippingOption.optional(), billing_address: orderAddress.optional(), store: store.optional(), status: z.enum(["INITIATED", "AUTHORIZED", "AUTHORIZATION_VOIDED", "CAPTURED", "PARTIALLY_CAPTURED", "PARTIALLY_CAPTURED_REFUNDED", "REFUNDED", "PARTIALLY_REFUNDED", "DECLINED", "FAILED", "UNKNOWN", "ON_HOLD"]).optional(), gift_cards: z.array(giftcard).optional(), items: z.array(z.object({id: z.string().optional(), groups: z.array(z.object({id: z.string(), name: z.string().optional()})).optional(), line_id: z.string().optional(), version: z.number().optional(), description: z.string().optional(), quantity: z.number().optional(), amount: z.number().int().optional(), vat_amount: z.number().int().optional(), vat: z.number().optional(), unit_volume: z.number().optional(), unit_weight: z.number().optional(), unit_dimensional_weight: z.number().optional(), type: z.enum(["physical", "digital", "service", "gift_card", "shipping", "surcharge"]).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), thumbnail_url: z.string().optional(), emd: emd.optional(), store: store.optional(), eligible_for_discount: z.boolean().optional(), is_changed: z.boolean().optional(), gross_amount: z.number().optional(), discount_lines: z.array(discountItem).optional()})).optional(), url: z.object({redirect_url: z.string().optional(), approval_url: z.string().optional(), callback_url: z.string().optional()}).optional(), events: z.array(z.object({id: z.string().optional(), transaction_status: z.enum(["INITIATED", "AUTHORIZED", "AUTHORIZATION_VOIDED", "CAPTURED", "PARTIALLY_CAPTURED", "REFUNDED", "PARTIALLY_REFUNDED", "DECLINED", "FAILED", "UNKNOWN", "ON_HOLD"]).optional(), gift_cards: z.array(z.object({type: z.literal("dintero.wallets"), card_id: z.string(), amount: z.number().int(), masked_card_token: z.string().optional(), transaction_id: z.string()})).optional(), event: z.enum(["INITIALIZE", "AUTHORIZE", "CAPTURE", "REFUND", "VOID", "INITIATE_REFUND", "INITIATE_VOID", "INITIATE_CAPTURE", "SETTLEMENT"]).optional(), success: z.boolean().optional(), correction: z.object({event_ids: z.array(z.string()).optional(), status: z.string(), remaining_capture_amount: z.number().int().gte(0), remaining_refund_amount: z.number().int().gte(0), remaining_void_amount: z.number().int().gte(0)}).optional(), error: z.object({code: z.string().optional(), message: z.string(), type: z.array(z.enum(["ERROR", "DECLINED", "ISSUER_ERROR", "PICK_UP_CARD", "INVALID_MERCHANT", "INVALID_TRANSACTION", "INVALID_AMOUNT", "INSUFFICIENT_FUNDS", "CLOSED_ACCOUNT", "EXPIRED_CARD", "EXCEEDS_APPROVAL_LIMIT", "EXCEEDS_WITHDRAWAL_FREQUENCY_LIMIT", "RESTRICTED_CARD", "PIN_REQUIRED", "FAILED_VERIFICATION", "ADDITIONAL_VERIFICATION_REQUIRED", "AUTHORIZATION_EXPIRED", "PENDING_ISSUER_RESPONSE", "UNKNOWN"])).optional(), result_code: z.string().optional(), retry_policy: z.object({retry_codes: z.array(z.enum(["DO_NOT_RETRY", "RETRY_IMMEDIATELY", "RETRY_AFTER_DELAY"])), retry_after: z.string().optional()}).optional()}).optional(), amount: z.number().optional(), calculated_vat_amount: z.number().optional(), items: z.array(z.object({discount_lines: z.array(discountItem).optional(), id: z.string().optional(), groups: z.array(z.object({id: z.string(), name: z.string().optional()})).optional(), line_id: z.string().optional(), version: z.number().optional(), description: z.string().optional(), quantity: z.number().optional(), amount: z.number().int().optional(), vat_amount: z.number().int().optional(), vat: z.number().optional(), unit_volume: z.number().optional(), unit_weight: z.number().optional(), unit_dimensional_weight: z.number().optional(), type: z.enum(["physical", "digital", "service", "gift_card", "shipping", "surcharge"]).optional(), fee_split: payoutFeeSplit.optional(), splits: z.array(payoutSplit).optional(), thumbnail_url: z.string().optional(), emd: emd.optional(), store: store.optional()})).optional(), created_at: z.string().optional(), created_by: z.string().optional(), request_id: z.string().optional(), metadata: z.object({"bambora:transaction:status": z.string().optional(), "bambora:transactionoperation:id": z.string().optional(), "bambora:meta:action:source": z.string().optional(), "bambora:meta:action:code": z.string().optional(), "bambora:meta:action:type": z.string().optional(), payout_correlation_id: z.string().optional(), "collector:Invoice.InvoiceStatus": z.number().optional(), "collector:CorrelationId": z.string().optional(), "collector:Invoice.PaymentReference": z.string().optional(), "collector:Invoice.LowestAmountToPay": z.number().optional(), "collector:Invoice.TotalAmount": z.number().optional(), "collector:Invoice.DueDate": z.string().optional(), "collector:Invoice.InvoiceUrl": z.string().optional(), "collector:Invoice.CurrentInvoiceNumber": z.string().optional(), "collector:Invoice.NewInvoiceNumber": z.string().optional(), "instabank:Sale.Status": z.string().optional(), "instabank:RequestId": z.string().optional(), "dintero_psp:operation_ref": z.string().optional(), "dintero_psp:authorization_operation_ref": z.string().optional(), "dintero_psp:capture_operation_ref": z.string().optional(), "dintero_psp:sale_operation_ref": z.string().optional(), "dintero_psp:network:correlation_id": z.string().optional(), "dintero_psp:network:acquirer_stan": z.string().optional(), "dintero_psp:network:lifecycle_trace_id": z.string().optional(), "klarna:reference": z.string().optional(), "klarna:headers:capture_id": z.string().optional(), "klarna:headers:refund_id": z.string().optional(), "klarna:headers:location": z.string().optional(), "klarna:authorization_expiration": z.string().optional(), "klarna:authorization_expiration_reason": z.string().optional(), "klarna:authorization_expiration_reference": z.string().optional(), "klarna:authorization_expiration_error_reason": z.string().optional(), "klarna:order_amount_update_error": z.string().optional(), "klarna:order_amount_update_can_retry": z.enum(["0", "1"]).optional(), "netaxept:transaction_id": z.string().optional(), "netaxept:operation": z.string().optional(), "netaxept:execution_time": z.string().optional(), "netaxept:bat_number": z.string().optional(), "netaxept:response_code": z.string().optional(), "netaxept:terminal_url": z.string().optional(), "payex:transaction:id": z.string().optional(), "payex:transaction:number": z.union([z.number(), z.string()]).optional(), "payex:transaction:type": z.string().optional(), "payex:transaction:state": z.string().optional(), "payex:transaction:created": z.string().optional(), "payex:transaction:payee_reference": z.string().optional(), "santander:debit_account.ApplicationNumber": z.string().optional(), "santander:debit_account.StatusCode": z.string().optional(), "swish:payment_request:token": z.string().optional(), "swish:payment_request:get_payment_url": z.string().optional(), "swish:id": z.string().optional(), "swish:originalPaymentReference": z.string().optional(), "swish:paymentReference": z.string().optional(), "swish:amount": z.string().optional(), "swish:dateCreated": z.string().optional(), "swish:datePaid": z.string().optional(), "swish:status": z.string().optional(), "swish:errorCode": z.string().optional(), "swish:errorMessage": z.string().optional(), "vipps:transactionInfo.timeStamp": z.string().optional(), "vipps:transactionInfo.transactionId": z.string().optional(), "vipps:transactionInfo.status": z.enum(["INITIATE", "RESERVE", "CANCEL", "CAPTURE", "SALE", "VOID", "Captured", "Cancelled", "Refund"]).optional(), "vipps:transaction.transactionText": z.string().optional(), "kravia:invoice_date": z.string().optional(), "kravia:invoice_due_date": z.string().optional(), "kravia:invoice_number": z.string().optional(), "kravia:creditor_id": z.string().optional(), "kravia:invoice_id": z.string().optional(), "kravia:payment_details:bank_account:bban": z.string().optional(), "kravia:payment_details:bank_account:iban": z.string().optional(), "kravia:payment_details:bank_account:swift": z.string().optional(), "kravia:payment_details:kid": z.string().optional(), terminal_id: z.string().optional(), refund_timeout_at: z.string().optional(), device_serial_number: z.string().optional(), "seitatech:refund_request:id": z.string().optional(), "seitatech:refund_request:status": z.string().optional(), "seitatech:uniqueId": z.string().optional(), "seitatech:receiptNumber": z.string().optional(), "seitatech:outcome": z.string().optional(), "seitatech:merchantCategoryCode": z.string().optional(), "seitatech:applicationIdentifier": z.string().optional(), "seitatech:acquirer": z.string().optional(), "seitatech:actionCode": z.string().optional(), "seitatech:archiveId": z.string().optional(), "seitatech:authorizer": z.string().optional(), "seitatech:batchId": z.string().optional(), "seitatech:customerReceipt": z.string().optional(), "seitatech:customerReceiptPart2": z.string().optional(), "seitatech:field41": z.string().optional(), "seitatech:field42": z.string().optional(), "seitatech:merchantReceipt": z.string().optional(), "seitatech:merchantReceiptPart2": z.string().optional(), "seitatech:reasonCode": z.string().optional(), "seitatech:responseCode": z.string().optional(), "seitatech:serviceIdentifier": z.string().optional(), "seitatech:aip": z.string().optional(), "seitatech:atc": z.string().optional(), "seitatech:cid": z.string().optional(), "seitatech:cvm": z.string().optional(), "seitatech:tvr": z.string().optional(), "seitatech:languageCode": z.string().optional(), "seitatech:tsi": z.string().optional(), "seitatech:terminalSerialNumber": z.string().optional(), "seitatech:transactionType": z.string().optional(), "seitatech:saleAmount": z.string().optional(), "seitatech:batchUuid": z.string().optional(), "seitatech:outcomeReason": z.string().optional(), "seitatech:posReferenceData": z.string().optional(), "seitatech:conlonToken": z.string().optional(), "two:order_id": z.string().optional(), "two:remaining_order_id": z.string().optional(), "two:invoice_url": z.string().optional(), "two:invoice_number": z.string().optional(), "two:credit_note_url": z.string().optional(), "two:credit_note_number": z.string().optional(), "two:due_date": z.string().optional()}).optional(), correlation_request_id: z.string().optional(), event_reference: z.string().optional(), request_headers: requestHeaders.optional(), settlements: transactionSettlementsRead.optional()})).optional(), session_id: z.string().optional(), session: session.optional(), updated_at: z.string().optional(), metadata: z.object({merchant_name: z.string().optional(), merchant_country: z.string().optional(), merchant_category_code: z.string().optional(), "session:profile_id": z.string().optional(), event_reference: z.string().optional(), payout: z.enum(["payout_account", "payout_splits", "payout_destination_id"]).optional(), payout_correlation_id: z.string().optional(), "gateway:id": z.string().optional(), "bambora:merchant_number": z.string().optional(), "bambora:transaction_id": z.string().optional(), "bambora:reference": z.string().optional(), "bambora:acquirer": z.string().optional(), "bambora:wallet": z.string().optional(), "collector:StoreId": z.string().optional(), "collector:Invoice.InvoiceNumber": z.string().optional(), "collector:Invoice.OrderNumber": z.string().optional(), "collector:Invoice.CountryCode": z.string().optional(), "collector:Invoice.ProductCode": z.string().optional(), "collector:Invoice.InvoiceType": z.string().optional(), "collector:Invoice.SettlementReference": z.string().optional(), "instabank:Sale.ExternalReference": z.string().optional(), "instabank:Sale.Sequence": z.number().optional(), "instabank:Sale.Product.Name": z.string().optional(), "klarna:authorized_payment_method:type": z.enum(["invoice", "fixed_amount", "base_account", "direct_debit", "direct_bank_transfer", "b2b_invoice", "card", "slice_it_by_card", "pay_later_by_card", "pay_by_card", "fixed_sum_credit"]).optional(), "klarna:authorized_payment_method:number_of_days": z.string().optional(), "klarna:authorized_payment_method:number_of_installments": z.string().optional(), "klarna:authorized_payment_method:fraud_status": z.enum(["ACCEPTED", "PENDING"]).optional(), "netaxept:merchant_id": z.string().optional(), "netaxept:transaction_id": z.string().optional(), "payex:payment:payee_info:payee_id": z.string().optional(), "payex:payment:payee_info:payee_name": z.string().optional(), "payex:payment:payee_info:subsite": z.string().optional(), "payex:payment:id": z.string().optional(), "payex:payment:number": z.union([z.number(), z.string()]).optional(), "payex:payment:operation": z.string().optional(), "payex:payment:created": z.string().optional(), "santander:debit_account.ApplicationNumber": z.string().optional(), "santander:debit_account.StatusCode": z.string().optional(), "swish:payment_request:id": z.string().optional(), "swish:swish_number": z.string().optional(), "swish:id": z.string().optional(), "swish:paymentReference": z.string().optional(), "vipps:transaction.orderId": z.string().optional(), "vipps:transaction.transactionText": z.string().optional(), "vipps:merchantInfo.merchantSerialNumber": z.string().max(9).optional(), "vipps:merchantInfo.paymentType": z.literal("eComm Regular Payment").optional(), "kravia:invoice_number": z.string().optional(), "kravia:invoice_reference": z.string().optional(), "kravia:invoice_channel": invoiceChannel.optional(), "kravia:invoice_url": z.string().optional(), "two:order_id": z.string().optional(), "two:payment_url": z.string().optional(), "two:merchant_id": z.string().optional()}).optional(), checkboxes: checkboxConfiguration.optional(), card: card.optional(), verified_identity: verifiedIdentity.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 }; /** * aid_cards_transactions_post * * POST /accounts/{aid}/wallets/transactions */ export const createApiAccountsAidWalletsTransactions = async (args: CreateApiAccountsAidWalletsTransactionsArgs, options?: CreateApiAccountsAidWalletsTransactionsOptions) => { const {baseUrl = "https://api.dintero.com/v1", fetch: fetchFn = fetch, JWT} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (JWT !== undefined) headers.set('authorization', `Bearer ${JWT}`) const url = `${baseUrl.replace(/\/+$/, '')}/accounts/${encodeURIComponent(String(args.aid))}/wallets/transactions${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(transaction, await res.json()) };