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 inSourceSourceSuffix(string, optional) file name suffix to limit processing to only some files inSourceSourceFormat(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 inAmountTypecolumn to indicateAmountis added to accountAmountTypeWithdrawal(string, optional) value used inAmountTypecolumn to indicateAmountis removed from accountAmountTypeDefault(string, optional) value used forAmountTypeif 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)
CSVsupports both deposit and withdrawal columns in the same file, but one must be zero in each rowQIFonly 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$currencymeans extract value fromcurrencycolumn)- 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"
}
}
}
}