Skip to content

JSON

The Firefly III CSV importer generates an import file each time you import CSV files. You can download the CSV file during or after the import.

Pre-made import files

There's a repository on GitHub with import configurations for common banks and financial institutions.

Example file

{
    "date": "Ymd",
    "default_account": 1,
    "delimiter": "comma",
    "headers": true,
    "ignore_duplicate_lines": true,
    "ignore_duplicate_transactions": true,
    "rules": true,
    "skip_form": false,
    "specifics": [
        "AppendHash"
    ],
    "roles": [
        "date_transaction",
        "description",
        "amount",
        "account-name",
        "opposing-name",
        "note"
    ],
    "do_mapping": {
        "3": true,
        "4": true,
        "0": false,
        "1": false,
        "2": false,
        "5": false
    },
    "mapping": {
        "3": {
            "Savings Account": 3
        },
        "4": {
            "Savings Account": 3
        }
    },
    "version": 2
}

Explanation

Each field in this file has a function, and they're explained in this table:

date

Sets the date format of the date entries in the CSV file. For the format, read this page.

default_account

The ID of the default asset accounts into which transactions will be imported if there's no source account.

delimiter

The delimiter of the entries in the CSV files. Most files use "comma", but you can also use "semicolon" or "tab".

headers

True or false if the CSV file has headers.

ignore_duplicate_lines

If the importer should ignore duplicate lines in your CSV file.

ignore_duplicate_transactions

If checked, Firefly III will give you an error if the transaction already exists.

rules

Whether or not to apply your rules to the import.

skip_form

If checked, next time you use the importer it will skip the configuration form.

specifics

"Specifics" are specific (haha) scripts that can be applied to your import.

roles

A role for each column.

do_mapping

Whether or not these columns should be mapped to data in your Firefly III installation. So for each column, it will tell the CSV importer if it should use the mapping in the next array. In the user interface, this is indicated by little check boxes after each column.

Here are some examples:

{
"do_mapping": [ true, true, false]
}

Column 0 and column 1 should be mapped, and column 2 should not. Keep in mind that the array counts from 0, so in your CSV file this would indicate: map the first two columns but don't map the third column.

In some JSON files, the order of true and false gets mixed up, which is why you'll see something like this:

{
    "do_mapping": {
        "0": true,
        "2": false,
        "1": true
    }
}

What you see here is the same thing as the previous example. Map the first two columns, don't map the last one.

mapping

The mapping. The value in brackets is what's found in the CSV file, the ID links to the account in your Firefly III installation. Here are some examples:

{
    "0": {
        "Groceries": 3,
        "Grozeries": 3,
        "Bills": 2,
        "Going out": 21
    }

}

The 0 in this example refers to the first column. What kind of a colum this is I don't know. Doesn't matter for the example. It looks like categories. What this means is that if column 0 contains either Groceries or the misspelled variant, this should be linked to category 3.

Another example:

{
    "4": {
        "NL21INGB9861487085": 15,
        "NL35ABNA6289099205": 23,
        "289099205": 23,
    }

}

This example maps the account numbers in column 4 (so the fifth one) to accounts in Firefly III.

Each column has their own mapping.

version

Should be 2.


Last update: 2021-01-02