/* * 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"; /** * BACS Bank Payment Method * * @remarks * * Bank Payment Method for BACS bank accounts. */ export type BACSBankPaymentMethodCreate = { /** * 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 `bacs`. */ scheme?: "bacs" | undefined; /** * The account number for this BACS bank account */ accountNumber: string; /** * The sort code for this BACS bank account */ routingNumber: string; }; /** @internal */ export type BACSBankPaymentMethodCreate$Outbound = { method: "bank"; account_holder: BankAccountHolder$Outbound; buyer_id?: string | null | undefined; buyer_external_identifier?: string | null | undefined; external_identifier?: string | null | undefined; scheme: "bacs"; account_number: string; routing_number: string; }; /** @internal */ export const BACSBankPaymentMethodCreate$outboundSchema: z.ZodType< BACSBankPaymentMethodCreate$Outbound, z.ZodTypeDef, BACSBankPaymentMethodCreate > = 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("bacs").default("bacs" as const), accountNumber: z.string(), routingNumber: z.string(), }).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 bacsBankPaymentMethodCreateToJSON( bacsBankPaymentMethodCreate: BACSBankPaymentMethodCreate, ): string { return JSON.stringify( BACSBankPaymentMethodCreate$outboundSchema.parse( bacsBankPaymentMethodCreate, ), ); }