The Payment Widget handles deposit method selection across all supported US networks — ACH, Wire, FedNow, and RTP — and displays the necessary transfer instructions to the user. Your backend only needs to create the session and monitor for the incoming transfer. No per-network handling is required.Documentation Index
Fetch the complete documentation index at: https://developer.uphold.com/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- The user has completed onboarding and has the required capabilities enabled.
Walkthrough
Select deposit method
The widget lets the user select a deposit method and view transfer instructions that work across all supported US networks — ACH, Wire, FedNow, and RTP.Create a widget session
Call the Create widget session endpoint to create a session for theselect-for-deposit flow.
session object with a token and url to initialize the widget.
Set up the widget
Initialize the widget for theselect-for-deposit flow using the session data returned from the API.
The example above is for web applications. For native apps using a WebView, you’ll need a bridge for events as outlined in Installation & setup.
Handle the complete event
Thecomplete event fires when the user selects a deposit method and completes the flow.
via— is set todeposit-methodwhen the user selects a deposit method and completes the flow.selection— contains theaccountthat will receive the funds and thedepositMethodconfiguration with transfer instructions.
depositMethod.details.network indicates the rail selected for this deposit method. No per-network handling is required.
In the API,
"fednow" represents both the FedNow and RTP networks.The optional
secondaryNetworks field lists additional supported rails for the same account and transfer instructions, and it’s only present when more than one network is supported.Handle cancellations
Thecancel event fires when the user closes the widget without selecting a deposit method.
Handle errors
Theerror event fires when an error occurs during the deposit method selection process.
Monitor for the incoming transfer
The widget presents the deposit instructions to the user but does not monitor for the incoming transfer. Your application must do this via webhooks or polling.- Webhook events (recommended):
- core.transaction.created
status: processing→ bank transfer received, pending posting
- core.transaction.status-changed
status: completed→ funds settledstatus: failed→ irrecoverable error
- core.transaction.created
- Polling (fallback): Get transaction
Sample transaction
The sample below shows an ACH deposit. Transactions for other supported networks have the same structure — onlyorigin.node.network differs: "ach", "fednow" (FedNow and RTP), or "wire".
In a successful ACH bank deposit, the origin is represented as a bank-address node. The destination is the user’s default USD account.
Notify the user
Display an in-app confirmation when the transaction iscompleted, and send an email if applicable.
You now support ACH, Wire, RTP, and FedNow push bank deposits via the Payment Widget.