/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { BankAccountHolder, BankAccountHolder$Outbound, BankAccountHolder$outboundSchema, } from "./bankaccountholder.js"; /** * SEPA Bank Payment Method * * @remarks * * Bank Payment Method for SEPA bank accounts. */ export type SEPABankPaymentMethodCreate = { /** * Always `bank`. */ method?: "bank" | undefined; accountHolder: BankAccountHolder; /** * The ID of the buyer to attach the method to. */ buyerId?: string | null | undefined; /** * The merchant reference for this payment method. */ buyerExternalIdentifier?: string | null | undefined; /** * The merchant identifier for this payment method. */ externalIdentifier?: string | null | undefined; /** * Always `sepa`. */ scheme?: "sepa" | undefined; /** * The IBAN for this SEPA bank account */ accountNumber: string; /** * The BIC for this SEPA bank account */ routingNumber?: string | null | undefined; }; /** @internal */ export type SEPABankPaymentMethodCreate$Outbound = { method: "bank"; account_holder: BankAccountHolder$Outbound; buyer_id?: string | null | undefined; buyer_external_identifier?: string | null | undefined; external_identifier?: string | null | undefined; scheme: "sepa"; account_number: string; routing_number?: string | null | undefined; }; /** @internal */ export const SEPABankPaymentMethodCreate$outboundSchema: z.ZodType< SEPABankPaymentMethodCreate$Outbound, z.ZodTypeDef, SEPABankPaymentMethodCreate > = z.object({ method: z.literal("bank").default("bank" as const), accountHolder: BankAccountHolder$outboundSchema, buyerId: z.nullable(z.string()).optional(), buyerExternalIdentifier: z.nullable(z.string()).optional(), externalIdentifier: z.nullable(z.string()).optional(), scheme: z.literal("sepa").default("sepa" as const), accountNumber: z.string(), routingNumber: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { accountHolder: "account_holder", buyerId: "buyer_id", buyerExternalIdentifier: "buyer_external_identifier", externalIdentifier: "external_identifier", accountNumber: "account_number", routingNumber: "routing_number", }); }); export function sepaBankPaymentMethodCreateToJSON( sepaBankPaymentMethodCreate: SEPABankPaymentMethodCreate, ): string { return JSON.stringify( SEPABankPaymentMethodCreate$outboundSchema.parse( sepaBankPaymentMethodCreate, ), ); }