Payment flows
This page provides a general overview of how XGateway payment processing works and what integration looks like.
User flow
Let's assume that your customer has a certain balance in your application and wants to top it up using one of our supported currencies. This is a simplified flow to enable the payment:
Use our API to get a blockchain address to top up and display it to the customer or use our Checkout Page for a pre-built user experience (both crypto and fiat).
When the user deposits, wait for a callback from us with the deposit details.
Top up the customer's balance in your application with the corresponding amount.
If a customer wants to withdraw a certain amount of funds the flow will look like this:
Verify the customer's claim to these funds
Make a withdrawal request to our API.
Wait for a callback from us with withdrawal details (see Callbacks).
Handle the corresponding changes to the customer's balance in your application.
Payment flows
XGateway provides two payment flows - channel-based and invoice-based.
Channel
Channel-based flow uses a crypto wallet address, which is assigned to one specific customer. Whenever the supported crypto assets are coming to this wallet address on the supported blockchains, this is considered as a deposit and a callback is sent to your application to handle the related balance changes. There is no limit to the amount of deposit transactions and a customer only needs to know the wallet address to make deposits.
This payment flow is simple and is ideal when you need only the crypto onramp for your customers.
Invoice
The invoice-based flow is a 2-step sequence. First, a customer creates an invoice stating the amount and currency of a deposit. Then they receive a crypto wallet address to deposit to (in case of crypto deposits) or they are sent to a fiat payment page in case of fiat deposits. Only one transaction is allowed within one invoice. The wallet addresses for the crypto payments are not assigned to a specific user. This flow allows the creation of disputes.
XGateway allows customers to create invoices with fixed and floating exchange rates. A fixed exchange rate invoice for crypto assets uses the exchange rate observed at the moment of invoice creation. A floating exchange rate invoice uses the exchange rate observed at the moment of funds deposit.
The invoice-based flow is more complex to integrate and operate. At the same time, it is much more versatile because it supports crypto and fiat payments.
Fiat onramp types
XGateway provides two types of fiat onramp - peer-to-peer backed and banking onramp.
The peer-to-peer flow is backed by traders in the corresponding countries. The banking onramp is done using virtual IBANs (EUR SEPA payments) or account numbers (GBP Faster Payments). The flows support different currencies and regions, as well as minimal and maximum amounts. The bank onramp also requires additional XGateway KYC for larger transactions and recurring transactions.
Both of the onramp types are supported using the invoice flow and both include crypto transactions in the background. XGateway operates in crypto assets, but settlements in both crypto and fiat are supported.
Integration forms
XGateway provides two forms of integration:
API for direct calls, if you want to use your application UI
Customisable Checkout Page for swift integration
The API can be used to build a seamless user experience within your application. Integration will require a significant amount of development.
The Checkout Page works like a widget and operates out of the box. It requires almost no development time to integrate but gives fewer customisation options.
Integration matrix
This table briefly sums up which Payment flows can be used with different integration forms and currencies.
API
Checkout Page
Last updated