What is an API and why use it for taxes?
An Application Programming Interface is a way for different services (exchanges and tax services in this case) to interact with each other.
Sometimes services can communicate freely using publicly available data via API, however, when it comes to querying the information needed for taxes (such as your account balances, trading history, etc) things get more complex, because this information is protected by your username/password/2FA (which you should never share with anyone).
Using an API to connect your tax platform to your Kraken account is an efficient way to allow access to the data on your account without sharing your login information.
API Permissions - What are they and how to choose them?
In order to connect your tax platform to your Kraken account, you need to give the tax platform access to your account information via an API key.
You don’t want any third parties to know your username/password/2FA, and you also don’t want them to trade or withdraw from your account, so an API key with the appropriate permissions is used instead.
The permissions that you give the API key will set the boundaries on what the other platform can see and do on your account.
Generally speaking the permissions needed for a tax software to calculate your capital gains/losses are the following:
Query funds, Query closed orders & trades (optional for some exchanges), Query ledger entries, and Export data.
These are known as read only permissions, meaning they allow the other platform to see funds in your account as well as transactions in your account history, but do not allow them make any changes to your account (no new trades, and no new funding transactions).
Let’s see how this looks on Kraken PRO:
To learn how to create an API on Kraken please see below.
What are these API key permissions allowing exactly?
Funds:
Query : this allows the API key to view the account balance and funding records (historical deposits and withdrawals) on the account.
Orders and trades:
Query closed orders & trades: this allows the API key to see the closed orders and trades on the account (this is used to help determine profit/loss).
Data:
Query Ledger Entries: this allows the API key to view the account ledger, which is a record of all past trading/funding transactions.
Export Data: this allows the API key to export all the data mentioned above including your trading and account ledger history (usually in CSV format).
Connecting To Koinly
From the main page, select the Wallet widget at the top and then select the +Add Wallet/Exchange widget
Next, select Kraken when prompted to select a Wallet:
If you wish to connect to Kraken Via API, please select the 'Setup auto-sync' option.
*In the event that you need to manually import your transaction history select import from file (Please see below for more information)*
Please copy and paste your API Key and your API Private Key from your Kraken account and paste them in the corresponding fields and click on Secure Import.
After clicking on 'Secure import' your Wallet should start synching, this can take a few minutes or in some cases much longer based on your account history length.
If you choose to upload your account history manually please select the import file options
Proceed to drag and drop your account history file (in CSV format) in the designated box
If you need further assistance, please take a look at the Koinly step by step guide below.
Connecting to CoinTracker
Start by selecting your country of residence
Next click on Add Wallet and select Kraken
To use the API 'Automatic Sync' method, input your Public and Private Key acquired from Kraken.com and click Add Kraken.
To manually upload your CSV file, please re-format your data using the CoinTracker CSV guide and load it into the CoinTracker CSV template.
Once this is completed, proceed to drag and drop the completed CoinTracker CSV template to the designated upload area.
If you need further assistance, please take a look at the CoinTracker step by step guide below.
Connecting to CryptoBooks
From the main page set your basic settings
Click next step, followed by 'see more option'
Select Kraken from the list of wallets/exchanges
Please copy and paste your Kraken Public and Private keys in the API Key and Secret Key Fields and click on "Connect Exchange"
Connecting to CoinTracking
From the main page, please select 'Enter Coins' and search for and select Kraken (Not to be confused with Kraken Futures)
Scroll down to the 'Create a new automatic Kraken Job' and paste the API Key as well as your API Private Key (secret), then click 'Save This Kraken Job'
To manually upload your CSV file, click on the 'CSV import tab', then proceed to drag and drop you CSV file and click 'Continue to Import'.
Lastly, please click on 'Start Import'
If you need further assistance, please take a look at the CoinTracking step by step guide below:
Frequently Asked Questions
- I am getting an Invalid key error when adding my Public and Private Key to a third party software.If presented with this error, first ensure that you are copying the private and public keys correctly. If you are doing this and still receive the invalid key error, please create a new key with the correct permissions and try adding it again.
- My Earn/Staked balances are not showing up.Some third party tax software are unable to import our staked asset balances correctly via API. This can usually be remedied by exporting your account history and uploading it to the 3rd party site manually. To learn how to manually export your account history please click below.
- Some of my transactions are missing.The instant buy/sell functions are not recorded in the account trade history, however they can be seen in the account Ledger. Some 3rd party platforms are not able to correctly interpret the buy/sell entries on account ledger. If this is the case, please manually export your account history and upload the file to the third party platform you are using.
- I manually downloaded my account history but I don't understand what the symbols mean.Your complete account history in made up of two parts, namely your Ledger and your Trades. First let's learn a little about the differences between the two.Now that we have a good understanding of the differences between your account Ledger and Trades history, let's take a look at how to interpret each one.
- Is it safe to provide my API keys to a third party software?As long as a third party site/application requires your Kraken private API keys there can be potential security issues but as long as you create a specific API key with minimal permissions, for example just to read your balance and/or ledger there is no risk for your funds or security in general. For this reason it is advisable to grant read only permissions and to create a specific API key with said permissions to share with your trusted third party software.
Disclaimer: Kraken does not provide tax advice. Depending on your country's regulatory framework, you may have to pay taxes on capital gains from trading digital assets or on the value of your digital asset portfolio. You may also have to pay taxes on other income you earn such as from rewards or loaning your crypto. The regulatory framework for taxation of cryptocurrencies differs from country to country. The US has not issued specific guidance addressing the taxation of rewards for US tax residents. We strongly advise you to contact a personal tax advisor for further information about your personal tax circumstances.