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 three types of onramp:
Crypto onramp.
Fiat to crypto peer-to-peer onramp.
Fiat to crypto banking onramp.
All of the onramp types are supported using the invoice intent flow and include crypto transactions in the background. XGateway operates in crypto assets, but settlements in both crypto and fiat are supported.
Crypto onramp
The crypto onramp is the flow with the lowest fee possible, because the deposit is done directly to the XGateway wallet. We offer support of Bitcoin, various Ethereum based tokens and many other currencies. The XGateway team may integrate unsupported currencies on request.
Peer-to-peer 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 KYC for larger transactions and recurring transactions.
Banking onramp
For the FIAT deposits through the banking solution, it is required that the deposits are done from a personal bank account that belongs to the person with the same name and surname as used for the the KYC. If a deposit is done from a corporate account or an account that belongs to a person with different name or surname - such a deposit will be bounced back by the banking partner.
Payment intent flows
XGateway provides two payment intent flows - channel-based and invoice-based.
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 funds transaction is allowed within one invoice. Any extra transactions are processed by the XGateway and sent to the corresponding merchant with no invoice attached. Under and over payment is also supported, as well as transactions in other currencies - an invoice is deemed as complete when any funds transfer of any amount and any currency done by the corresponding customer.
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.
Channel
Channel-based flow is available for crypto onboarding only. It 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.
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