Skip to main content

PayPal Wallet

paymentType: "PAYPAL_WALLET".

This page covers what's specific to the PayPal express button of <swirepay-checkout>. For the shared integration flow, props reference, error/success payloads, theming, and testing, see SDK setup & flow; for minting the checkout session, see Checkout session.

Behavior

  • Not supported for inventory-order checkouts — if included in an order-scope session's paymentType, it's silently dropped and the button won't render.
  • The button is rendered via the standard PayPal JS SDK (paypal.Buttons({ fundingSource: paypal.FUNDING.PAYPAL, ... })) and only mounts if (buttons.isEligible()) — an ineligible browser/currency combination means nothing renders, silently by design: no errorCallback call, only a debug-level console log. This is the same silent category as Google Pay's device-level check (contrast with Apple Pay, whose equivalent check does fire errorCallback).
  • Test mode runs against PayPal's own sandbox environment — log in with a PayPal sandbox test account to exercise the full approval flow (see SDK setup & flow → Live vs. Test mode).
  • PayPal order confirmation is coordinated through Swirepay's own backend rather than PayPal's own client-side order-creation flow — none of PayPal's own intermediate order id ever reaches your successCallback.
  • Always include at least one other paymentType (typically "CARD") as a fallback.

Venmo: Venmo ("VENMO") shares this exact same underlying SDK/flow (it's rendered as a second, separate express button, paypal.FUNDING.VENMO) — if you also want a Venmo button, simply add "VENMO" to paymentType alongside "PAYPAL_WALLET"; everything else on this page applies identically to it, including the silent-ineligibility behavior and the success/error payload shapes.

Pitfalls

  • Only requesting PAYPAL_WALLET — if the shopper's browser/currency is ineligible, they'll see nothing to pay with.
  • Expecting an error when the button doesn't render — ineligibility is silent by design, not surfaced via errorCallback.
  • Using a live PayPal account while your Swirepay account is in Test mode (or vice versa) — make sure you're logged into a PayPal sandbox account when testing, and a real one only once you've switched to Live mode.

See SDK setup & flow → Common pitfalls for pitfalls that apply across all payment methods.

On this page