Merchant API

API documentation for Merchants.

General information

Welcome to API documentation for "Merchant" accounts. Thank you for choosing us!

To get started with our API, we recommend that you read the basic information:

For your convenience, we have collected a set of necessary endpoints for processing in one place.

General endpoints

Create a withdrawCreating a request for withdrawal of cryptocurrency and fiat assets.
Get deposit historyView your deposit history using filters.
Get withdraw historyView your withdrawal history using filters.
Get deposit details by idView deposit details by id.
Get withdraw details by idView withdraw details by id.
Get info about deposit payment methods by currency nameView the available deposit methods, minimum and maximum amounts to deposit, fees for each method.
Get info about withdrawal methods by currency nameView available withdrawal methods, minimum and maximum withdrawal amounts, fees for each method.

Endpoints intended only for working with cryptocurrency assets

Generate temporary crypto address for depositCreating a temporary address for a new deposit.
Find temporary crypto addressesView available addresses.
Generate constant crypto address for depositCreating a constant deposit address (Only one address per cryptocurrency asset).
Find constant crypto address for depositView constant crypto address.

Endpoints intended only for work with fiat assets

🚧

SOON

Also, we recommend that you check out our WebSocket API, which will allow you to get the most up-to-date changes in your account at once:

TransfersThe transfer stream provides real-time updates for transfers of funds between different accounts within the exchange. Each update includes information about the transfer, such as the transfer ID, the asset being transferred, the amount transferred, the merchantId ID, the fee, the timestamp of the transfer, etc.
Account/Balance UpdateThe accounts stream provides real-time updates for changes to a user's account balances. Each update includes information about the account balance, such as the asset and the available and blocked balance on it.

Example. Cryptocurrency payment

To start accepting deposits of cryptocurrency assets you need to use "Generate a temporary crypto address for deposit" endpoint. This endpoint allows you to provide each of your users a deposit wallet address. The user should send funds to this address. After a successful deposit to the generated address, funds will be credited to your Kuna account. Let's break down this procedure step by step:

  1. When your user comes to your platform to buy your services for cryptocurrency, you need to give him the wallet address. To do this you need to use "Generate a temporary crypto address for deposit" endpoint. To get information about successful deposit to your generated address, please specify in the field callbackUrl - callback URL, which can handle POST-request on successful deposit. Also, add a unique referenceId, which is returned on the callback and makes it easy to identify the deposit to the corresponding address.
  2. After the address has been generated you give it to your user. The user should transfer the funds to this wallet.
  3. Once the user successfully sends funds to the generated wallet, you will receive information about the deposit via callbackUrl in JSON object. We send several callbacks for one transaction. Let's consider all possible options and statuses you get depending on the AML deposit check:
    1. If our monitoring system has not detected any risks in the transaction, you will receive only one callback with a status "Processed".
    2. If our monitoring system detected an increased risk in the transaction, you will receive a callback with the status "Pending", which means that our specialists are checking the transaction at the moment. After that, if our specialists have not confirmed the increased risk in the transaction, the transaction will be credited to your account and you will receive a second callback with the status "Processed".
    3. If our monitoring system detected an increased risk in the transaction, you will receive a callback with the status "Pending", which means that our specialists are checking the transaction at the moment. After that, if our specialists have confirmed the increased risk in the transaction, the transaction will not be credited to your account and you will receive a second callback with the status "AmlChecking", which means that you need to contact our support to clarify the details. Once the transaction is verified, we will credit it to your account and you will receive a third callback with the status "Processed".
      Please note, the transaction may have a very high risk level, which makes it impossible to credit it to your account. Please contact our support to clarify further actions regarding such transactions.

Example. Cryptocurrency payout

To send a cryptocurrency asset to the necessary address, you need to use the "Create a withdraw" endpoint. In the endpoint documentation, we described in detail which fields you need to fill in.

Also, each withdrawal from the Kuna account needs to be confirmed by the email to which the account was registered. To cancel email confirmation, please disable this setting in the account settings.

On "History" page in your account you can track the current status of the transaction. Also, you can track the status using WebSocket API or via the API request "Get withdraw details".