Skip to main content
All CollectionsFAQs
Custom CSV template - transaction format
Custom CSV template - transaction format

We'll show you how to import data from any exchange, platform or locations using Syla's advanced custom csv template.

Updated over 2 months ago

Our advanced custom CSV template is the recommended way to import transactions where a data source isn't currently supported in Syla. You can also use this template to add additional transactions to an existing data source.

Tip: If your data source isn't supported in Syla, then we recommend reaching out to our support team first. Our team can likely add direct support for your data source.

You can download a copy of the template here

Here's an example of what the template looks like


Creating a custom data source

If your exchange or platform isn't supported in Syla, then you can add it as a custom data source. To create a custom data source.

  1. Go to the Data Sources page.

  2. Click Add Data Source.

  3. Type in the name of your exchange or platform.

  4. If the exchange doesn't exist, then you'll have the option to select Manual Import.

  5. You'll then be presented with the option to download and use the Custom CSV template, or you can create an empty wallet.


Adding transactions to an existing data source

The custom CSV template can be used on any Data Source in Syla. That means you can use it to import additional transactions to an existing Data Source that you've already done, whether it's a Sync connection, a File import or a Custom import.


Understanding the advanced custom CSV template

You can understand each column in the CSV file by reading the table below.

Column

Description

date

This is the date that the transaction occurred. It can be provided in any format. For example, common Australian date formats such as 20/01/2020 10:00 PM are supported.

We do recommend using ISO8601 where possible as it avoids ambiguity in the date format and timezone.

The recommended format is YYYY-MM-DD HH:MM:SS+hh:mm

Here's an example 2022-06-30 23:50:50+10:00

transaction

This is where you can specify the type of transaction, such as trade, deposit, staking, etc. Depending on the type of transaction, you'll need to specify the received and/or sent quantity and asset.

The full list of transaction types is later in this article.

received_quantity
received_asset

These two fields specify the asset and the amount that you received in the transaction.

sent_quantity
sent_asset

These two fields specify the asset and the amount that you sent in the transaction.

fee_quantity
fee_asset
(optional)

These fields are always optional, and can be used to specify the asset and the amount that you paid in fees due to the transaction.

market_value
market_value_asset
(optional)

These fields are always optional, and can be used to manually specify a Market Value.

The market_value refers to the total value of the received and/ or sent quantity and asset.


For example, if the transaction is a deposit of 10 BTC and you specify a market_value of 100,000 AUD, then you are saying that 10 BTC has a total Market Value of 100,000 AUD.

The market_value_asset can be any asset. For example, you can specify the market value in terms of AUD, USD, BTC, ETH, etc. Syla will automatically convert this into AUD during import.

If a market_value is not provided, then Syla will automatically apply one for you during import.

description
(optional)

Use this to add a description to your transaction. This can be helpful for identifying and understanding transactions after they are imported.

tx_hash
(optional)

An optional transaction hash which is used for automatically matching Deposit and Withdrawal transactions in Syla.


Transaction Types

The following transaction types can be entered into the custom CSV template.

Conversion types

These transaction types all require that both the received_quantity and received_asset, along with the sent_quantity and sent_asset are specified.

type

description

trade

An exchange of one asset for another. The fee_quantity and fee_asset are optional. If the fee_quantity is set to a positive amount, then it will import as a Brokerage Fee. If it is set to a negative amount, then it will import as a Trade Rebate.

rebase

A re-denomination or ticker change of an asset which is not taxable. fee_quantity and fee_asset are not supported on this transaction type.

Receive types

These transaction types all require that a received_quantity and received_asset be specified. The fee_quantity and fee_asset are optional.

type

description

capital

A initial contribution of an asset into the investment activity. Commonly used for the initial deposits of AUD from your bank account.

deposit

A deposit of an asset that came from another data source. Commonly used for deposits of crypto.

reward

A reward received.

distribution

Distribution received from a project or exchange.

airdrop

Airdrop of a token.

interest

Interest earned.

lending_interest

Interest earned due to lending out an asset.

promotion

Signup bonus or other promotion.

commission

Affiliate commission payment received.

mining

Reward from a crypto mining activity.

staking

Reward for staking or validating.

cashback

Cashback amount received from a debit card.

dust

Small amount of crypto received, typically due to on-chain spam.

fee_refund

A fee that was previously paid has been refunded.

chainsplit

Acquisition of a new asset due to a chainsplit.

payment

Payment received due to sale of goods or services.

payment_reversal

A payment you made to someone has been reversed.

gift

You received a gift from another person or entity.

gambling

Profit received from a gambling activity.

trade_rebate

Payment received for executing a maker order on an exchange.

derivatives

Profit from a derivatives contract.

futures

Profit from a futures contract

futures_funding_rate

Profit due to the funding rate that exists on perpetual futures contracts.

borrow

You borrowed an asset from another person or entity.

lend_repaid

A loan you gave to someone else has been repaid.

acquisition

An isolated purchase (buy) of a CGT asset. The cost base of the CGT asset will be equal to the Market Value at the time of the transaction.

acquisition_at_market_value

Acquisition of a CGT asset. The cost base of the CGT asset will be equal to the Market Value at the time of the transaction.

acquisition_at_zero_cost

Acquisition of a CGT asset. The cost base of the CGT asset will be set to zero.

ignore

This will ignore the row of data from the import.

transfer

An internal Transfer In that is not taxable.

Note: It's normally recommended to use deposit instead. Syla will automatically detect the corresponding withdrawal and reclassify both transactions to transfer.

Send types

These transaction types all require that a sent_quantity and sent_asset be specified. The fee_quantity and fee_asset are optional.

type

description

capital

A withdrawal of an asset out of the investment activity. Commonly this is used for the withdrawals of AUD to your bank account.

withdrawal

A withdrawal of an asset that went to another data source. Commonly used for withdrawals of crypto.

unrecoverable

The asset is gone due to theft, scam or is lost and can no longer be recovered.

payment

You have made a payment for goods or services.

payment_reverted

A payment you received from someone else has been reverted.

gift

You gifted an asset to another person or entity.

gambling

Loss incurred from a gambling activity.

other_loss

Any loss from an income producing activity.

derivatives

Loss from a derivatives contract.

futures

Loss from a futures contract.

futures_funding_rate

Loss due to the funding rate that exists on perpetual futures contracts.

slashing_penalty

Slashing penalty due to staking or validating incorrectly.

lend

You lent an asset to another person or entity.

borrow_repaid

You repaid a loan that you took from another person or entity.

borrowing_interest_paid

You paid interest on a loan.

disposal

An isolated sale (sell) of a CGT asset. The proceeds from the sale of the CGT asset will be equal to the Market Value at the time of the transaction.

disposal_at_market_value

Disposal of a CGT asset. The proceeds from the sale of the CGT asset will be equal to the Market Value at the time of the transaction.

disposal_at_zero_value

Disposal of a CGT asset. The proceeds from the sale of the CGT asset will be set to zero.

ignore

This will ignore the row of data from the import.

transfer

An internal Transfer In that is not taxable.

Note: It's normally recommended to use withdrawal instead. Syla will automatically detect the corresponding deposit and reclassify both transactions to transfer.

Fee types

These transaction types all require that a sent_quantity and sent_asset be specified. You can't specify a fee_quantity and fee_asset on these transactions.

Fee types are all handled the same way but can be used to give a clearer breakdown of where fees were incurred.

type

description

fee

Any other fee.

withdrawal_fee

Fee charged on a withdrawal.

brokerage_fee

Fee charged on a trade.

service_fee

Miscellaneous service fee such as an account fee.

payment_fee

Fee charge on a payment.

network_fee

On-chain network fee.

deposit_fee

Fee charged on a deposit.

borrow_fee

Fee charged on an amount you borrowed from someone else.

lend_fee

Fee charged on am amount you lent to someone else.

derivatives_fee

Fee charged on derivatives trading.

futures_fee

Fee charged on futures trading.

liquidation_fee

Fee charged on a leveraged position being liquidated.

statement_fee

Fee charged to produce an account or tax statement.


Troubleshooting imports

The custom CSV template requires manually preparing the CSV file, so it is common that there can be import errors. If an import does not work, you will get an error message that will identify the first row with an error and the reason why.

If you are still having issues, please request help from our support and we'll be able to assist you.

Did this answer your question?