Skip to main content
Every Payment Widget session is created for a specific flow, which decides what the widget renders and what your app gets back. Flows fall into three groups:
  • Select flows (select-for-deposit, select-for-withdrawal) — the widget links or selects a payment method and returns the selection to your app.
  • Authorize flow (authorize) — the widget creates a transaction from a quote you supply and handles any authorization challenge. It is the second half of a select flow, but it can also be used on its own.
  • End-to-end flows (deposit, withdrawal) — the widget carries the user all the way to an authorized transaction in a single session.

Available flows

Choosing a flow

There are three ways to put these flows together:
  1. End-to-end flows. One session does everything. Your backend creates a single deposit or withdrawal session and your app receives the finished transaction.
  2. Select flows followed by authorize. The widget returns a selection from select-for-deposit or select-for-withdrawal. Your backend then creates the quote with that selection and opens a second authorize session, so the widget can create the transaction and handle authorization. You build the amount entry and review screens.
  3. authorize on its own. If you don’t use the widget to select payment methods — for example, you collect and store them yourself and create quotes through the API — you can still use the widget just to authorize the transaction. The authorize flow only needs a quote, so it does not depend on a select flow.
authorize is not an alternative to the select flows or the end-to-end flows. It is the final step of the select flows, or a standalone way to complete a transaction you have quoted yourself. The end-to-end flows already include authorization, so you never create an authorize session for them.
Use the end-to-end flows to let the widget handle the whole experience. Use the select flows with authorize to build the amount entry and review screens yourself while the widget manages payment methods. Use authorize alone to manage payment methods yourself and use the widget only for authorization.
For step-by-step guides per payment method, see the Developer Guides, for example card deposits and card withdrawals. Session creation and setup shared by every flow is covered in Installation and setup.