Integrate Cryptocurrency Top-up

This quick start guide explains how to incorporate crypto balance top-ups into your product with BVNK.

To enable crypto top-ups, use the Channels API feature. A Channel is a permanent, unique address that can receive funds at any time. You can provide the channel to an end-user so they won't need to create a new payment for every top-up.

In this guide, you’ll learn how to generate a dedicated channel address for an end-user and build a UI (using our hosted page) to collect cryptocurrency payments.

🚧

Before you start

Make sure you've followed the getting started steps, so that you have your account set up, API keys ready, and a MID waiting to be used.

In this guide, we’ll use the BVNK-hosted page—though you can build your own UI using the API responses. Next, we’ll outline the channels workflow so you understand how to implement it yourself if you decide not to use the hosted page.

Channel workflow

When an end-user tops up with cryptocurrency for the first time, create a channel linked to their user ID in your system so you can display the correct address whenever they request sending funds.

452

Example view of an ETH payment channel as displayed to the user

After you've created a channel and they proceed to top up, you'll see transactions passes through the following states:

StatusImmutable?Description
detectedNoA new cryptocurrency transaction has been detected at the channel address. In the Merchant's wallet, BVNK creates a ChannelPayment transaction with the status of DETECTED. Once the on-chain transaction receives the required confirmations on the network, its status updates to COMPLETE
completeYesThe cryptocurrency transaction received the required confirmations on the network. BVNK updates the ChannelPayment status from DETECTED to COMPLETE and adds funds to the Merchant's wallet balance. The payment is finalised and the status will not change thereafter

❗️

Avoid assigning the same channel to multiple end-users, as you won’t be able to determine which customer sent the funds. Unlike fiat transfers, blockchain transactions don’t include customer references. Thus, providing each user with a unique channel ensures you can correctly match their top-ups to their account.

Channel Payment Flow


What’s Next