Skip to main content

How to compile the TradFi custom CSV

🟣 Traditional Finance guide

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:

  1. Root symbol of the underlying stock or ETF, padded with spaces to 6 characters

  2. Expiration date, 6 digits in the format yymmdd

  3. Option type, either P or C, for put or call

  4. Strike price, as the price x 1000 (adjusted dollars and thousandths of a dollar or mills), front padded with 0s to 8 digits

ℹ️ 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,
Did this answer your question?