Command-line tool for normalising downloaded transactions from CSV and QIF into OFX.
dotnet run [-c|--config]
-
-c|--config <PATH>
Specifies the location of the configuration file (default value:
config.json
)
Accounts
(object)<NAME>
(object) name is unimportant but can be used to identify different accounts or input formats to be processedSource
(string) full path to read input filesSourcePrefix
(string, optional) file name prefix to limit processing to only some files inSource
SourceSuffix
(string, optional) file name suffix to limit processing to only some files inSource
SourceFormat
(object)Type
(string) file extension for input files (possible values:csv
,qif
)BankID
(string, template, optional) bank identification (e.g. sort code)AccountID
(string, template, optional) account identificationAccountType
(string, template, optional) account type (possible values:Unknown
,Checking
,Savings
,MoneyMarket
,CreditLine
)Currency
(string, template, optional) currency name (e.g.GBP
)Deposit
(string, template, optional) amount added to accountWithdrawal
(string, template, optional) amount removed from accountAmount
(string, template, optional) amount added to or removed from account (must also setAmountType
,AmountTypeDeposit
,AmountTypeWithdrawal
)AmountType
(string, template, optional) column containing value indicating add/removeAmountTypeDeposit
(string, optional) value used inAmountType
column to indicateAmount
is added to accountAmountTypeWithdrawal
(string, optional) value used inAmountType
column to indicateAmount
is removed from accountAmountTypeDefault
(string, optional) value used forAmountType
if column is missing (only useful if mixed formats)Date
(string, template, optional) date of transaction (dates are parsed by .NET DateTimeOffset.Parse)Description
(string, template, optional) description for transactionMemo
(string, template, optional)
Target
(string) full path to write output filesTargetPrefix
(string, optional) file name prefix to add to output filesTargetSuffix
(string, optional) file name suffix to add to output filesTargetFormat
(object)Type
(string) file extension for output files (possible values:ofx
)
CSV
supports both deposit and withdrawal columns in the same file, but one must be zero in each rowQIF
only supports checking accounts
All the options for SourceFormat
(except Type
) support the following templates:
$column$
+ column name: extract value from the named column (e.g.$column$currency
means extract value fromcurrency
column)- Anything else: use value in configuration directly
{
"Accounts": {
"Credit Card CSV": {
"Source": "C:\\Accounting\\Credit Card",
"SourcePrefix": "transactions-",
"SourceFormat": {
"Type": "csv",
"BankID": "12-34-56",
"AccountID": "01234567",
"AccountType": "Checking",
"Currency": "$column$currency",
"Date": "$column$date",
"Description": "$column$description",
"Amount": "$column$amount",
"AmountType": "$column$debitCreditCode",
"AmountTypeDeposit": "Credit",
"AmountTypeWithdrawal": "Debit"
},
"Target": "C:\\Accounting\\Normalised",
"TargetFormat": {
"Type": "ofx"
}
}
}
}