Funding/Withdrawal Methods

Understand how Deposits and Withdrawals work for the various Payment Methods.

Funding/Withdrawal methods allow users on a given Slyk to add and withdraw funds. The various funding methods have different flows and user experience, which all ultimately result in deposit and withdrawal transactions (type=deposit and type=withdrawal).

Slyk provides out-of-the-box solutions that adapt to the the funding methods configured in a Slyk, and avoid having to deal with their individual idiosyncrasies:

  • Mobile App The Slyk mobile app offers an interface that allows the user to easily interact with different payment methods. To take advantage of this, operators will want to direct their users to download the Slyk app and join a Slyk, which essentially allows them to offer a mobile app with no costs or effort. Enterprise Slyks can get the same advantages, via customized versions of the Slyk Mobile App.

  • Web SDK The Slyk Web SDK allows you to display an interface for Add Funds or Withdraw, with a single line of code. This in effect hides all the complexities and differences across different payment methods. You can also use this in a mobile app, by using a webview to render this web ui within an app.

  • Mobile SDK Much like the web SDK, the Slyk mobile SDK implements a set of screens and activities that handle both Add funds and withdraw.

With the Slyk API, you can also build your own custom UI/UX, and for that you'll want to understand the differences between payment methods and how they operate.

Cryptocurrencies

To receive funds, the POST/addresses endpoint is used to obtain an address, which is then presented to the user.

Users initiate cryptocurrency Deposits from their cryptocurrency wallets to send funds to the Address provided by Slyk. A deposit transaction is automatically created on the receiving Slyk wallet in processing state as soon as the incoming transaction is seen on the blockchain, and is then set as completed once the transaction reaches the threshold in confirmations (eg, 4 confirmations on Bitcoin, 12 confirmations on Ethereum, etc).

When withdrawing cryptocurrencies from a Slyk wallet, transactions are created by the Slyk platform in processing state, and set as completed as soon as they are posted to the blockchain.

Wire Transfers

To receive funds, the /addresses/wire endpoint is used to obtain deposit instructions (including a reference Number), which are then presented to the user, who must then initiate the wire transfers at their bank. For some banks, Slyk can generate and fill out the bank's transaction web page so that the process if facilitated, but ultimately it's still the user who initiates the transaction, either typically via the bank's web portal, mobile app, or any other means the bank provides.

If a Slyk is using a bank account that supports automation, system will automatically send withdrawal instructions to the bank as requested, and will automatically reconcile deposits as they land on the account. Any deposits that can't be reconciled (eg, missing or invalid reference) will be presented on the dashboard for manual intervention by one of your Slyk admins.

If a Slyk is using a bank that does not support automated access to accounts, you will need to do the reconciliation yourself using the dashboard to input new deposits into wallets, and to get the list of withdrawals you must execute at the bank. If you can access your bank extracts, you can use the Slyk API to confirm deposits, or you can use the Slyk API to create files for your bank to process withdrawals. In some scenarios, we can help you automate this process for your bank - just get in touch.

Stripe

Stripe hides the complexities and requirements of PCI/DSS and SCA by tokenizing card information. When using Stripe, one must always use their SDK to capture card information, so that neither the app nor the Slyk API will ever touch card data.

In essence, you'll want to follow these steps:

  1. Use the Stripe SDK to show a UI for capturing the card details. This will take care of making sure the card info is tokenized safely by Stripe, and the result of adding a card will be a CardToken.

  2. OPTIONAL: If you want to be able to reuse the card, you can use this CardToken to create a Customer on the Stripe API (see here), and save that.

  3. Finally, call the Slyk API to initiate a deposit to the user's Wallet, and fill out the CustomData field with either a Customer (reusable) or the CardToken (one-time usage).

Slyk will handle the callback from Stripe, process the results and credit the destination Wallet - you don't need to do any processing yourself.

Paypal, AirTM and other Hosted Page methods

Some payment methods will direct you to their website for confirmation of the payment. In this case, a deposit will be created once Slyk receives confirmation from the payment method that funds have been received

Custom Payment Methods

You can offer support for other payment methods in your application, by creating your own deposit and withdrawal transactions with paymentMethod=other, and then updating their state as you see fit. If this is something you're interested in exploring, get in touch.