2015-02-06 19:33:31 +01:00
< ? php
2018-04-02 14:43:06 +02:00
2018-05-11 10:08:34 +02:00
/**
* firefly . php
2020-03-17 16:06:30 +00:00
* Copyright ( c ) 2019 james @ firefly - iii . org .
2018-05-11 10:08:34 +02:00
*
2019-10-02 06:38:00 +02:00
* This file is part of Firefly III ( https :// github . com / firefly - iii ) .
2018-05-11 10:08:34 +02:00
*
2019-10-02 06:38:00 +02:00
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
2018-05-11 10:08:34 +02:00
*
2019-10-02 06:38:00 +02:00
* This program is distributed in the hope that it will be useful ,
2018-05-11 10:08:34 +02:00
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2019-10-02 06:38:00 +02:00
* GNU Affero General Public License for more details .
2018-05-11 10:08:34 +02:00
*
2019-10-02 06:38:00 +02:00
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
2018-05-11 10:08:34 +02:00
*/
2018-04-02 14:43:06 +02:00
declare ( strict_types = 1 );
2024-11-27 08:08:52 +01:00
use FireflyIII\Enums\AccountTypeEnum ;
2022-04-13 16:27:01 +02:00
use FireflyIII\Enums\TransactionTypeEnum ;
2019-04-06 08:10:50 +02:00
use FireflyIII\Models\Account ;
use FireflyIII\Models\Bill ;
use FireflyIII\Models\Budget ;
use FireflyIII\Models\Category ;
use FireflyIII\Models\PiggyBank ;
use FireflyIII\Models\Recurrence ;
use FireflyIII\Models\Tag ;
2020-03-18 21:36:26 +01:00
use FireflyIII\Models\Transaction ;
2019-04-06 08:10:50 +02:00
use FireflyIII\Models\TransactionJournal ;
2018-04-02 14:43:06 +02:00
use FireflyIII\TransactionRules\Actions\AddTag ;
use FireflyIII\TransactionRules\Actions\ClearBudget ;
use FireflyIII\TransactionRules\Actions\ClearCategory ;
use FireflyIII\TransactionRules\Actions\ClearNotes ;
2018-09-15 13:43:57 +02:00
use FireflyIII\TransactionRules\Actions\ConvertToDeposit ;
use FireflyIII\TransactionRules\Actions\ConvertToTransfer ;
use FireflyIII\TransactionRules\Actions\ConvertToWithdrawal ;
2020-05-16 11:21:26 +02:00
use FireflyIII\TransactionRules\Actions\DeleteTransaction ;
2018-04-07 06:20:45 +02:00
use FireflyIII\TransactionRules\Actions\LinkToBill ;
2018-04-02 14:43:06 +02:00
use FireflyIII\TransactionRules\Actions\RemoveAllTags ;
use FireflyIII\TransactionRules\Actions\RemoveTag ;
2024-03-10 11:57:21 +01:00
use FireflyIII\TransactionRules\Actions\SetAmount ;
2018-04-02 14:43:06 +02:00
use FireflyIII\TransactionRules\Actions\SetBudget ;
use FireflyIII\TransactionRules\Actions\SetCategory ;
use FireflyIII\TransactionRules\Actions\SetDescription ;
use FireflyIII\TransactionRules\Actions\SetDestinationAccount ;
2023-12-02 15:38:06 +01:00
use FireflyIII\TransactionRules\Actions\SetDestinationToCashAccount ;
2018-04-02 14:43:06 +02:00
use FireflyIII\TransactionRules\Actions\SetNotes ;
use FireflyIII\TransactionRules\Actions\SetSourceAccount ;
2023-12-02 15:38:06 +01:00
use FireflyIII\TransactionRules\Actions\SetSourceToCashAccount ;
2023-08-11 06:16:40 +02:00
use FireflyIII\TransactionRules\Actions\SwitchAccounts ;
2025-01-04 08:44:02 +01:00
use FireflyIII\TransactionRules\Actions\UpdatePiggyBank ;
2018-04-02 14:43:06 +02:00
2016-09-18 19:57:21 +02:00
/*
* DO NOT EDIT THIS FILE . IT IS AUTO GENERATED .
*
2018-05-11 10:08:34 +02:00
* ANY OPTIONS IN THIS FILE YOU CAN SAFELY EDIT CAN BE FOUND IN THE USER INTERFACE OF FIREFLY III .
2016-09-18 19:57:21 +02:00
*/
2016-05-20 08:57:45 +02:00
2015-02-06 19:33:31 +01:00
return [
2021-05-13 06:47:11 +02:00
// default values for certain things:
2025-11-04 05:54:30 +01:00
'configuration' => [
2017-01-04 04:48:58 +01:00
'single_user_mode' => true ,
'is_demo_site' => false ,
2016-09-01 18:31:39 +02:00
],
2021-05-13 06:47:11 +02:00
// some feature flags:
2025-11-04 05:54:30 +01:00
'feature_flags' => [
2024-09-28 17:17:29 +02:00
'export' => true ,
'telemetry' => false ,
'webhooks' => true ,
'handle_debts' => true ,
'expression_engine' => true ,
2026-04-24 05:45:42 +02:00
'running_balance_column' => ( bool ) env_default_when_empty ( env ( 'USE_RUNNING_BALANCE' ), true ), // this is only the default value, is not used.
2023-07-25 09:01:44 +02:00
// see cer.php for exchange rates feature flag.
2019-12-27 10:59:31 +01:00
],
2026-06-08 13:22:36 +02:00
'version' => 'develop/2026-06-08' ,
'build_time' => 1780917755 ,
2025-11-04 05:54:30 +01:00
'api_version' => '2.1.0' , // field is no longer used.
'db_version' => 28 , // field is no longer used.
2021-05-13 06:47:11 +02:00
2026-03-06 13:52:11 +01:00
// Docker build info, if present:
2026-03-06 15:31:45 +01:00
'is_docker' => env ( 'IS_DOCKER' , false ),
2026-04-24 05:45:42 +02:00
'base_image_build' => env_default_when_empty ( env ( 'BASE_IMAGE_BUILD' ), '(unknown)' ),
'base_image_date' => env_default_when_empty ( env ( 'BASE_IMAGE_DATE' ), '(unknown)' ),
2026-03-06 15:31:45 +01:00
'is_local_dev' => env ( 'IS_LOCAL_DEV' , false ),
2026-03-06 13:52:11 +01:00
2021-05-13 06:47:11 +02:00
// generic settings
2025-11-04 05:54:30 +01:00
'maxUploadSize' => 1073741824 , // 1 GB
'send_error_message' => env ( 'SEND_ERROR_MESSAGE' , true ),
'site_owner' => env ( 'SITE_OWNER' , '' ),
2020-08-28 22:03:27 +02:00
2021-05-13 06:47:11 +02:00
// tokens and keys
2025-11-04 05:54:30 +01:00
'fixer_api_key' => env ( 'FIXER_API_KEY' , '' ),
'ipinfo_token' => env ( 'IPINFO_TOKEN' , '' ),
2026-03-06 13:52:11 +01:00
'static_cron_token' => env ( 'STATIC_CRON_TOKEN' ),
2021-05-13 06:47:11 +02:00
// flags
2025-12-20 07:00:53 +01:00
'enable_external_map' => env ( 'ENABLE_EXTERNAL_MAP' , false ), // no longer used, only for default.
2025-11-04 05:54:30 +01:00
'disable_frame_header' => env ( 'DISABLE_FRAME_HEADER' , false ),
'disable_csp_header' => env ( 'DISABLE_CSP_HEADER' , false ),
2025-12-20 07:00:53 +01:00
'allow_webhooks' => env ( 'ALLOW_WEBHOOKS' , false ), // no longer used, only for default.
2021-05-13 06:47:11 +02:00
// info for demo site
2025-11-04 05:54:30 +01:00
'demo_username' => env ( 'DEMO_USERNAME' , '' ),
'demo_password' => env ( 'DEMO_PASSWORD' , '' ),
'tracker_site_id' => env ( 'TRACKER_SITE_ID' , '' ),
'tracker_url' => env ( 'TRACKER_URL' , '' ),
2021-05-13 06:47:11 +02:00
2022-03-19 11:19:58 +01:00
// authentication settings
2026-04-24 05:45:42 +02:00
'authentication_guard' => env_default_when_empty ( env ( 'AUTHENTICATION_GUARD' ), 'web' ),
'custom_logout_url' => env_default_when_empty ( env ( 'CUSTOM_LOGOUT_URL' ), '' ),
2021-05-13 06:47:11 +02:00
// static config (cannot be changed by user)
2025-11-04 05:54:30 +01:00
'update_endpoint' => 'https://version.firefly-iii.org/index.json' ,
'update_minimum_age' => 7 ,
2021-05-13 06:47:11 +02:00
2024-12-07 08:05:51 +01:00
2021-08-10 18:06:49 +02:00
// enabled languages
2025-11-04 05:54:30 +01:00
'languages' => [
2021-08-10 18:06:49 +02:00
// currently enabled languages
2025-05-27 17:28:41 +02:00
// 'af_ZA' => ['name_locale' => 'Afrikaans', 'name_english' => 'Afrikaans'],
2025-08-04 20:11:51 +02:00
'ar_SA' => [ 'name_locale' => 'العربية' , 'name_english' => 'Arabic' ],
2021-08-10 18:06:49 +02:00
'bg_BG' => [ 'name_locale' => 'Български' , 'name_english' => 'Bulgarian' ],
'cs_CZ' => [ 'name_locale' => 'Czech' , 'name_english' => 'Czech' ],
2022-10-08 06:47:56 +02:00
'da_DK' => [ 'name_locale' => 'Danish' , 'name_english' => 'Danish' ],
2021-08-10 18:06:49 +02:00
'de_DE' => [ 'name_locale' => 'Deutsch' , 'name_english' => 'German' ],
'el_GR' => [ 'name_locale' => 'Ελληνικά' , 'name_english' => 'Greek' ],
'en_GB' => [ 'name_locale' => 'English (GB)' , 'name_english' => 'English (GB)' ],
'en_US' => [ 'name_locale' => 'English (US)' , 'name_english' => 'English (US)' ],
'es_ES' => [ 'name_locale' => 'Español' , 'name_english' => 'Spanish' ],
2023-03-12 13:48:06 +01:00
'ca_ES' => [ 'name_locale' => 'Català (Espanya)' , 'name_english' => 'Catalan (Spain)' ],
2022-12-29 15:42:02 +01:00
// 'et_EE' => ['name_locale' => 'Estonian', 'name_english' => 'Estonian'],
2025-03-23 09:03:33 +01:00
'fa_IR' => [ 'name_locale' => 'فارسی' , 'name_english' => 'Persian' ],
2021-08-10 18:06:49 +02:00
'fi_FI' => [ 'name_locale' => 'Suomi' , 'name_english' => 'Finnish' ],
'fr_FR' => [ 'name_locale' => 'Français' , 'name_english' => 'French' ],
2022-12-29 15:42:02 +01:00
// 'he_IL' => ['name_locale' => 'Hebrew', 'name_english' => 'Hebrew'],
2021-08-10 18:06:49 +02:00
'hu_HU' => [ 'name_locale' => 'Hungarian' , 'name_english' => 'Hungarian' ],
2022-10-08 06:47:56 +02:00
'id_ID' => [ 'name_locale' => 'Bahasa Indonesia' , 'name_english' => 'Indonesian' ],
2022-12-29 15:42:02 +01:00
// 'is_IS' => ['name_locale' => 'Icelandic', 'name_english' => 'Icelandic'],
2021-08-10 18:06:49 +02:00
'it_IT' => [ 'name_locale' => 'Italiano' , 'name_english' => 'Italian' ],
2021-08-10 19:31:55 +02:00
'ja_JP' => [ 'name_locale' => 'Japanese' , 'name_english' => 'Japanese' ],
2023-05-27 07:12:04 +02:00
'ko_KR' => [ 'name_locale' => 'Korean' , 'name_english' => 'Korean' ],
2022-12-29 15:42:02 +01:00
// 'lt_LT' => ['name_locale' => 'Lietuvių', 'name_english' => 'Lithuanian'],
2023-05-27 07:12:04 +02:00
2023-05-30 20:15:07 +02:00
'nb_NO' => [ 'name_locale' => 'Norsk Bokmål' , 'name_english' => 'Norwegian Bokmål' ],
'nn_NO' => [ 'name_locale' => 'Norsk Nynorsk' , 'name_english' => 'Norwegian Nynorsk' ],
2021-08-10 18:06:49 +02:00
'nl_NL' => [ 'name_locale' => 'Nederlands' , 'name_english' => 'Dutch' ],
2022-01-30 16:53:57 +01:00
'pl_PL' => [ 'name_locale' => 'Polski' , 'name_english' => 'Polish' ],
2021-08-10 18:06:49 +02:00
'pt_BR' => [ 'name_locale' => 'Português do Brasil' , 'name_english' => 'Portuguese (Brazil)' ],
'pt_PT' => [ 'name_locale' => 'Português' , 'name_english' => 'Portuguese' ],
'ro_RO' => [ 'name_locale' => 'Română' , 'name_english' => 'Romanian' ],
'ru_RU' => [ 'name_locale' => 'Русский' , 'name_english' => 'Russian' ],
2022-12-29 15:42:02 +01:00
// 'si_LK' => ['name_locale' => 'සිංහල', 'name_english' => 'Sinhala (Sri Lanka)'],
2021-08-10 18:06:49 +02:00
'sk_SK' => [ 'name_locale' => 'Slovenčina' , 'name_english' => 'Slovak' ],
2022-10-08 06:47:56 +02:00
'sl_SI' => [ 'name_locale' => 'Slovenian' , 'name_english' => 'Slovenian' ],
2023-12-20 19:39:53 +01:00
// // 'sr_CS' => ['name_locale' => 'Serbian (Latin)', 'name_english' => 'Serbian (Latin)'],
2021-08-10 18:06:49 +02:00
'sv_SE' => [ 'name_locale' => 'Svenska' , 'name_english' => 'Swedish' ],
2022-12-29 15:42:02 +01:00
// // 'tlh_AA' => ['name_locale' => 'tlhIngan Hol', 'name_english' => 'Klingon'],
2022-10-08 06:47:56 +02:00
'tr_TR' => [ 'name_locale' => 'Türkçe' , 'name_english' => 'Turkish' ],
2025-04-25 18:41:22 +04:00
'uk_UA' => [ 'name_locale' => 'Українська' , 'name_english' => 'Ukrainian' ],
2021-08-10 18:06:49 +02:00
'vi_VN' => [ 'name_locale' => 'Tiếng Việt' , 'name_english' => 'Vietnamese' ],
'zh_TW' => [ 'name_locale' => 'Chinese Traditional' , 'name_english' => 'Chinese Traditional' ],
'zh_CN' => [ 'name_locale' => 'Chinese Simplified' , 'name_english' => 'Chinese Simplified' ],
],
2021-06-12 06:34:10 +02:00
// web configuration:
2025-11-04 05:54:30 +01:00
'trusted_proxies' => env ( 'TRUSTED_PROXIES' , '' ),
2021-06-12 06:34:10 +02:00
// map configuration
2025-11-04 05:54:30 +01:00
'default_location' => [
2019-12-30 12:12:08 +01:00
'longitude' => env ( 'MAP_DEFAULT_LONG' , '5.916667' ),
'latitude' => env ( 'MAP_DEFAULT_LAT' , '51.983333' ),
'zoom_level' => env ( 'MAP_DEFAULT_ZOOM' , '6' ),
],
2021-06-12 06:34:10 +02:00
2024-04-01 18:18:48 +02:00
// administration specific preferences
2025-11-04 05:54:30 +01:00
'admin_specific_prefs' => [],
2024-04-01 18:18:48 +02:00
2021-08-10 18:06:49 +02:00
// default user-related values
2025-11-04 05:54:30 +01:00
'darkMode' => 'browser' ,
'list_length' => 10 , // to be removed if v1 is cancelled.
'default_preferences' => [
2025-10-25 14:09:44 +02:00
'anonymous' => false ,
2025-09-03 20:34:28 +02:00
'frontpageAccounts' => [],
'listPageSize' => 50 ,
'currencyPreference' => 'EUR' ,
'language' => 'en_US' ,
'locale' => 'equal' ,
'convertToPrimary' => false ,
2021-08-10 18:06:49 +02:00
],
2025-11-04 05:54:30 +01:00
'default_currency' => 'EUR' ,
2026-04-24 05:45:42 +02:00
'default_language' => env_default_when_empty ( env ( 'DEFAULT_LANGUAGE' ), 'en_US' ),
'default_locale' => env_default_when_empty ( env ( 'DEFAULT_LOCALE' ), 'equal' ),
2021-08-10 18:06:49 +02:00
2022-10-23 14:46:26 +02:00
// account types that may have or set a currency
2026-05-09 07:02:06 +02:00
2025-11-04 05:54:30 +01:00
'valid_currency_account_types' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: CASH -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LIABILITY_CREDIT -> value ,
AccountTypeEnum :: RECONCILIATION -> value ,
2022-10-23 14:46:26 +02:00
],
2021-08-10 18:06:49 +02:00
// "value must be in this list" values
2025-11-04 05:54:30 +01:00
'valid_attachment_models' => [
2020-03-18 21:36:26 +01:00
Account :: class ,
Bill :: class ,
Budget :: class ,
Category :: class ,
PiggyBank :: class ,
Tag :: class ,
Transaction :: class ,
TransactionJournal :: class ,
2020-06-27 15:19:00 +02:00
Recurrence :: class ,
2020-03-18 21:36:26 +01:00
],
2025-11-04 05:54:30 +01:00
'available_dark_modes' => [ 'light' , 'dark' , 'browser' ],
'bill_reminder_periods' => [ 90 , 30 , 14 , 7 , 0 ],
'valid_view_ranges' => [ '1D' , '1W' , '1M' , '3M' , '6M' , '1Y' ],
2026-05-12 18:45:33 +02:00
'valid_url_protocols' => env_default_when_empty ( env ( 'VALID_URL_PROTOCOLS' ), 'http,https,ftp,ftps,mailto,abacusfiiiapp' ), // no longer used, only for default.
2025-11-04 05:54:30 +01:00
'allowedMimes' => [
2023-12-20 19:39:53 +01:00
// plain files
2018-01-25 19:21:46 +01:00
'text/plain' ,
2024-11-09 06:23:28 +01:00
'text/html' ,
2025-10-09 15:40:07 -05:00
'text/xml' ,
'application/xml' ,
2018-01-25 19:21:46 +01:00
2023-12-20 19:39:53 +01:00
// images
2018-01-25 19:21:46 +01:00
'image/jpeg' ,
'image/svg+xml' ,
'image/png' ,
'image/heic' ,
'image/heic-sequence' ,
2025-09-02 06:03:11 +02:00
'image/webp' ,
'image/gif' ,
'image/tiff' ,
'image/bmp' ,
'image/x-icon' ,
'image/vnd.microsoft.icon' ,
2018-01-25 19:21:46 +01:00
2023-12-20 19:39:53 +01:00
// PDF
2018-01-25 19:21:46 +01:00
'application/pdf' ,
2023-12-20 19:39:53 +01:00
// Generic upload
2022-09-11 07:08:54 +02:00
'application/octet-stream' ,
2023-12-20 19:39:53 +01:00
// MS word
2018-01-25 18:41:51 +01:00
'application/msword' ,
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ,
'application/vnd.openxmlformats-officedocument.wordprocessingml.template' ,
2023-12-20 19:39:53 +01:00
// MS excel
2018-01-25 18:41:51 +01:00
'application/vnd.ms-excel' ,
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ,
'application/vnd.openxmlformats-officedocument.spreadsheetml.template' ,
2023-12-20 19:39:53 +01:00
// MS powerpoint
2018-01-25 18:41:51 +01:00
'application/vnd.ms-powerpoint' ,
'application/vnd.openxmlformats-officedocument.presentationml.presentation' ,
'application/vnd.openxmlformats-officedocument.presentationml.template' ,
'application/vnd.openxmlformats-officedocument.presentationml.slideshow' ,
2023-12-20 19:39:53 +01:00
// iWork
2018-01-25 18:41:51 +01:00
'application/x-iwork-pages-sffpages' ,
2023-12-20 19:39:53 +01:00
// open office
2018-01-25 18:41:51 +01:00
'application/vnd.sun.xml.writer' ,
'application/vnd.sun.xml.writer.template' ,
'application/vnd.sun.xml.writer.global' ,
'application/vnd.stardivision.writer' ,
'application/vnd.stardivision.writer-global' ,
'application/vnd.sun.xml.calc' ,
'application/vnd.sun.xml.calc.template' ,
'application/vnd.stardivision.calc' ,
'application/vnd.sun.xml.impress' ,
'application/vnd.sun.xml.impress.template' ,
'application/vnd.stardivision.impress' ,
'application/vnd.sun.xml.draw' ,
'application/vnd.sun.xml.draw.template' ,
'application/vnd.stardivision.draw' ,
'application/vnd.sun.xml.math' ,
'application/vnd.stardivision.math' ,
'application/vnd.oasis.opendocument.text' ,
'application/vnd.oasis.opendocument.text-template' ,
'application/vnd.oasis.opendocument.text-web' ,
'application/vnd.oasis.opendocument.text-master' ,
'application/vnd.oasis.opendocument.graphics' ,
'application/vnd.oasis.opendocument.graphics-template' ,
'application/vnd.oasis.opendocument.presentation' ,
'application/vnd.oasis.opendocument.presentation-template' ,
'application/vnd.oasis.opendocument.spreadsheet' ,
'application/vnd.oasis.opendocument.spreadsheet-template' ,
'application/vnd.oasis.opendocument.chart' ,
'application/vnd.oasis.opendocument.formula' ,
'application/vnd.oasis.opendocument.database' ,
'application/vnd.oasis.opendocument.image' ,
2022-05-25 14:32:25 +02:00
2023-12-20 19:39:53 +01:00
// EML
2022-05-25 14:32:25 +02:00
'message/rfc822' ,
2023-12-20 19:39:53 +01:00
// JSON
2022-05-25 14:32:25 +02:00
'application/json' ,
2018-01-25 18:41:51 +01:00
],
2025-11-04 05:54:30 +01:00
'accountRoles' => [ 'defaultAsset' , 'sharedAsset' , 'savingAsset' , 'ccAsset' , 'cashWalletAsset' ],
'valid_liabilities' => [ AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
'ccTypes' => [ 'monthlyFull' => 'Full payment every month' ],
'credit_card_types' => [ 'monthlyFull' ],
2021-08-10 18:06:49 +02:00
// "period must be in this list" values
2025-11-04 05:54:30 +01:00
'bill_periods' => [ 'daily' , 'weekly' , 'monthly' , 'quarterly' , 'half-year' , 'yearly' ],
'interest_periods' => [ 'daily' , 'weekly' , 'monthly' , 'quarterly' , 'half-year' , 'yearly' ],
2021-08-10 18:06:49 +02:00
// settings to translate X to Y
2025-11-04 05:54:30 +01:00
'range_to_repeat_freq' => [
2015-02-06 19:33:31 +01:00
'1D' => 'weekly' ,
'1W' => 'weekly' ,
'1M' => 'monthly' ,
'3M' => 'quarterly' ,
'6M' => 'half-year' ,
2016-04-25 18:43:09 +02:00
'1Y' => 'yearly' ,
2016-04-28 10:59:36 +02:00
'custom' => 'custom' ,
2015-02-06 19:33:31 +01:00
],
2025-11-04 05:54:30 +01:00
'subTitlesByIdentifier' => [
2020-03-17 16:06:30 +00:00
'asset' => 'Asset accounts' ,
'expense' => 'Expense accounts' ,
'revenue' => 'Revenue accounts' ,
'cash' => 'Cash accounts' ,
'liabilities' => 'Liabilities' ,
'liability' => 'Liabilities' ,
],
2025-11-04 05:54:30 +01:00
'subIconsByIdentifier' => [
2024-11-27 08:08:52 +01:00
'asset' => 'fa-money' ,
AccountTypeEnum :: ASSET -> value => 'fa-money' ,
AccountTypeEnum :: DEFAULT -> value => 'fa-money' ,
AccountTypeEnum :: CASH -> value => 'fa-money' ,
'expense' => 'fa-shopping-cart' ,
AccountTypeEnum :: EXPENSE -> value => 'fa-shopping-cart' ,
AccountTypeEnum :: BENEFICIARY -> value => 'fa-shopping-cart' ,
'revenue' => 'fa-download' ,
AccountTypeEnum :: REVENUE -> value => 'fa-download' ,
'import' => 'fa-download' ,
AccountTypeEnum :: IMPORT -> value => 'fa-download' ,
'liabilities' => 'fa-ticket' ,
2020-03-17 16:06:30 +00:00
],
2025-11-04 05:54:30 +01:00
'accountTypesByIdentifier' => [
2024-11-27 08:08:52 +01:00
'asset' => [ AccountTypeEnum :: DEFAULT -> value , AccountTypeEnum :: ASSET -> value ],
'expense' => [ AccountTypeEnum :: EXPENSE -> value , AccountTypeEnum :: BENEFICIARY -> value ],
'revenue' => [ AccountTypeEnum :: REVENUE -> value ],
'import' => [ AccountTypeEnum :: IMPORT -> value ],
'liabilities' => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: CREDITCARD -> value , AccountTypeEnum :: MORTGAGE -> value ],
2020-03-17 16:06:30 +00:00
],
2025-11-04 05:54:30 +01:00
'accountTypeByIdentifier' => [
2024-11-27 08:08:52 +01:00
'asset' => [ AccountTypeEnum :: ASSET -> value ],
'expense' => [ AccountTypeEnum :: EXPENSE -> value ],
'revenue' => [ AccountTypeEnum :: REVENUE -> value ],
'opening' => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
'initial' => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
'import' => [ AccountTypeEnum :: IMPORT -> value ],
'reconcile' => [ AccountTypeEnum :: RECONCILIATION -> value ],
'loan' => [ AccountTypeEnum :: LOAN -> value ],
'debt' => [ AccountTypeEnum :: DEBT -> value ],
'mortgage' => [ AccountTypeEnum :: MORTGAGE -> value ],
'liabilities' => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value , AccountTypeEnum :: CREDITCARD -> value ],
'liability' => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value , AccountTypeEnum :: CREDITCARD -> value ],
2020-03-17 16:06:30 +00:00
],
2025-11-04 05:54:30 +01:00
'shortNamesByFullName' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: DEFAULT -> value => 'asset' ,
AccountTypeEnum :: ASSET -> value => 'asset' ,
AccountTypeEnum :: IMPORT -> value => 'import' ,
AccountTypeEnum :: EXPENSE -> value => 'expense' ,
AccountTypeEnum :: BENEFICIARY -> value => 'expense' ,
AccountTypeEnum :: REVENUE -> value => 'revenue' ,
AccountTypeEnum :: CASH -> value => 'cash' ,
AccountTypeEnum :: INITIAL_BALANCE -> value => 'initial-balance' ,
AccountTypeEnum :: RECONCILIATION -> value => 'reconciliation' ,
AccountTypeEnum :: CREDITCARD -> value => 'liabilities' ,
AccountTypeEnum :: LOAN -> value => 'liabilities' ,
AccountTypeEnum :: DEBT -> value => 'liabilities' ,
AccountTypeEnum :: MORTGAGE -> value => 'liabilities' ,
2020-03-17 16:06:30 +00:00
],
2025-11-04 05:54:30 +01:00
'shortLiabilityNameByFullName' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: CREDITCARD -> value => 'creditcard' ,
AccountTypeEnum :: LOAN -> value => AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value => AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value => AccountTypeEnum :: MORTGAGE -> value ,
2018-12-18 19:57:23 +01:00
],
2025-11-04 05:54:30 +01:00
'transactionTypesByType' => [
2019-04-19 07:00:19 +02:00
'expenses' => [ 'Withdrawal' ],
'withdrawal' => [ 'Withdrawal' ],
'revenue' => [ 'Deposit' ],
'deposit' => [ 'Deposit' ],
'transfer' => [ 'Transfer' ],
'transfers' => [ 'Transfer' ],
],
2025-11-04 05:54:30 +01:00
'transactionTypesToShort' => [
2018-12-20 20:50:05 +01:00
'Withdrawal' => 'withdrawal' ,
'Deposit' => 'deposit' ,
'Transfer' => 'transfer' ,
'Opening balance' => 'opening-balance' ,
'Reconciliation' => 'reconciliation' ,
],
2025-11-04 05:54:30 +01:00
'transactionIconsByType' => [
2015-07-06 22:12:35 +02:00
'expenses' => 'fa-long-arrow-left' ,
'withdrawal' => 'fa-long-arrow-left' ,
'revenue' => 'fa-long-arrow-right' ,
'deposit' => 'fa-long-arrow-right' ,
'transfer' => 'fa-exchange' ,
'transfers' => 'fa-exchange' ,
],
2021-08-10 18:06:49 +02:00
2017-12-25 08:45:23 +01:00
2025-11-04 05:54:30 +01:00
'rule-actions' => [
2018-04-02 14:43:06 +02:00
'set_category' => SetCategory :: class ,
'clear_category' => ClearCategory :: class ,
'set_budget' => SetBudget :: class ,
'clear_budget' => ClearBudget :: class ,
'add_tag' => AddTag :: class ,
'remove_tag' => RemoveTag :: class ,
'remove_all_tags' => RemoveAllTags :: class ,
'set_description' => SetDescription :: class ,
2024-07-29 05:06:54 +02:00
// 'append_description' => AppendDescription::class,
// 'prepend_description' => PrependDescription::class,
2018-04-02 14:43:06 +02:00
'set_source_account' => SetSourceAccount :: class ,
'set_destination_account' => SetDestinationAccount :: class ,
'set_notes' => SetNotes :: class ,
2024-07-29 05:06:54 +02:00
// 'append_notes' => AppendNotes::class,
// 'prepend_notes' => PrependNotes::class,
2018-04-02 14:43:06 +02:00
'clear_notes' => ClearNotes :: class ,
2018-04-07 06:20:45 +02:00
'link_to_bill' => LinkToBill :: class ,
2018-09-15 13:43:57 +02:00
'convert_withdrawal' => ConvertToWithdrawal :: class ,
'convert_deposit' => ConvertToDeposit :: class ,
'convert_transfer' => ConvertToTransfer :: class ,
2023-08-11 06:16:40 +02:00
'switch_accounts' => SwitchAccounts :: class ,
2025-01-04 08:44:02 +01:00
'update_piggy' => UpdatePiggyBank :: class ,
2020-05-16 11:21:26 +02:00
'delete_transaction' => DeleteTransaction :: class ,
2024-07-29 05:06:54 +02:00
// 'append_descr_to_notes' => AppendDescriptionToNotes::class,
// 'append_notes_to_descr' => AppendNotesToDescription::class,
// 'move_descr_to_notes' => MoveDescriptionToNotes::class,
// 'move_notes_to_descr' => MoveNotesToDescription::class,
2023-12-02 15:38:06 +01:00
'set_source_to_cash' => SetSourceToCashAccount :: class ,
'set_destination_to_cash' => SetDestinationToCashAccount :: class ,
2024-03-10 11:57:21 +01:00
'set_amount' => SetAmount :: class ,
// 'set_foreign_amount' => SetForeignAmount::class,
// 'set_foreign_currency' => SetForeignCurrency::class,
2016-01-12 20:36:47 +01:00
],
2025-11-04 05:54:30 +01:00
'context-rule-actions' => [
2016-01-14 19:20:02 +01:00
'set_category' ,
'set_budget' ,
'add_tag' ,
'remove_tag' ,
'set_description' ,
'append_description' ,
'prepend_description' ,
2018-10-14 17:38:26 +02:00
'set_source_account' ,
'set_destination_account' ,
'set_notes' ,
'append_notes' ,
'prepend_notes' ,
'link_to_bill' ,
2020-08-26 20:18:27 +02:00
// 'convert_withdrawal',
// 'convert_deposit',
2018-10-14 17:38:26 +02:00
'convert_transfer' ,
],
2025-11-04 05:54:30 +01:00
'test-triggers' => [
2016-02-18 06:56:24 +01:00
'limit' => 10 ,
2016-03-29 11:54:50 +02:00
'range' => 200 ,
],
2021-08-10 18:06:49 +02:00
2019-03-23 08:10:59 +01:00
// expected source types for each transaction type, in order of preference.
2025-11-04 05:54:30 +01:00
'expected_source_types' => [
2019-03-23 08:10:59 +01:00
'source' => [
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: WITHDRAWAL -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2024-12-14 05:45:54 +01:00
TransactionTypeEnum :: DEPOSIT -> value => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value , AccountTypeEnum :: REVENUE -> value , AccountTypeEnum :: CASH -> value ],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
TransactionTypeEnum :: OPENING_BALANCE -> value => [
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: RECONCILIATION -> value => [ AccountTypeEnum :: RECONCILIATION -> value , AccountTypeEnum :: ASSET -> value ],
TransactionTypeEnum :: LIABILITY_CREDIT -> value => [ AccountTypeEnum :: LIABILITY_CREDIT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2019-05-04 20:58:11 +02:00
// in case no transaction type is known yet, it could be anything.
2024-12-14 05:45:54 +01:00
'none' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: REVENUE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
2019-05-04 20:58:11 +02:00
],
2019-03-23 08:10:59 +01:00
],
'destination' => [
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: WITHDRAWAL -> value => [
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: CASH -> value ,
2022-12-29 15:42:02 +01:00
],
2024-12-14 05:45:54 +01:00
TransactionTypeEnum :: DEPOSIT -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
TransactionTypeEnum :: OPENING_BALANCE -> value => [
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: RECONCILIATION -> value => [ AccountTypeEnum :: RECONCILIATION -> value , AccountTypeEnum :: ASSET -> value ],
TransactionTypeEnum :: LIABILITY_CREDIT -> value => [ AccountTypeEnum :: LIABILITY_CREDIT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2019-03-23 08:10:59 +01:00
],
],
2025-11-04 05:54:30 +01:00
'allowed_opposing_types' => [
2019-05-04 20:58:11 +02:00
'source' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: CASH -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: RECONCILIATION -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: CASH -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: DEBT -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: EXPENSE -> value => [], // is not allowed as a source.
AccountTypeEnum :: INITIAL_BALANCE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: LOAN -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: MORTGAGE -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: RECONCILIATION -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: REVENUE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: LIABILITY_CREDIT -> value => [ AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
2019-05-04 20:58:11 +02:00
],
'destination' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: CASH -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: RECONCILIATION -> value ,
AccountTypeEnum :: REVENUE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: CASH -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: DEBT -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: REVENUE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: EXPENSE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: INITIAL_BALANCE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: LOAN -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: REVENUE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: MORTGAGE -> value => [
AccountTypeEnum :: ASSET -> value ,
AccountTypeEnum :: DEBT -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value ,
AccountTypeEnum :: MORTGAGE -> value ,
AccountTypeEnum :: REVENUE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: RECONCILIATION -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: REVENUE -> value => [], // is not allowed as a destination
AccountTypeEnum :: LIABILITY_CREDIT -> value => [], // is not allowed as a destination
2019-05-04 20:58:11 +02:00
],
],
// depending on the account type, return the allowed transaction types:
2025-11-04 05:54:30 +01:00
'allowed_transaction_types' => [
2019-05-04 20:58:11 +02:00
'source' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
TransactionTypeEnum :: RECONCILIATION -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: EXPENSE -> value => [], // is not allowed as a source.
AccountTypeEnum :: REVENUE -> value => [ TransactionTypeEnum :: DEPOSIT -> value ],
AccountTypeEnum :: LOAN -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: DEBT -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: MORTGAGE -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: INITIAL_BALANCE -> value => [ TransactionTypeEnum :: OPENING_BALANCE -> value ],
AccountTypeEnum :: RECONCILIATION -> value => [ TransactionTypeEnum :: RECONCILIATION -> value ],
AccountTypeEnum :: LIABILITY_CREDIT -> value => [ TransactionTypeEnum :: LIABILITY_CREDIT -> value ],
2019-05-04 20:58:11 +02:00
],
'destination' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value => [
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
TransactionTypeEnum :: RECONCILIATION -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: EXPENSE -> value => [ TransactionTypeEnum :: WITHDRAWAL -> value ],
AccountTypeEnum :: REVENUE -> value => [], // is not allowed as destination.
AccountTypeEnum :: LOAN -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: DEBT -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: MORTGAGE -> value => [
TransactionTypeEnum :: WITHDRAWAL -> value ,
2022-12-29 15:42:02 +01:00
TransactionTypeEnum :: DEPOSIT -> value ,
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value ,
TransactionTypeEnum :: OPENING_BALANCE -> value ,
2022-12-29 15:42:02 +01:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: INITIAL_BALANCE -> value => [ TransactionTypeEnum :: OPENING_BALANCE -> value ],
AccountTypeEnum :: RECONCILIATION -> value => [ TransactionTypeEnum :: RECONCILIATION -> value ],
AccountTypeEnum :: LIABILITY_CREDIT -> value => [], // is not allowed as a destination
2019-05-04 20:58:11 +02:00
],
],
// having the source + dest will tell you the transaction type.
2025-11-04 05:54:30 +01:00
'account_to_transaction' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: ASSET -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: CASH -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: EXPENSE -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: RECONCILIATION -> value => TransactionTypeEnum :: RECONCILIATION -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: CASH -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: DEPOSIT -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: DEBT -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: EXPENSE -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: TRANSFER -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: INITIAL_BALANCE -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: LOAN -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: EXPENSE -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: TRANSFER -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: MORTGAGE -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: EXPENSE -> value => TransactionTypeEnum :: WITHDRAWAL -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value => TransactionTypeEnum :: OPENING_BALANCE -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: TRANSFER -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: TRANSFER -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: RECONCILIATION -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: RECONCILIATION -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: REVENUE -> value => [
AccountTypeEnum :: ASSET -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: DEPOSIT -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: DEPOSIT -> value ,
2019-05-04 20:58:11 +02:00
],
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: LIABILITY_CREDIT -> value => [
AccountTypeEnum :: DEBT -> value => TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
AccountTypeEnum :: LOAN -> value => TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
AccountTypeEnum :: MORTGAGE -> value => TransactionTypeEnum :: LIABILITY_CREDIT -> value ,
2021-04-10 17:25:17 +02:00
],
2024-11-27 08:08:52 +01:00
// AccountTypeEnum::EXPENSE->value unlisted because it cant be a source
2019-05-04 20:58:11 +02:00
],
2019-03-23 08:10:59 +01:00
2020-01-24 06:02:18 +01:00
// allowed source -> destination accounts.
2025-11-04 05:54:30 +01:00
'source_dests' => [
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: WITHDRAWAL -> value => [
AccountTypeEnum :: ASSET -> value => [ AccountTypeEnum :: EXPENSE -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value , AccountTypeEnum :: CASH -> value ],
AccountTypeEnum :: LOAN -> value => [ AccountTypeEnum :: EXPENSE -> value , AccountTypeEnum :: CASH -> value ],
AccountTypeEnum :: DEBT -> value => [ AccountTypeEnum :: EXPENSE -> value , AccountTypeEnum :: CASH -> value ],
AccountTypeEnum :: MORTGAGE -> value => [ AccountTypeEnum :: EXPENSE -> value , AccountTypeEnum :: CASH -> value ],
2019-03-23 08:10:59 +01:00
],
2024-12-14 05:45:54 +01:00
TransactionTypeEnum :: DEPOSIT -> value => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: REVENUE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: CASH -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: LOAN -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: DEBT -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: MORTGAGE -> value => [ AccountTypeEnum :: ASSET -> value ],
2019-03-23 08:10:59 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: TRANSFER -> value => [
AccountTypeEnum :: ASSET -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: LOAN -> value => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: DEBT -> value => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
AccountTypeEnum :: MORTGAGE -> value => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2019-03-23 08:10:59 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: OPENING_BALANCE -> value => [
AccountTypeEnum :: ASSET -> value => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
AccountTypeEnum :: LOAN -> value => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
AccountTypeEnum :: DEBT -> value => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
AccountTypeEnum :: MORTGAGE -> value => [ AccountTypeEnum :: INITIAL_BALANCE -> value ],
AccountTypeEnum :: INITIAL_BALANCE -> value => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2019-03-23 08:10:59 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: RECONCILIATION -> value => [
AccountTypeEnum :: RECONCILIATION -> value => [ AccountTypeEnum :: ASSET -> value ],
AccountTypeEnum :: ASSET -> value => [ AccountTypeEnum :: RECONCILIATION -> value ],
2019-03-23 08:10:59 +01:00
],
2024-11-27 08:08:52 +01:00
TransactionTypeEnum :: LIABILITY_CREDIT -> value => [
AccountTypeEnum :: LOAN -> value => [ AccountTypeEnum :: LIABILITY_CREDIT -> value ],
AccountTypeEnum :: DEBT -> value => [ AccountTypeEnum :: LIABILITY_CREDIT -> value ],
AccountTypeEnum :: MORTGAGE -> value => [ AccountTypeEnum :: LIABILITY_CREDIT -> value ],
AccountTypeEnum :: LIABILITY_CREDIT -> value => [ AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2021-04-10 17:25:17 +02:00
],
2019-03-23 08:10:59 +01:00
],
2022-12-29 15:42:02 +01:00
// if you add fields to this array, don't forget to update the export routine (ExportDataGenerator).
2025-11-04 05:54:30 +01:00
'journal_meta_fields' => [
2020-11-12 05:55:14 +01:00
// sepa
2022-12-29 15:42:02 +01:00
'sepa_cc' ,
'sepa_ct_op' ,
'sepa_ct_id' ,
'sepa_db' ,
'sepa_country' ,
'sepa_ep' ,
'sepa_ci' ,
'sepa_batch_id' ,
'external_url' ,
2020-11-12 05:55:14 +01:00
// dates
2022-12-29 15:42:02 +01:00
'interest_date' ,
'book_date' ,
'process_date' ,
'due_date' ,
'payment_date' ,
'invoice_date' ,
2020-11-12 05:55:14 +01:00
// others
2022-12-29 15:42:02 +01:00
'recurrence_id' ,
'internal_reference' ,
'bunq_payment_id' ,
'import_hash' ,
'import_hash_v2' ,
'external_id' ,
'original_source' ,
2020-11-12 05:55:14 +01:00
// recurring transactions
2022-12-29 15:42:02 +01:00
'recurrence_total' ,
'recurrence_count' ,
'recurrence_date' ,
2020-11-12 05:55:14 +01:00
],
2025-11-04 05:54:30 +01:00
'webhooks' => [
2022-09-18 05:49:56 +02:00
'max_attempts' => env ( 'WEBHOOK_MAX_ATTEMPTS' , 3 ),
2020-11-29 18:35:49 +01:00
],
2025-11-04 05:54:30 +01:00
'can_have_virtual_amounts' => [ AccountTypeEnum :: ASSET -> value ],
'can_have_opening_balance' => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
'dynamic_creation_allowed' => [
2024-11-27 08:08:52 +01:00
AccountTypeEnum :: EXPENSE -> value ,
AccountTypeEnum :: REVENUE -> value ,
AccountTypeEnum :: INITIAL_BALANCE -> value ,
AccountTypeEnum :: RECONCILIATION -> value ,
AccountTypeEnum :: LIABILITY_CREDIT -> value ,
2023-05-27 07:12:04 +02:00
],
2025-11-04 05:54:30 +01:00
'valid_asset_fields' => [ 'account_role' , 'account_number' , 'currency_id' , 'BIC' , 'include_net_worth' ],
'valid_cc_fields' => [ 'account_role' , 'cc_monthly_payment_date' , 'cc_type' , 'account_number' , 'currency_id' , 'BIC' , 'include_net_worth' ],
'valid_account_fields' => [ 'account_number' , 'currency_id' , 'BIC' , 'interest' , 'interest_period' , 'include_net_worth' , 'liability_direction' ],
2021-08-10 18:06:49 +02:00
2023-02-11 07:37:05 +01:00
// dynamic date ranges are as follows:
2025-11-04 05:54:30 +01:00
'dynamic_date_ranges' => [ 'last7' , 'last30' , 'last90' , 'last365' , 'MTD' , 'QTD' , 'YTD' ],
2025-09-03 20:34:28 +02:00
2025-11-04 05:54:30 +01:00
'allowed_sort_parameters' => [
2025-09-03 20:34:28 +02:00
'Account' => [ 'id' , 'order' , 'name' , 'iban' , 'active' , 'account_type_id' ,
2025-11-03 20:13:41 +01:00
'current_balance' ,
'pc_current_balance' ,
'opening_balance' ,
'pc_opening_balance' ,
'virtual_balance' ,
'pc_virtual_balance' ,
'debt_amount' ,
'pc_debt_amount' ,
'balance_difference' ,
'pc_balance_difference' ,
2025-09-03 20:34:28 +02:00
],
],
2025-11-04 05:54:30 +01:00
'allowed_db_sort_parameters' => [
2025-09-03 20:34:28 +02:00
'Account' => [ 'id' , 'order' , 'name' , 'iban' , 'active' , 'account_type_id' ],
],
2023-02-11 07:37:05 +01:00
2023-12-03 07:44:53 +01:00
// preselected account lists possibilities:
2025-11-04 05:54:30 +01:00
'preselected_accounts' => [ 'all' , 'assets' , 'liabilities' ],
2024-12-01 18:16:48 +01:00
// allowed to store a piggy bank in:
2025-11-04 05:54:30 +01:00
'piggy_bank_account_types' => [ AccountTypeEnum :: ASSET -> value , AccountTypeEnum :: LOAN -> value , AccountTypeEnum :: DEBT -> value , AccountTypeEnum :: MORTGAGE -> value ],
2015-02-06 19:33:31 +01:00
];