import * as z from "zod/v3"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { Amount, Amount$Outbound } from "./amount.js"; import { CreatePaymentLinkLineItems, CreatePaymentLinkLineItems$Outbound } from "./createpaymentlinklineitems.js"; import { PaymentLinkCustomerOptions, PaymentLinkCustomerOptions$Outbound } from "./paymentlinkcustomeroptions.js"; import { PaymentLinkDisplayOptions, PaymentLinkDisplayOptions$Outbound } from "./paymentlinkdisplayoptions.js"; import { PaymentLinkPaymentDetails, PaymentLinkPaymentDetails$Outbound } from "./paymentlinkpaymentdetails.js"; import { PaymentLinkPayoutDetails, PaymentLinkPayoutDetails$Outbound } from "./paymentlinkpayoutdetails.js"; /** * Request to create a new payment link. * * @remarks * * A payment link must include either `payment` or `payout` details, but not both. For payout payment links, * `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement * to a specific recipient. */ export type CreatePaymentLink = { /** * The partner's Moov account ID. */ partnerAccountID: string; /** * The merchant's preferred payment method ID. Must be a wallet payment method. */ merchantPaymentMethodID: string; amount: Amount; salesTaxAmount?: Amount | undefined; /** * An optional limit on the number of times this payment link can be used. * * @remarks * * **For payouts, `maxUses` is always 1.** */ maxUses?: number | undefined; /** * An optional expiration date for this payment link. */ expiresOn?: Date | undefined; /** * Customizable display options for a payment link. */ display: PaymentLinkDisplayOptions; customer?: PaymentLinkCustomerOptions | undefined; /** * Options for payment links used to collect payment. */ payment?: PaymentLinkPaymentDetails | undefined; payout?: PaymentLinkPayoutDetails | undefined; /** * An optional collection of line items for a payment link. * * @remarks * When line items are provided, their total plus sales tax must equal the payment link amount. */ lineItems?: CreatePaymentLinkLineItems | undefined; }; /** @internal */ export declare const CreatePaymentLink$inboundSchema: z.ZodType; /** @internal */ export type CreatePaymentLink$Outbound = { partnerAccountID: string; merchantPaymentMethodID: string; amount: Amount$Outbound; salesTaxAmount?: Amount$Outbound | undefined; maxUses?: number | undefined; expiresOn?: string | undefined; display: PaymentLinkDisplayOptions$Outbound; customer?: PaymentLinkCustomerOptions$Outbound | undefined; payment?: PaymentLinkPaymentDetails$Outbound | undefined; payout?: PaymentLinkPayoutDetails$Outbound | undefined; lineItems?: CreatePaymentLinkLineItems$Outbound | undefined; }; /** @internal */ export declare const CreatePaymentLink$outboundSchema: z.ZodType; export declare function createPaymentLinkToJSON(createPaymentLink: CreatePaymentLink): string; export declare function createPaymentLinkFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=createpaymentlink.d.ts.map