Payment flows
Understanding Payment Flow
Before beginning integration, we urge all merchants to thoroughly read our knowledge-base articles to fully understand the best process for accepting cryptocurrencies (specifically for gaming & FX operators) and to decide which payment method is best suited for their business model.
The first concept to understand is that cryptocurrency payments should be processed in an “Asynchronous” way as opposed to a “Synchronous” way like most other traditional payment methods are generally processed (credit cards, local bank transfers, wallet payments, etc).
What does this mean?
Synchronous Payments
This is the traditional method for processing a payment whereby the end-user goes to the merchant cashier, enters an amount, and begins the deposit payment process. They may get redirected to a hosted page at some point, and the process finishes with either a success or failure. The process is linear in nature, with a clear start and end point, and is not disjointed. Generally the merchant would create a unique transaction_ID or order_ID for each individual deposit/payment attempt, which they then use the status of to decide whether to credit the end-user balance or not. This method is not optimal when working with cryptocurrencies.
Asynchronous Payments
Cryptocurrencies should be processed in an asynchronous manner. This means the process is broken down into separate parts and is not linear in nature. Different payment methods have more similarities with synchronous payments than others but while offering different functionality and workflows, they are still asynchronous in their nature.
Currently, in Orbital, Merchants can choose between two different payment methods according to their needs and workflows, where each has its own pro's and cons depending on the Merchant business model:
- Channel Payment Method
- Invoice Payment Method
Without payment method specifics, to boil it down, in an “asynchronous” deposit flow, you have to generate a wallet or time-sensitive payment that will be attached to an address that you pass to your end-user. The end user will then use this wallet address to send his coins. For each deposit at this wallet address, we will notify you about any incoming payment via a callback to your system, which is when you should create a transaction record and credit the end-user balance depending on the status received.
Updated about 2 months ago