@paypal/paypal-js
    Preparing search index...

    Type Alias SdkInstance<T>

    SdkInstance: BaseInstance & (
        "paypal-payments" extends T[number] ? PayPalPaymentsInstance : unknown
    ) & (
        "paypal-guest-payments" extends T[number]
            ? PayPalGuestPaymentsInstance
            : unknown
    ) & ("venmo-payments" extends T[number] ? VenmoPaymentsInstance : unknown) & (
        "paypal-legacy-billing-agreements" extends T[number]
            ? PayPalLegacyBillingInstance
            : unknown
    )

    Dynamically typed SDK instance based on the components array provided to createInstance.

    Type Parameters

    The return type changes based on which components are specified in the components array.

    Always includes:

    • findEligibleMethods() - Base method that verifies buyer and merchant eligibility for various payment methods. Use this to conditionally render the appropriate payment buttons on your site.
    • updateLocale() - Base method that updates the locale for the SDK instance. The locale should be specified using a BCP-47 code.

    Conditionally includes methods based on components:

    • "paypal-payments" - Adds PayPalPaymentsInstance methods
    • "venmo-payments" - Adds VenmoPaymentsInstance methods
    • "paypal-legacy-billing-agreements" Adds PayPalLegacyBillingInstance methods
    // Only PayPal methods + base methods
    const sdkInstance = await createInstance({
    clientToken: "token",
    components: ["paypal-payments"]
    });

    const paymentMethods = await sdkInstance.findEligibleMethods();
    const isPayPalEligible = paymentMethods.isEligible("paypal");

    if (isPayPalEligible) {
    sdkInstance.createPayPalOneTimePaymentSession(...); // ✅ Available
    sdkInstance.createVenmoOneTimePaymentSession(...); // ❌ TypeScript error
    // Render PayPal button
    }

    // Optionally update locale
    sdkInstance.updateLocale("es-US");

    // Multiple components
    const sdkInstance = await createInstance({
    clientToken: "token",
    components: ["paypal-payments", "venmo-payments"]
    });

    const paymentMethods = await sdkInstance.findEligibleMethods();
    const isPayPalEligible = paymentMethods.isEligible("paypal");
    const isVenmoEligible = paymentMethods.isEligible("venmo");

    if (isPayPalEligible) {
    sdkInstance.createPayPalOneTimePaymentSession(...); // ✅ Available
    // Render PayPal button
    }

    if (isVenmoEligible) {
    sdkInstance.createVenmoOneTimePaymentSession(...); // ✅ Available
    // Render Venmo button
    }

    // Optionally update locale
    sdkInstance.updateLocale("es-US");