Channels

Understanding the workflow with channels

To create a Channel, you will need to use the Create Channel endpoint.

Definition

A channel is a specific product that enables the merchant to accept multiple payments in to one specific cryptocurrency address that permanently stays active. You can then link this channel to one specific user through the reference given when sending the create channel request.

Permanent Channel Address

When the channel is created, it permanently creates an address for one specific cryptocurrency type. This address is then monitored by BVNK and will send out webhook notification when ever a payment is detected as coming into this address. A further update will be sent through webhook notification with the finalised amount sent once the payment has been confirmed.

Channels differs to a payment link in that there is no expected payment amount or expiry time, so payments cant have payment exception scenarios or come in outside of an expected expiry limit. Payments into channels can only be detected and confirmed.

When creating the channel, a URL is returned that takes the end user to a page that displays the address that payments could be sent to, as well as the existing exchnage rate between the cryptocurrency type and relevant displayed currency. Once a payment is sent and detected, this URL remains active to receive further payments at a later time.

Channels scenario flows

Channels should be used in cases where you expect multiple payments of the same type of crypto from an end user and don't necessarily need to link it to an initial event.

The first time your end user chooses to make a payment with a specific crypto, you will need to create a channel for them that you store against their user ID in your system and match with the UUID given in the create channel response.

When they want to make a payment of that same crypto type, the channel address can then be retrieved using the UUID, and displayed to the end user to make their next payment. If the end user wants to make a payment using a new type of crypto then then a new channel address will need to be created for that type, which can also then be stored against the user ID for future payments.

Each payment is analysed at the point is is detected, and won't have a proceeding event linked to it. Once the payment is confirmed on the relevant blockchain a webhook notification will be sent out with the actual confirmed amount sent. Every webhook notification sent out will have the same reference as the one provided at the point of creating the channel, which can then be used to link it back to the user account in your system.

❗️

Be careful not to create a channel that is used by multiple end-users as you won't be able to reconcile who sent the funds. Cryptocurrency transactions, unlike fiat, do not have references sent over the blockchain, so by giving each customer a channel you can reconcile their top-ups against their account on your platform.