Skip to main content
The Payment Widget is a fully Uphold-managed, embeddable solution that allows users to securely add payment methods and make transactions — without requiring clients to manually orchestrate transaction logic or manage state. It is built with developer efficiency and global readiness in mind, with support for multi-platform integration and a growing list of payment methods.

Features

Turnkey experience

Fully managed UI and transaction logic with automated state handling.Simple event-based integration with minimal error handling required.

Flexible payment method support

Accept credit and debit cards, bank, and crypto transfers out of the box.Control which methods users see, with more options on the way.

Multi-platform embedding

Embed seamlessly into web apps via iframe and native apps via WebView.Consistent user experience across all platforms.

Real-time event handling

SDK emits lifecycle events such as success, error, and cancellation.Integrate deeply with your app’s flow and UI feedback.

Enterprise security

Built on top of Uphold’s secure API infrastructure.Ensures strong access control and secure transaction handling.

Rapid SDK integration

Lightweight SDK to instantiate and control the Widget.Go live quickly with minimal frontend effort.

Using the widget

The Payment Widget is designed to be embedded into your application to collect payment methods for deposits and withdrawals.

Installation

Follow Installation & setup for npm install steps, iframe mounting, and WebView (native) notes.

Integration

  1. Create a session with Create session using the flow slug (select-for-deposit or select-for-withdrawal).
  2. Mount the widget with the returned session (iframe for web, bridge for native) using the patterns in Installation & setup.
  3. Handle events: complete (selection result), cancel, and error to keep your UI in sync.
  4. Finish the flow: follow the flow docs to complete backend steps — Select for deposit or Select for withdrawal for bank transfer/card selection, and Authorize when card authentication is required.
For full SDK API details, see SDK reference.

When to use the widget

  • Bank/Crypto deposits (push): Use the Select for deposit flow for the widget and backend steps needed to monitor and credit funds.
  • Bank/Crypto withdrawals (quote-based): Use the Select for withdrawal flow for the widget and backend steps needed to quote and execute payouts.
  • Card payments: Both flows support saved cards via external-account; when card auth is needed, use the Authorize flow.