In this guide, you’ll find everything you need to know about when to use the TradFi CSV format and how to correctly enter your transactions into it.
What is the Finbooks TradFi Custom CSV?
The Finbooks TradFi custom CSV is a specific spreadsheet format that we accept for importing your traditional finance transactions.
You should use this format if:
you are trying to improt trasnaction involving traditional financial isntruemnts like stock, bond, ETF, derivatives and similar.
we don’t support a direct API connection to your platform
we don’t support the platform’s native export format
Our custom CSV is designed to be simple and straightforward. Just fill in your transaction details following our template, and you’ll be able to import your TradFi data even if your platform isn’t directly supported.
ℹ️ What is a CSV file and how to edit it
If you’re not familiar with CSV files or need help editing and saving them, check out this guide. Alternatively, you can let our CSV Service handle the formatting for you learn more in this guide.
The CSV header
The TradFi CSV format is made up of 13 columns. The first row contains the CSV header, with the title of each column, and each column has a different purpose.
The columns must be filled in according to specific rules (explained in this section) and must remain in the correct order.
This will always be the required header:
ASSET CLASS,TYPE,EXCHANGE CODE,CATEGORY,TRANSACTION DATE,OUTGOING ASSET,OUTGOING AMOUNT,INCOMING ASSET,INCOMING AMOUNT,FEE CURRENCY,FEE AMOUNT,POSITION ID,NOTES
Each line represents a single transaction and must only contain the data related to that transaction.
Explanation of each column
Here you can find an explanation about how each column of the CSV should be used and what values are accepted. Also we provide infomation about when aoclumn must be compiled, when not and when is optional based on the kind of trx you want to represent.
ASSET CLASS
Filling this column is always mandatory. This field is necessary to identify the type of financial instrument involved in the transaction and to determine which accounting and tax rules apply.
If the transaction involves both fiat currency and another asset class, for example when buying or selling a stock, this field must always be filled with the asset class of the financial instrument different from fiat.
For example:
when buying a stock using USD, the Asset Class must be STOCK
when selling an ETF for EUR, the Asset Class must be ETF
The Asset Class should be set to Fiat Currency only when the transaction involves exclusively fiat currencies, such as:
a trade from USD to EUR
receiving interest paid in fiat
The accepted values are:
Stock
ETF
Mutual Funds
Bond
Fiat Currency
CFD
Future
Option
Certificate
Warrants
TYPE
Filling this column is always mandatory. This column is used to explain if in the transaction you received an asset, paid or sent an asset, or traded one asset with another one.
The accepted values are:
Incoming
Outgoing
Trade
EXCHANGE CODE
This field is necessary to find the right market price related to the asset.
It is always mandatory but except when Asset Class field of the transaction is CFD.
Accepted format is the official code of the market or venue where the trade occurred
⚠️ Please note
If the exchange code is missing or incorrect, the software may not be able to retrieve the correct market price for the asset.
CATEGORY
Filling out this column is always mandatory. Categories help organize your accounting and ensure the software treats each transaction correctly for reporting and tax purposes.
Accepted values are:
Trading
Interest
Dividend
Fee
Tax
Deposit
Withdraw
PNL
Split
Reverse splits
TRANSACTION DATE
Filling out this column is always mandatory. It allows to understand the software when an transaction occurred. Here you can find the list of formats that are supported:
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm
dd/MM/yyyy HH:mm:ss
dd/MM/yyyy HH:mm
Where yyyy is the year, MM is the month, dd is the day, hh is the hour, mm is the minutes, and ss is the seconds.
E.g., if a transaction occurred on 02 January 2024 at 9.45 pm can be imported as:
2024-01-02 21:45:00
2024-01-02 21:45
02-01-2024 21:45:00
02-01-2024 21:45
OUTGOING ASSET
Enter the ticker of the asset you sent. This field is mandatory for Outgoing and Trade transactions. Leave this field blank for Incoming transactions.
ℹ️ How to compose your option ticker
To correctly file your Option transactions you must use the OCC option symbol. This consists of four parts:
ℹ️ How to compose your future ticker
To correctly file your Future transactions you must use the standard future contract symbol. You can check this guide to discover how it works.
OUTGOING AMOUNT
Here enter the amount (or quantity) of the asset you sent. This field is mandatory for Outgoing and Trade transactions. Leave this field blank for Incoming transactions.
⚠️ Remember quotation marks in case of commas inside the amount
If you use a comma as a decimal separator, you must enclose the amounts and headers in quotation marks ("xxxx.xx").
This rule must be applied to every field where you input numerical values that use a comma to indicate decimal amounts.
E.g., you need to import an incoming transaction of € 2.999,85
Wrong line format
Incoming,Trading,13/04/2022 19:04,EUR,2999,85,,,,,,,,
Correct line formats
Incoming,Trading,13/04/2022 19:04,EUR,"2999,85",,,,,,,,
Incoming,Trading,13/04/2022 19:04,EUR,2999.85,,,,,,,,
INCOMING ASSET
Enter the identifier of the asset you received. This field is mandatory for Incoming and Trade transactions. Leave this field blank for Outgoing transactions.
Accepted formats are same as Outgoing Asset.
INCOMING AMOUNT
Here enter the amount (or quantity) of the asset you received. This field is mandatory for Incoming and Trade transactions. Leave this field blank for Outgoing transactions.
⚠️ Remember quotation marks in case of commas inside the amount
The same rule described for Outgoing Amount applies to Incoming Amount.
FEE CURRENCY
Here enter the ticker of the currency you used to pay the fees. This field is optional for all transactions, you should fill it only if you paid fees.
FEE AMOUNT
Here enter the amount of the fee you paid. This field is optional, but becomes mandatory if Fee Currency is filled in.
POSITION ID
This field is optional, but it must be used whenever a transaction needs to be explicitly linked to a specific underlying asset. The Position ID allows the system to correctly associate movements that are economically connected to the same financial instrument.
In particular, it should be used to:
link fees to the asset they relate to
associate coupons, dividends and distributions with the correct stock, bond or ETF
track CFD positions across their lifecycle, including opening, adjustments and closing transactions
For example, if you receive a dividend in USD from Apple, you must include a structured identifier in the Position ID so that the incoming fiat amount is correctly linked to the underlying stock.
In these cases, the Position ID must follow this format: Ticker, Asset Class, Market.
E.g. AAPL, Stock, US
Using this structured combination ensures that related transactions are clearly identified, consistently grouped and processed according to the correct accounting rules.
NOTES
This field can be used to enter notes about a transaction. The comments entered here will be shown in the transaction details once imported into Finbooks.
This field is always optional.
How to insert a Trade transaction
The columns you are required to fill for a Trade transaction are:
asset class
type
exchange code
category
transaction date
outgoing asset
outgoing amount
incoming asset
incoming amount
fee currency, only if a fee was paid
fee amount, only if a fee was paid
For example, on 01/01/2025 at 13:34:56 you bought 10 AAPL paying 1500 USD and paid a fee of 5 USD:
STOCK,Trade,XNAS,Trading,01/01/2025 13:34:56,USD,1500,AAPL,10,USD,5,,
If you are using a comma as decimal separator:
STOCK,Trade,XNAS,Trading,01/01/2025 13:34:56,USD,"1500,00",AAPL,10,USD,"5,00",,
How to insert an Incoming transaction
The columns you are required to fill for an Incoming transaction are:
asset class
type
exchange code
category
transaction date
incoming asset
incoming amount
fee currency, only if a fee was paid
fee amount, only if a fee was paid
For example, on 26/12/2025 at 14:41:01 you received a dividend of 50 USD.
STOCK,Incoming,XNAS,Dividend,26/12/2025 14:41:01,,,USD,50,,,"RACE, Stock, MI",
How to insert an Outgoing transaction
The columns you are required to fill for an Outgoing transaction are:
asset class
type
exchange code
category
transaction date
outgoing asset
outgoing amount
fee currency, only if a fee was paid
fee amount, only if a fee was paid
For example, on 13/05/2025 at 10:12 you paid a commission fee of 1.55 USD.
Fiat Currency,Outgoing,XNAS,Fee,13/05/2025 10:12,USD,1.55,,,,,AAPL, Stock, US,
If you are using a comma as decimal separator:
Fiat Currency,Outgoing,XNAS,Fee,13/05/2025 10:12,USD,"1,55",,,,,AAPL, Stock, US,
