Frictionless Off-Ramping for Wallets
The Frictionless Off Ramp flow is tailor-made for crypto wallet apps, providing partners with the capability to seamlessly integrate and enable clients to cash out digital assets directly to credit cards and bank accounts.
User flow steps
-
The user chooses to sell a specific amount of cryptocurrency in the partner's wallet app.
-
Paybis Off Ramp is initiated.
-
The user chooses the payout method (pay to card, bank transfer, or e-wallet).
-
The user requests and confirms the Quote.
-
The user logs in to the Off Ramp.
-
The user enters the payout details (credit card data, bank details, or e-wallet address).
-
The user lands on the transaction summary page and confirms the transaction.
-
Paybis Off Ramp is closed. The user makes a payment in the wallet app.
-
Paybis Off Ramp is re-opened.
-
The transaction gets confirmed on the blockchain.
-
The user gets a fiat payout and lands on the transaction completed page.
Integration flow steps
Flow with SDK events
- Get the list of supported currency pairs and payout methods
Partner calls the Sell Crypto Currency Pairs API to retrieve the list of supported crypto-to-fiat currency pairs for all available payout methods. Additionally, you can get the list of payout methods available for a specific crypto/fiat pair. The supported currency pairs and payout methods can be displayed in the partner’s wallet app (withdrawal flow).
- Request a Quote
Partner calls the POST Quote endpoint. For 1-click checkout via pay-to-card, specify the payment method paymentMethod=credit-card-{partnerName}
. Paybis returns the id
of the quote and calculated amounts for the credit-card-{partnerName}
payment method.
- Get the Request ID required to initiate the Off Ramp
Partner calls the POST Request endpoint with the following parameters:
partnerUserId
- this parameter must be unique per Request/Transaction (recommended) or per user. Note that if you use the same partnerUserId for all requests associated with a specific user, the email address confirmed during registration will always be used for authentication in the widget, and the user won't be able to change the email over time.quoteId
-id
retrieved in the previous steplocale
payoutMethod=credit-card-{partnerName}
(optional)flow
:sellCrypto
cryptoPaymentMethod
:partner_controlled_with_sdk_event
SDK events are available only if widget is opened in iframe or in new browser tab. If you are using the redirect method, set
cryptoPaymentMethod
:partner_controlled_with_redirect.
bis returns therequestId
. Note that the uniquerequestId
should be generated for each new transaction.
- Initialize the widget with the retrieved
requestId
- User confirms the transaction
In Paybis widget, the user can change the transaction amount, and currencies, and add payout details.
- Handle the
payment-initiated
event
Paybis system sends the Payment Initiated SDK event to signal that the user has started a transaction in the widget (refer to events.onpaymentinitiated
in the SDK options).
- Close the Off Ramp
For a seamless user experience, it is crucial to close the widget using the close SDK method upon receiving the event.
- Request payment details
Call the GET Payment Details endpoint to retrieve payment details.
Paybis returns the transaction info necessary to make a payment: cryptocurrency, amount, destination wallet, blockchain, and network.
- User confirms withdrawal in their wallet
In your app, the user should confirm the withdrawal of funds from their crypto wallet balance.
- Send crypto to Paybis destination wallet
The partner sends the transaction amount to Paybis deposit wallet.
- Re-open the Off Ramp
Re-open the widget with the same RequestId using the open SDK method upon completing the payment.
If you are using Single Sign-On feature, do not pass One Time authentication token when re-opening widget.
Do not re-initiate the widget if the cryptocurrency payment fails (due to reasons such as insufficient funds in the user's wallet).
- User gets a payout in fiat
The Paybis system verifies the destination wallet balance to confirm the receipt of the cryptocurrency amount stated in the invoice. Upon blockchain confirmation of the transaction, Paybis initiates a fiat payout. Users receive the payout in their fiat account (e.g., bank card) and are directed to the Transaction Complete screen, providing details and a link to view the transaction on the blockchain.
Flow with callback URL
If you are using the openRedirect
method to open widget UI or Direct URL integration, SDK events are not available. To build frictionless offramp flow in this case, use the cryptoPaymentMethod
: partner_controlled_with_redirect
and set the depositCallbackUrl
when creating a Request.
Users will be redirected to the depositCallbackUrl
after confirming a transaction in Paybis widget proceed with the payment in your app.
Frictionless checkout in 1-click
Prerequisites
- Partner's application has the capabilities and interfaces to collect and pass to Paybis the following user data: transaction amount (in fiat or crypto), crypto asset ID, customer's preferred fiat currency and payout method.
- For the customers with verified email addresses in your app, use the Single sign-on feature to avoid redundant authenticated in the off-ramp.
With 1-click integration, users can complete a withdrawal in just two simple steps:
- Enter payout details (card number, bank account, or e-wallet).
- Confirm the transaction.
To implement the 1-click integration:
- Create a Sell Crypto Quote for a specific payout method.
- Create a Request with the same payout method as in the Quote and Quote ID. Provide the customer's email and
passwordless
=true
, to enable Single-sign on. - Initialize the widget with retrieved
requestId
. In case of a Single sing-on, also supply theoneTimeToken
for user authentication.
Updated 2 months ago