# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET         /                                            controllers.Application.index(request:Request)
GET         /disableVopHint                              controllers.Application.disableVopHint(request:Request)

# The login page
GET         /login                                       controllers.Logins.index(request:Request)
GET         /loginUser                                   controllers.Logins.indexUser(request:Request, userName:String)
POST        /login                                       controllers.Logins.login(request:Request)
POST        /login/yubikey                               controllers.Logins.loginWithYubikey(request:Request, userName:String)
POST        /login/license                               controllers.Logins.licenseCheck(request:Request)
POST        /login/setup                                 controllers.Logins.createUser(request:Request)
GET         /login/license/:username/invalid             controllers.Logins.invalidLicense(request:Request, username:String)
POST        /login/license/:username                     controllers.Logins.invalidLicenseUpdate(request:Request, username:String)
GET         /login/openid                                controllers.Logins.openIdLogin(request: Request, code: String ?=null, error: String ?=null, error_description:String ?=null)
GET         /switchlang                                  controllers.Logins.switchLang(request:Request, language:String)
GET         /logoff/openid                               controllers.Logins.openIdLogOff(request:Request)
GET         /logoff                                      controllers.Logins.logoff(request:Request)
GET         /login/migration/:random                     controllers.Logins.webAuthnMigration(request:Request, random:String)
POST        /login/migration/:random                     controllers.Logins.webAuthnMigrationPost(request:Request, random:String)
GET         /login/deimpersonate                         controllers.Logins.deImpersonate(request:Request)

# The user setup pages
GET         /userSetup                                   controllers.UserSetup.newUserSetup(request:Request)
GET         /changePassword                              controllers.UserSetup.changePasswordPage(request:Request)
POST        /changePassword                              controllers.UserSetup.changePassword(request:Request, firstChange: Boolean)
GET         /newUserIni                                  controllers.UserSetup.newUserIni(request:Request)
POST        /newUserIni                                  controllers.UserSetup.doNewUserIni(request:Request)

# import user start page
GET         /import                                      controllers.UserSetup.selectImport(request:Request)
POST        /import                                      controllers.UserSetup.selectImportForm(request:Request)

# The bank related messages
GET         /banks                                       controllers.Banks.index(request:Request)
GET         /banks_sort                                  controllers.Banks.index_sort(request:Request, sort:Integer, ascending:Boolean)
GET         /banks_pagesize                              controllers.Banks.index_pageSize(request:Request, pageNumber:Integer, pageSize:Integer)
GET         /banks_tenant                                controllers.Banks.index_tenant(request:Request, tenant:Integer)
POST        /banks/htdUpdate                             controllers.Banks.runHTDUpdate(request:Request)
POST        /banks/updateBankKeys                        controllers.Banks.updateBankKeys(request:Request, ids:String)
POST        /banks/printHTD                              controllers.Banks.printHTD(request:Request)
POST        /banks/:id/printHTD                          controllers.BankDetails.printHTD(request:Request, id:Integer, tab:String)
POST        /banks/deleteQuestion                        controllers.Banks.deleteQuestion(request:Request)
POST        /banks/:id/deleteQuestion                    controllers.BankDetails.deleteQuestion(request:Request, id:Integer)
POST        /banks/delete                                controllers.Banks.delete(request:Request)
POST        /banks/activateQuestion                      controllers.Banks.activateQuestion(request:Request)
POST        /banks/:id/activateQuestion                  controllers.BankDetails.activateQuestion(request:Request, id:Integer)
POST        /banks/deactivateQuestion                    controllers.Banks.deactivateQuestion(request:Request)
POST        /banks/:id/deactivateQuestion                controllers.BankDetails.deactivateQuestion(request:Request, id:Integer)
POST        /banks/deactivate                            controllers.Banks.deactivate(request:Request)
POST        /banks/activate                              controllers.Banks.activate(request:Request)
GET         /banks/renewKeys/:id                         controllers.Banks.changeSignatureVersionGet(request:Request, id:Int)
POST        /banks/renewKeys/:id                         controllers.Banks.changeSignatureVersionPost(request:Request, id:Int)
GET         /banks/lockBank/:id                          controllers.Banks.lockBankGet(request:Request, id:Int)
POST        /banks/lockBank/:id                          controllers.Banks.lockBankPost(request:Request, id:Int)
GET         /banks/reIni/:id                             controllers.Banks.reIniGet(request:Request, id:Int)
POST        /banks/reIni/:id                             controllers.Banks.reIniPost(request:Request, id:Int)
GET         /banks/iniLetter/:id                         controllers.Banks.showIniLetter(request:Request, id:Int)
GET         /banks/protocol/:id                          controllers.Banks.updateProtocolVersionGet(request:Request, id:Int)
GET         /banks/protocol/:id/:toVersion               controllers.Banks.changeProtocolVersionGet(request:Request, id:Int, toVersion:String)
GET         /banks/protocol_upgrade/:id/:target          controllers.Banks.upgradeProtocolVersionGet(request:Request, id:Int, target:String)
POST        /banks/protocol_upgrade/:id/:target          controllers.Banks.upgradeProtocolVersionPost(request:Request, id:Int, target:String)
POST        /banks/protocol_downgrade/:id/:target        controllers.Banks.downgradeProtocolVersionPost(request:Request, id:Int, target:String)
GET         /banks/add                                   controllers.Banks.createBank(request:Request, name:String = null)
GET         /banks/add/fromlicense                       controllers.Banks.createBankFromLicense(request:Request)
GET         /banks/add/*name                             controllers.Banks.createBank(request:Request, name:String)
POST        /banks/findVersion                           controllers.Banks.determineProtocolVersion(request:Request)
POST        /banks/add                                   controllers.Banks.saveNewBank(request:Request)
GET         /banks/:bankId/movetotenant/:tenantId        controllers.Tenants.moveBankToTenant(request:Request, bankId:Int, tenantId: Int)
POST        /banks/getDefaultSendParams                  controllers.BtfUtils.getDefaultSendParams(request:Request)
POST        /banks/changeDefaultSendParams               controllers.BtfUtils.changeDefaultSendParams(request:Request)
GET         /banks/:id                                   controllers.BankDetails.index(request:Request, id:Integer, tab:String ?="bank")
POST        /banks/:id                                   controllers.BankDetails.submit(request:Request, id:Integer)
GET         /banks/:id/edit                              controllers.BankDetails.indexEditMode(request:Request, id:Integer, tab:String ?="bank")
GET         /banks/:id/copyBank                          controllers.BankDetails.copyBankGet(request:Request, id:Int, tab:String ?="bank")
POST        /banks/:id/copyBank                          controllers.BankDetails.copyBankPost(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/iniLetter                         controllers.BankDetails.showIniLetter(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/lockBank                          controllers.BankDetails.lockBankGet(request:Request, id:Int, tab:String ?="bank")
POST        /banks/:id/lockBank                          controllers.BankDetails.lockBankPost(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/renewKeys                         controllers.BankDetails.changeSignatureVersionGet(request:Request, id:Int, tab:String ?="bank")
POST        /banks/:id/renewKeys                         controllers.BankDetails.changeSignatureVersionPost(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/htdUpdate                         controllers.BankDetails.runHTDUpdate(request:Request, id:Int, tab:String ?="bank")
POST        /banks/:id/updateBankKeys                    controllers.BankDetails.updateBankKeys(request:Request, id:Integer, tab:String ?="bank")
GET         /banks/:id/reIni                             controllers.BankDetails.reIniGet(request:Request, id:Int, tab:String ?="bank")
POST        /banks/:id/reIni                             controllers.BankDetails.reIniPost(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/protocol                          controllers.BankDetails.updateProtocolVersionGet(request:Request, id:Int, tab:String ?="bank")
GET         /banks/:id/protocol/:toVersion               controllers.BankDetails.changeProtocolVersionGet(request:Request, id:Int, toVersion:String, tab:String ?="bank")
GET         /banks/:id/protocol_upgrade/:target          controllers.BankDetails.upgradeProtocolVersionGet(request:Request, id:Int, target:String, tab:String ?="bank")
POST        /banks/:id/protocol_upgrade/:target          controllers.BankDetails.upgradeProtocolVersionPost(request:Request, id:Int, target:String, tab:String ?="bank")
POST        /banks/:id/protocol_downgrade/:target        controllers.BankDetails.downgradeProtocolVersionPost(request:Request, id:Int, target:String, tab:String ?="bank")

# The payment pages
GET         /openpayments                                controllers.OpenPayments.index(request:Request, selection:Boolean ?= false)
GET         /openpayments_sort                           controllers.OpenPayments.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /openpayments_pages                          controllers.OpenPayments.indexWithPage(request:Request, pageNumber:Integer, pageSize:Integer, folderId:Integer)
POST        /openpayments/frombookings                   controllers.OpenPayments.createFromBookings(request:Request, accountId:Integer, statementId:Integer ?=null, pageId:Integer ?=null, folder:Integer ?=null)
POST        /openpayments/fromdti                        controllers.OpenPayments.createFromDti(request:Request, accountId:Integer, statementId:Integer ?=null)
POST        /openpayments_filterForm                     controllers.OpenPayments.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /openpayments_filterForm                     controllers.OpenPayments.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /openpayments/new                            controllers.OpenPayments.newPayment(request:Request, pmtType:String)
POST        /openpayments/savenew                        controllers.OpenPayments.saveNewPayment(request:Request, pmtType:String)
POST        /openpayments/update/:id                     controllers.OpenPayments.update(request:Request, id: Integer)
POST        /openpayments/transformCcu/:id               controllers.OpenPayments.transformToUrgentTransfer(request:Request, id: Integer)
POST        /openpayments/transformCct/:id               controllers.OpenPayments.transformToTransfer(request:Request, id: Integer)
POST        /openpayments/transformCip/:id               controllers.OpenPayments.transformToInstantTransfer(request:Request, id: Integer)
POST        /openpayments/preparesign                    controllers.OpenPayments.prepareSign(request:Request)
POST        /openpayments/:id/preparesign                controllers.OpenPayments.prepareSignPayment(request:Request, id: Integer)
POST        /openpayments/fixandprepare                  controllers.OpenPayments.fixPaymentsAndPrepareSign(request:Request)
POST        /openpayments/:id/fixandprepare              controllers.OpenPayments.fixPaymentsAndPrepareSignPayment(request:Request, id : Integer)
POST        /openpayments/sign                           controllers.OpenPayments.signOrder(request:Request)
POST        /openpayments/duplicate                      controllers.OpenPayments.duplicate(request:Request)
POST        /openpayments/:id/duplicate                  controllers.OpenPayments.duplicatePayment(request:Request, id:Integer)
POST        /openpayments/:id/save                       controllers.OpenPayments.savePayment(request:Request, id:Integer)
POST        /openpayments/save                           controllers.OpenPayments.savePayments(request:Request)
POST        /openpayments/delete                         controllers.OpenPayments.deletePayments(request:Request)
POST        /openpayments/:id/delete                     controllers.OpenPayments.deletePayment(request:Request, id:Integer)
POST        /openpayments/move                           controllers.OpenPayments.moveToFolder(request:Request)
POST        /openpayments/modify                         controllers.OpenPayments.modifyPayments(request:Request)
POST        /openpayments/newfolder                      controllers.OpenPayments.createNewFolder(request:Request)
POST        /openpayments/changefolder/:id               controllers.OpenPayments.changeFolderName(request:Request, id: Integer)
POST        /openpayments/deletefolder/:id               controllers.OpenPayments.deleteFolder(request:Request, id:Integer)
POST        /openpayments/printoverview                  controllers.OpenPayments.printOverview(request:Request)
POST        /openpayments/exportoverview                 controllers.OpenPayments.exportOverview(request:Request)
GET         /openpayments/bicfromiban                    controllers.OpenPayments.getBicFromIban(iban: String)
GET         /openpayments/printHTDReport                 controllers.OpenPayments.printHTDReport(request:Request)
POST        /openpayments/unlockpayments                 controllers.OpenPayments.unlockPayments(request:Request)
GET         /openpayments/:id                            controllers.OpenPayments.payment(request:Request, id: Integer)
GET         /openpayments/:id/edit                       controllers.OpenPayments.paymentEdit(request:Request, id: Integer)
GET         /signedpayments                              controllers.SignedPayments.index(request:Request, selection:Boolean ?= false)
GET         /signedpayments_sort                         controllers.SignedPayments.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /signedpayments_pages                        controllers.SignedPayments.indexWithPage(request:Request, pageNumber:Integer, pageSize:Integer, folderId:Integer)
POST        /signedpayments_filterForm                   controllers.SignedPayments.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /signedpayments_filterForm                   controllers.SignedPayments.filterForm(request:Request, filterActive:Boolean ?=false)
POST        /signedpayments/printoverview                controllers.SignedPayments.printOverview(request:Request)
POST        /signedpayments/exportoverview               controllers.SignedPayments.exportOverview(request:Request)
GET         /signedpayments/protocol/:id                 controllers.SignedPayments.protocol(request:Request, id:Integer)
GET         /signedpayments/printptk/:id                 controllers.SignedPayments.printProtocol(request:Request, id:Integer)
POST        /signedpayments/cancelorders                 controllers.DesOverview.cancelSignedPayments(request:Request)
GET         /signedpayments/repair                       controllers.SignedPayments.repairOverview(request:Request)
GET         /signedpayments/:id                          controllers.SignedPayments.payment(request: Request, id: Int, send:String ?= null)
POST        /signedpayments/newfolder                    controllers.SignedPayments.createNewFolder(request:Request)
POST        /signedpayments/changefolder/:id             controllers.SignedPayments.changeFolderName(request:Request, id: Integer)
POST        /signedpayments/deletefolder/:id             controllers.SignedPayments.deleteFolder(request:Request, id:Integer)
POST        /signedpayments/move                         controllers.SignedPayments.moveToFolder(request:Request)
POST        /payments/saveopen                           controllers.Payments.saveAsOpenPayments(request:Request, paymentContextType:String)
POST        /payments/saveopen/:id                       controllers.Payments.saveAsOpenPayment(request:Request, id:Integer, paymentContextType:String)
POST        /payments/saveperiodic                       controllers.Payments.saveAsPeriodicPayment(request:Request, id:Integer, paymentContextType:String)
POST        /payments/savetemplate                       controllers.Payments.saveAsPaymentTemplate(request:Request, id:Integer, paymentContextType:String)
POST        /payments/print                              controllers.Payments.print(request:Request, paymentContextType:String)
POST        /payments/print/:id                          controllers.Payments.printPayment(request:Request, id:Integer, paymentContextType:String)
GET         /payments/bankname                           controllers.Payments.bankNameForIban(iban:String)
GET         /payments/import                             controllers.Payments.importForm(request:Request, paymentContextType:String ?="OPEN_PAYMENT")
POST        /payments/import                             controllers.Payments.importPayment(request:Request)
POST        /payments/importcsv                          controllers.Payments.importCsvPayment(request:Request, paymentContextType:String ?="OPEN_PAYMENT", bankId:Integer, pmtType:String, folderId:Integer, templateName:String, firstExecution:String, nextExecution:String, lastExecution:String, executionInverval:String, saveRecipient:Boolean, saveOriginator:Boolean, converterFormatId:Integer, fileId:String, encoding:String)
GET         /ws/payments/editcontroller                  controllers.Payments.editPaymentController()
GET         /ws/payments/csvimportcontroller             controllers.Payments.csvImportController()
GET         /periodicpayments                            controllers.PeriodicPayments.index(request:Request, selection:Boolean ?= false)
POST        /periodicpayments_filterForm                 controllers.PeriodicPayments.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /periodicpayments_filterForm                 controllers.PeriodicPayments.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /periodicpayments_sort                       controllers.PeriodicPayments.indexSort(request:Request, sort: Integer, ascending: Boolean)
GET         /periodicpayments_pages                      controllers.PeriodicPayments.indexWithPage(request:Request, pageNumber: Integer, pageSize: Integer, folderId:Integer)
GET         /periodicpayments/new                        controllers.PeriodicPayments.newPayment(request:Request, pmtType:String)
POST        /periodicpayments/create                     controllers.PeriodicPayments.saveNewPayment(request:Request, pmtType:String, paymentContext:String)
POST        /periodicpayments/newfolder                  controllers.PeriodicPayments.createNewFolder(request:Request)
POST        /periodicpayments/changefolder/:id           controllers.PeriodicPayments.changeFolderName(request:Request, id: Integer)
POST        /periodicpayments/deletefolder/:id           controllers.PeriodicPayments.deleteFolder(request:Request, id:Integer)
POST        /periodicpayments/update/:id                 controllers.PeriodicPayments.update(request:Request, id: Integer)
POST        /periodicpayments/generate                   controllers.PeriodicPayments.generateNow(request:Request)
POST        /periodicpayments/:id/generate               controllers.PeriodicPayments.generatePaymentNow(request:Request, id:Integer)
POST        /periodicpayments/move                       controllers.PeriodicPayments.moveToFolder(request:Request)
POST        /periodicpayments/save                       controllers.PeriodicPayments.savePayments(request:Request)
POST        /periodicpayments/:id/save                   controllers.PeriodicPayments.savePayment(request:Request, id:Integer)
POST        /periodicpayments/delete                     controllers.PeriodicPayments.delete(request:Request)
POST        /periodicpayments/:id/delete                 controllers.PeriodicPayments.deletePayment(request:Request, id:Integer)
POST        /periodicpayments/duplicate                  controllers.PeriodicPayments.duplicate(request:Request)
POST        /periodicpayments/:id/duplicate              controllers.PeriodicPayments.duplicatePayment(request:Request, id:Integer)
POST        /periodicpayments/printoverview              controllers.PeriodicPayments.printOverview(request:Request)
POST        /periodicpayments/exportoverview             controllers.PeriodicPayments.exportOverview(request:Request)
GET         /periodicpayments/:id                        controllers.PeriodicPayments.payment(request:Request, id: Integer)
GET         /periodicpayments/:id/edit                   controllers.PeriodicPayments.paymentEdit(request:Request, id: Integer)
GET         /paymenttemplates                            controllers.PaymentTemplates.index(request:Request, selection:Boolean ?= false)
POST        /paymentstemplates_filterForm                controllers.PaymentTemplates.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /paymentstemplates_filterForm                controllers.PaymentTemplates.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /paymenttemplates_sort                       controllers.PaymentTemplates.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /paymenttemplates_page                       controllers.PaymentTemplates.indexPage(request:Request, pageNumber:Integer, pageSize:Integer, folderId:Integer)
GET         /paymenttemplates/new                        controllers.PaymentTemplates.newTemplate(request:Request, pmtType:String)
POST        /paymenttemplates/create                     controllers.PaymentTemplates.create(request:Request, pmtTypeType:String)
POST        /paymenttemplates/generate                   controllers.PaymentTemplates.generate(request:Request)
POST        /paymenttemplates/:id/generate               controllers.PaymentTemplates.generatePayment(request:Request, id:Integer)
POST        /paymenttemplates/delete                     controllers.PaymentTemplates.delete(request:Request)
POST        /paymenttemplates/:id/delete                 controllers.PaymentTemplates.deletePayment(request:Request, id:Integer)
POST        /paymenttemplates/duplicate                  controllers.PaymentTemplates.duplicate(request:Request)
POST        /paymenttemplates/:id/duplicate              controllers.PaymentTemplates.duplicatePayment(request:Request, id:Integer)
POST        /paymenttemplates/update/:id                 controllers.PaymentTemplates.update(request:Request, id:Integer)
POST        /paymenttemplates/newfolder                  controllers.PaymentTemplates.createNewFolder(request:Request)
POST        /paymenttemplates/changefolder/:id           controllers.PaymentTemplates.changeFolderName(request:Request, id: Integer)
POST        /paymenttemplates/deletefolder/:id           controllers.PaymentTemplates.deleteFolder(request:Request, id:Integer)
POST        /paymenttemplates/move                       controllers.PaymentTemplates.moveToFolder(request:Request)
GET         /paymenttemplates/:id                        controllers.PaymentTemplates.details(request:Request, id:Integer)
GET         /paymenttemplates/:id/edit                   controllers.PaymentTemplates.detailsEdit(request:Request, id:Integer)
GET         /originators                                 controllers.Originators.index(request:Request)
GET         /originators_sort                            controllers.Originators.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /originators_pages                           controllers.Originators.indexWithPage(request:Request, pageNumber:Integer, pageSize:Integer)
GET         /originators_tenant                          controllers.Originators.indexWithTenant(request:Request, tenant:Integer)
GET         /originators/new                             controllers.Originators.create(request:Request, type:String?=null)
POST        /originators/create/:type                    controllers.Originators.saveNew(request:Request, type:String)
POST        /originators/update/:id                      controllers.Originators.update(request:Request, id:Integer)
POST        /originators/duplicate                       controllers.Originators.duplicate(request:Request)
POST        /originators/:id/duplicate                   controllers.Originators.duplicateOriginator(request:Request, id:Integer)
POST        /originators/delete                          controllers.Originators.delete(request:Request)
POST        /originators/:id/delete                      controllers.Originators.deleteOriginator(request:Request, id:Integer)
GET         /originators/:id                             controllers.Originators.edit(request:Request, id:Integer)
GET         /originators/:id/edit                        controllers.Originators.editMode(request:Request, id:Integer)
GET         /recipients                                  controllers.Recipients.index(request:Request, onlyMandates:Boolean ?=false)
GET         /recipients_sort                             controllers.Recipients.indexSort(request:Request, sort:Integer, ascending:Boolean, onlyMandates:Boolean ?=false)
GET         /recipients_pages                            controllers.Recipients.indexWithPage(request:Request, pageNumber:Integer, pageSize:Integer, onlyMandates:Boolean ?=false)
GET         /recipients_tenant                           controllers.Recipients.indexWithTenant(request:Request, tenant:Integer, onlyMandates:Boolean)
POST        /recipients_filter                           controllers.Recipients.indexWithFilter(request:Request, active:Boolean, onlyMandates:Boolean)
GET         /recipients_filter                           controllers.Recipients.indexWithFilter(request:Request, active:Boolean, onlyMandates:Boolean)
GET         /recipients/new                              controllers.Recipients.create(request:Request, type:String?=null, mandates:Boolean)
POST        /recipients/create/:type                     controllers.Recipients.saveNew(request:Request, type:String, mandates:Boolean)
POST        /recipients/update/:id                       controllers.Recipients.update(request:Request, id:Integer, mandates:Boolean)
POST        /recipients/duplicate                        controllers.Recipients.duplicate(request:Request, mandates:Boolean)
POST        /recipients/:id/duplicate                    controllers.Recipients.duplicateRecipient(request:Request, mandates:Boolean, id:Integer)
POST        /recipients/delete                           controllers.Recipients.delete(request:Request, mandate:Boolean)
POST        /recipients/:id/delete                       controllers.Recipients.deleteRecipient(request:Request, mandate:Boolean, id:Integer)
POST        /recipients/export                           controllers.Recipients.exportIds(request:Request, mandate:Boolean)
POST        /recipients/:id/export                       controllers.Recipients.exportRecipient(request:Request, mandate:Boolean, id:Integer)
POST        /recipients/:id/convert                      controllers.Recipients.convertDTAZVToSEPA(request:Request, id:Integer)
POST        /recipients/:id/convertsepaforeign           controllers.Recipients.convertDTAZVToSEPAForeign(request:Request, id:Integer)
GET         /recipients/import                           controllers.Recipients.importFile(request:Request, mandate:Boolean)
POST        /recipients/importconfig                     controllers.Recipients.importFileConfig(request:Request, mandate:Boolean)
POST        /recipients/importstore/:type                controllers.Recipients.importFileStore(request:Request, type:String, tenantId:Integer ?= null, fileId:String, mandate:Boolean)
GET         /ws/recipients/csvimportcontroller           controllers.Recipients.csvImportController()
POST        /recipients/reject/:id                       controllers.Recipients.rejectRecipient(request:Request, id:Integer, mandate:Boolean)
POST        /recipients/confirm/:id                      controllers.Recipients.confirmRecipient(request:Request, id:Integer, mandate:Boolean)
POST        /recipients/vopnames                         controllers.Recipients.updateVopNames(request:Request, id: Integer ?= null)
GET         /recipients/checkvopnames                    controllers.Recipients.updateVopNamesPage(request: Request, ids:String = "")
GET         /recipients/checkvopnames/:ids               controllers.Recipients.updateVopNamesPage(request: Request, ids:String)
GET         /recipients/:id                              controllers.Recipients.edit(request:Request, id:Integer, mandates:Boolean)
GET         /recipients/:id/edit                         controllers.Recipients.editMode(request:Request, id:Integer, mandates:Boolean)


# The cashmanagement pages
GET         /cm                                          controllers.CmAccountOverview.index(request:Request)
GET         /cm_sort                                     controllers.CmAccountOverview.index_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm_pagesize                                 controllers.CmAccountOverview.index_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /cm_filter                                   controllers.CmAccountOverview.index_filter(request:Request, active:Boolean = false)
POST        /cm_filter                                   controllers.CmAccountOverview.index_filter(request:Request, active:Boolean = true)
GET         /cm_folder                                   controllers.CmAccountOverview.index_folder(request:Request, folderId:Int)
POST        /cm_newfolder                                controllers.CmAccountOverview.index_newFolder(request:Request)
POST        /cm_renamefolder                             controllers.CmAccountOverview.index_renameFolder(request:Request)
POST        /cm_deletefolder                             controllers.CmAccountOverview.index_deleteFolder(request:Request)
POST        /cm/markasread                               controllers.CmAccountOverview.markStatementsAsRead(request:Request)
POST        /cm/movetofolder                             controllers.CmAccountOverview.moveToFolderPost(request:Request)
POST        /cm/delete                                   controllers.CmAccountOverview.delete(request:Request)
POST        /cm/export                                   controllers.CmAccountOverview.exportAccounts(request: Request)
POST        /cm/exportsingle                             controllers.CmAccountOverview.exportStatements(request: Request)
POST        /cm/runexports                               controllers.CmAccountOverview.runExports(request:Request)
POST        /cm/print                                    controllers.CmAccountOverview.print(request:Request)
POST        /cm/print_overview                           controllers.CmAccountOverview.printOverview(request:Request)
POST        /cm/export_overview                          controllers.CmAccountOverview.exportOverview(request:Request)
GET         /cm/importstatments                          controllers.CmAccountOverview.importStatementsForm(request:Request)
POST        /cm/importstatments                          controllers.CmAccountOverview.importStatements(request:Request)
GET         /cm/balance_sums                             controllers.CmAccountOverview.getBalanceSums(request:Request, selectedAccountIds: String)
GET         /cm/balances                                 controllers.Balances.balances(request:Request, id:Integer = -1)
GET         /cm/balances/:id                             controllers.Balances.balances(request:Request, id:Integer)
GET         /cm/balances/csv/:id                         controllers.Balances.createCSVExport(request:Request, id:Integer)
GET         /cm/balances/recalculate/:id                 controllers.Balances.recalculateValueBalances(request:Request, id:Integer)
GET         /cm/balances_sort                            controllers.Balances.balances_sort(request:Request, id:Integer, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/balances_pagesize                        controllers.Balances.balances_pageSize(request:Request, id:Integer, pageNumber:Integer ?=0, pageSize: Int ?=200)
GET         /cm/balancelists                             controllers.BalanceLists.balancelists(request:Request, valueBalances:Boolean ?=true)
POST        /cm/balancelists                             controllers.BalanceLists.balancelists_form(request:Request, valueBalances:Boolean ?=true)
GET         /cm/balancelists_page                        controllers.BalanceLists.balancelists_page(request:Request, pageNumber: Integer, pageSize: Integer, valueBalances:Boolean ?=true)
GET         /cm/balancelists_sort                        controllers.BalanceLists.balancelists_sort(request:Request, valueBalances:Boolean ?=true, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/balancelists_group                       controllers.BalanceLists.balancelists_group(request:Request, group:Int, valueBalances:Boolean ?= true)
GET         /cm/balancelists/csv                         controllers.BalanceLists.createCSVExport(request:Request, valueBalances:Boolean ?=true)
POST        /cm/balancelists/newgroup                    controllers.BalanceLists.newGroup(request:Request, valueBalances:Boolean ?=true)
POST        /cm/balancelists/editgroup                   controllers.BalanceLists.editGroup(request:Request, valueBalances:Boolean ?=true)
GET         /cm/balancelists/deletegroup                 controllers.BalanceLists.deleteGroup(request:Request, valueBalances:Boolean ?=true)
GET         /cm/bookings                                 controllers.Bookings.bookings(request:Request, id:Integer = -1, year:Integer ?=null, stmt:Integer = null, page:Integer = null, folder: Integer = null, selectedIds: String ?=null)
GET         /cm/bookings/f/:folder                       controllers.Bookings.bookings(request:Request, id:Integer = -1, year:Integer ?=null, stmt:Integer = null, page:Integer = null, folder: Integer, selectedIds: String ?= null)
GET         /cm/bookings/:id                             controllers.Bookings.bookings(request:Request, id:Integer, year:Integer ?=null, stmt:Integer = null, page:Integer = null, folder: Integer = null, selectedIds: String ?= null)
GET         /cm/bookings/:id/:stmt                       controllers.Bookings.bookings(request:Request, id:Integer, year:Integer ?=null, stmt:Integer, page:Integer = null, folder: Integer = null, selectedIds: String ?= null)
GET         /cm/bookings/:id/:stmt/:page                 controllers.Bookings.bookings(request:Request, id:Integer, year:Integer ?=null, stmt:Integer, page:Integer, folder: Integer = null, selectedIds: String ?= null)
GET         /cm/bookings_sort                            controllers.Bookings.bookings_sort(request:Request, id:Integer, year:Integer ?=null, stmt:Integer ?=null, page:Integer ?=null, folder: Integer ?=null, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/bookings_pagesize                        controllers.Bookings.bookings_pageSize(request:Request, id:Integer, year:Integer ?=null, stmt:Integer ?=null, page:Integer ?=null, folder: Integer ?=null, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /cm/bookings_filterForm                      controllers.Bookings.bookings_filterForm(request:Request, id:Integer, year:Integer ?=null, stmt:Integer ?=null, page:Integer ?=null, folder: Integer ?=null, filterActive:Boolean ?=false, selectedIds: String ?= null)
GET         /cm/bookings_filterForm                      controllers.Bookings.bookings_filterForm(request:Request, id:Integer, year:Integer ?=null, stmt:Integer ?=null, page:Integer ?=null, folder: Integer ?=null, filterActive:Boolean ?=false, selectedIds: String ?= null)
POST        /cm/bookings_print                           controllers.Bookings.printBookings(request:Request)
POST        /cm/bookings_printall                        controllers.Bookings.printAllBookings(request:Request, printDtiOnly:Boolean?=false, accountId:Integer ?=null, year:Integer ?=null, statementId:Integer ?=null, pageId:Integer ?=null, folderId:Integer ?=null, bookingId:Integer ?=null)
GET         /cm/bookings_deletestmt                      controllers.Bookings.deleteStatement(request:Request, accId:Integer, year:Integer ?=null, stmtId:Integer)
GET         /cm/bookings_deletepage                      controllers.Bookings.deletePage(request:Request, accId:Integer, year:Integer ?=null, stmtId:Integer, pageId:Integer)
GET         /cm/bookings_printstmt                       controllers.Bookings.printStatement(request:Request, accId:Integer, year:Integer ?=null, stmtId:Integer)
GET         /cm/bookings_printpage                       controllers.Bookings.printPage(request:Request, accId:Integer, year:Integer ?=null, stmtId:Integer, pageId:Integer)
POST        /cm/bookings_export                          controllers.Bookings.exportBookings(request:Request, accId:Integer ?=null, year:Integer ?=null, stmtId:Integer ?=null, pageId:Integer ?=null, folderId:Integer ?=null)
GET         /cm/dti                                      controllers.DtiView.dti(request:Request, id:Integer = -1, stmt:Integer = null, selectedIds: String ?= null)
GET         /cm/dti/b/:id                                controllers.DtiView.dtiByBooking(request:Request, id:Integer)
GET         /cm/dti/:id                                  controllers.DtiView.dti(request:Request, id:Integer, stmt:Integer = null, selectedIds: String ?= null)
GET         /cm/dti/:id/:stmt                            controllers.DtiView.dti(request:Request, id:Integer, stmt:Integer, selectedIds: String ?= null)
GET         /cm/dti_sort                                 controllers.DtiView.dti_sort(request:Request, id:Integer, stmt:Integer ?=null, bookingId:Integer ?=null, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/dti_pagesize                             controllers.DtiView.dti_pageSize(request:Request, id:Integer, stmt:Integer ?=null, bookingId:Integer ?=null, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /cm/dti_filterForm                           controllers.DtiView.dti_filterForm(request:Request, id:Integer, stmt:Integer ?=null, bookingId:Integer ?=null, filterActive:Boolean ?=false)
GET         /cm/dti_filterForm                           controllers.DtiView.dti_filterForm(request:Request, id:Integer, stmt:Integer ?=null, bookingId:Integer ?=null, filterActive:Boolean ?=false)
POST        /cm/dti_export                               controllers.Bookings.exportDtiBookings(request:Request, accId:Integer ?=null, stmtId:Integer ?=null, bookingId:Integer ?=null)
GET         /cm/conversions                              controllers.Conversions.index(request:Request)
GET         /cm/conversions_sort                         controllers.Conversions.index_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/conversions_pagesize                     controllers.Conversions.index_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /cm/conversions_tenant                       controllers.Conversions.index_Tenant(request:Request, tenantId:Int ?= -1)
GET         /cm/conversions/new                          controllers.Conversions.newConversion(request:Request)
POST        /cm/conversions/new                          controllers.Conversions.postForm(request:Request, id:Integer = null)
GET         /cm/conversions/edit/                        controllers.Conversions.edit(request:Request, id:Integer = null)
GET         /cm/conversions/edit/:id                     controllers.Conversions.edit(request:Request, id:Integer)
GET         /cm/conversions/edit/:id/editMode            controllers.Conversions.editEditMode(request:Request, id:Integer)
POST        /cm/conversions/edit/:id                     controllers.Conversions.postForm(request:Request, id:Integer)
GET         /cm/conversions/date/                        controllers.Conversions.getExampleDate(request:Request, pattern:String = null)
GET         /cm/conversions/date/:pattern                controllers.Conversions.getExampleDate(request:Request, pattern:String)
POST        /cm/conversions/ask                          controllers.Conversions.askDelete(request:Request)
POST        /cm/conversions/:id/ask                      controllers.Conversions.askDeleteConversion(request:Request, id:Integer)
POST        /cm/conversions/delete                       controllers.Conversions.delete(request:Request)
POST        /cm/conversions/duplicate                    controllers.Conversions.duplicate(request:Request)
POST        /cm/conversions/:id/duplicate                controllers.Conversions.duplicateId(request:Request, id:Integer)
GET         /cm/conversions/export/:idsList              controllers.Conversions.exportConversions(request:Request, idsList:String)
GET         /cm/conversions/import                       controllers.Conversions.importConversion(request:Request)
POST        /cm/conversions/import                       controllers.Conversions.importFile(request:Request)
GET         /cm/conversions/create_default               controllers.Conversions.defaultConversions(request:Request, french:Boolean ?=false)
GET         /cm/autexports                               controllers.AutomaticExports.index(request:Request)
GET         /cm/autexports_sort                          controllers.AutomaticExports.index_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/autexports_pagesize                      controllers.AutomaticExports.index_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /cm/autexports_tenant                        controllers.AutomaticExports.index_tenant(request:Request, tenantId:Int ?= -1)
GET         /cm/autexports/new                           controllers.AutomaticExports.newAutExport(request:Request)
POST        /cm/autexports/new                           controllers.AutomaticExports.postForm(request:Request, id:Integer = null)
GET         /cm/autexports/edit/:id                      controllers.AutomaticExports.edit(request:Request, id:Integer)
GET         /cm/autexports/edit/:id/editMode             controllers.AutomaticExports.editMode(request:Request, id:Integer)
POST        /cm/autexports/edit/:id                      controllers.AutomaticExports.postForm(request:Request, id:Integer)
GET         /cm/autexports/filename/                     controllers.AutomaticExports.getExampleFileName(pattern:String = null, exportname:String = null)
GET         /cm/autexports/filename/:pattern             controllers.AutomaticExports.getExampleFileName(pattern:String, exportname:String ?= null)
POST        /cm/autexports/activate                      controllers.AutomaticExports.activate(request:Request, activate:Boolean = true)
POST        /cm/autexports/deactivate                    controllers.AutomaticExports.activate(request:Request, activate:Boolean = false)
POST        /cm/autexports/:id/activate                  controllers.AutomaticExports.activateAutomaticExport(request:Request, activate:Boolean ?= true, id:Integer)
POST        /cm/autexports/:id/deactivate                controllers.AutomaticExports.activateAutomaticExport(request:Request, activate:Boolean ?= false, id:Integer)
POST        /cm/autexports/delete                        controllers.AutomaticExports.delete(request:Request)
POST        /cm/autexports/:id/delete                    controllers.AutomaticExports.deleteAutomaticExport(request:Request, id:Integer)
POST        /cm/autexports/files                         controllers.AutomaticExports.filesByID(request:Request)
GET         /cm/autexports/files                         controllers.AutomaticExports.files(request:Request)
POST        /cm/autexports/files/filter                  controllers.AutomaticExports.filesFilter(request:Request, active:Boolean ?=true)
GET         /cm/autexports/files/filter                  controllers.AutomaticExports.filesFilter(request:Request, active:Boolean ?=false)
GET         /cm/autexports/files_tenant                  controllers.AutomaticExports.files_tenant(request:Request, tenant:Integer)
GET         /cm/autexports/files_sort                    controllers.AutomaticExports.files_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/autexports/files_pagesize                controllers.AutomaticExports.files_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /cm/autexports/files/zipfile                 controllers.AutomaticExports.getZipFile(request:Request)
POST        /cm/autexports/files/deleteMore              controllers.AutomaticExports.deleteFile(request:Request)
POST        /cm/autexports/files/:id/delete              controllers.AutomaticExports.deleteFileSingle(request:Request, id:Integer)
GET         /cm/autexports/files/:id                     controllers.AutomaticExports.downloadFile(request:Request, id:Integer)
GET         /cm/pdfstatements                            controllers.PDFStatements.index(request:Request)
GET         /cm/pdfstatements_sort                       controllers.PDFStatements.index_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /cm/pdfstatements_pagesize                   controllers.PDFStatements.index_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /cm/pdfstatements/filter                     controllers.PDFStatements.filter(request:Request, active:Boolean ?=true)
GET         /cm/pdfstatements/filter                     controllers.PDFStatements.filter(request:Request, active:Boolean ?=false)
GET         /cm/pdfstatements/file/:id                   controllers.PDFStatements.file(request:Request, id:Integer)
POST        /cm/pdfstatements/delete                     controllers.PDFStatements.delete(request:Request)
GET         /cm/pdfstatements/exportdir                  controllers.PDFStatements.exportDirForm(request:Request)
POST        /cm/pdfstatements/exportdir                  controllers.PDFStatements.setExportDir(request:Request)
GET         /cm/pdfstatements/example/                   controllers.PDFStatements.getExampleFileName(pattern:String = null)
GET         /cm/pdfstatements/example/:pattern           controllers.PDFStatements.getExampleFileName(pattern:String)
POST        /cm/pdfstatements/zipfile                    controllers.PDFStatements.getZipFile(request:Request)

# The orders pages
GET         /desoverview                                 controllers.DesOverview.index(request:Request)
GET         /desoverview_sort                            controllers.DesOverview.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /desoverview_pagesize                        controllers.DesOverview.indexWithPage(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /desoverview/checkvopnames/:ids              controllers.DesOverview.updateVopNamesPage(request: Request, ids:String)
GET         /desoverview/fetch                           controllers.DesOverview.fetchDesOverview(request:Request)
POST        /desoverview/filter                          controllers.DesOverview.filter(request:Request, active:Boolean ?=true)
GET         /desoverview/filter                          controllers.DesOverview.filter(request:Request, active:Boolean ?=false)
GET         /desoverview/exportcsv/:id                   controllers.DesOverview.exportOverview(request:Request, id:Integer)
GET         /desoverview/details/:id                     controllers.DesOverview.orderDetails(request:Request, id:Integer)
GET         /desoverview/displayfile/:id                 controllers.DesOverview.fetchDisplayFile(request:Request, id:Integer)
POST        /desoverview/sign/:id                        controllers.DesOverview.signDesOrder(request:Request, id:Integer)
POST        /desoverview/cancel/:id                      controllers.DesOverview.cancelDesOrder(request:Request, id:Integer)
POST        /desoverview/prepareorders                   controllers.DesOverview.prepareDesOperation(request:Request, operation:String, showOrder:Int ?= -1)
POST        /desoverview/preparecancelsent               controllers.DesOverview.prepareCancelSent(request:Request)
POST        /desoverview/preparecancelsigned             controllers.DesOverview.prepareCancelSignedPayments(request:Request)
POST        /desoverview/preparecancelsigned/:id         controllers.DesOverview.prepareCancelSignedPayment(request:Request, id:Integer)
POST        /desoverview/signorders                      controllers.DesOverview.signDesOrders(request:Request)
POST        /desoverview/cancelorders                    controllers.DesOverview.cancelDesOrders(request:Request)
GET         /desoverview/payment/:id                     controllers.DesOverview.paymentDetails(request:Request, id:Integer, pageNumber:Integer, originalOrders:String, operation:String)
GET         /desoverview/orderpayments/:ids              controllers.DesOverview.loadPayments(request:Request, ids : String)
GET         /desoverview/fetchpayment                    controllers.DesOverview.fetchPaymentDetails(request:Request, id:Integer)
GET         /desoverview/print/:ids                      controllers.DesOverview.print(request:Request, ids:String)
GET         /desoverview/save/:ids                       controllers.DesOverview.save(request:Request, ids:String)
GET         /deshistory                                  controllers.DesHistory.index(request:Request, signed:Boolean ?= true)
GET         /deshistory/exportcsv/:id                    controllers.DesHistory.exportHistory(request:Request, signed:Boolean ?= true, id:Integer)
GET         /deshistory_sort                             controllers.DesHistory.indexSort(request:Request, sort:Integer, ascending:Boolean, signed:Boolean ?=true)
GET         /deshistory_page                             controllers.DesHistory.indexPage(request:Request, pageNumber:Integer, pageSize:Integer, signed:Boolean ?=true)
POST        /deshistory/filtersigned                     controllers.DesHistory.filterSigned(request:Request, active:Boolean ?=true)
GET         /deshistory/filtersigned                     controllers.DesHistory.filterSigned(request:Request, active:Boolean ?=false)
POST        /deshistory/filterrejected                   controllers.DesHistory.filterRejected(request:Request, active:Boolean ?=true)
GET         /deshistory/filterrejected                   controllers.DesHistory.filterRejected(request:Request, active:Boolean ?=false)
GET         /deshistory/print/:ids                       controllers.DesHistory.print(request:Request, signed:Boolean, ids:String)
GET         /deshistory/printprotocol/:id                controllers.DesHistory.printProtocol(request:Request, signed:Boolean, id:Integer)
GET         /deshistory/save/:ids                        controllers.DesHistory.save(request:Request, signed:Boolean, ids:String)
GET         /deshistory/paymentdetails/:id               controllers.DesHistory.paymentDetails(request:Request, signed:Boolean, id:Integer, pageNumber:Integer)
GET         /deshistory/:id                              controllers.DesHistory.details(request:Request, signed:Boolean ?=true, id:Integer)
GET         /fetched                                     controllers.Fetched.index(request:Request)
GET         /fetched_tenant                              controllers.Fetched.index_tenant(request:Request, tenant:Integer)
GET         /fetched_sort                                controllers.Fetched.index_sort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /fetched_pagesize                            controllers.Fetched.index_pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /fetched/filter                              controllers.Fetched.filter(request:Request, active:Boolean ?=true)
GET         /fetched/filter                              controllers.Fetched.filter(request:Request, active:Boolean ?=false)
GET         /fetched/file/:id                            controllers.Fetched.getFetchedFile(request:Request, id:Integer)
GET         /fetched/print/:id                           controllers.Fetched.print(request:Request, id:Integer)
POST        /fetched/zipfile                             controllers.Fetched.getZipFile(request:Request)
POST        /fetched/delete                              controllers.Fetched.delete(request:Request)
GET         /fetched/:id/delete                          controllers.Fetched.deleteFetchedFile(request:Request, id:Integer)
GET         /fetched/fetch                               controllers.Fetched.fetchFileForm(request:Request)
POST        /fetched/fetch                               controllers.Fetched.fetchFile(request:Request)
POST        /fetched/reprocess                           controllers.Fetched.restartPostProcessing(request:Request)
GET         /sent                                        controllers.Sent.index(request:Request)
GET         /sent_tenant                                 controllers.Sent.index_tenant(request:Request, tenant:Integer)
GET         /sent/sort                                   controllers.Sent.indexSort(request:Request, sort:Int ?= -1 , ascending:Boolean ?=true)
GET         /sent/pagesize                               controllers.Sent.indexPageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /sent/filter                                 controllers.Sent.filter(request:Request, active:Boolean ?=true)
GET         /sent/filter                                 controllers.Sent.filter(request:Request, active:Boolean ?=false)
GET         /sent/update                                 controllers.Sent.update(request:Request)
POST        /sent/send                                   controllers.Sent.sendFile(request:Request,csvMd5Hash:String)
GET         /sent/send                                   controllers.Sent.sendFileForm(request:Request)
POST        /sent/callbackOrders                         controllers.Sent.callbackOrders(request:Request)
POST        /sent/prepareCallbackOrders                  controllers.Sent.prepareCallbackOrders(request:Request, context:String)
POST        /sent/checksend                              controllers.Sent.prepareSendFile(request:Request)
POST        /sent/checksend/csv                          controllers.Sent.prepareSendFromCsvOrder(request:Request, bankId:Integer, pmtTypeName:String, orderOrFileType:String, converterFormatId:Integer, md5:String, fileId:String, encoding:String, originalFileName:String)
POST        /sent/checksend/bank                         controllers.Sent.prepareSendSelectBank(request:Request, id:String)
POST        /sent/cancelorders                           controllers.DesOverview.cancelSentOrders(request:Request, id:Integer ?= -1)
GET         /ws/sent/sendcontroller                      controllers.Sent.signPaymentsController()
GET         /sent/protocol/:id                           controllers.Sent.protocol(request:Request, id:Integer)
GET         /sent/printprotocol/:id                      controllers.Sent.printProtocol(request:Request, id:Integer)
GET         /sent/printticket/:id                        controllers.Sent.printTicket(request:Request, id:String)
GET         /sent/print/:id                              controllers.Sent.printOrder(request:Request, id:Integer)
POST        /send/print                                  controllers.Sent.printOrders(request:Request)
GET         /sent/save/:idsString                        controllers.Sent.save(request:Request, idsString:String)
POST        /sent/exportOverview                         controllers.Sent.exportOverview(request:Request)
GET         /sent/details/:id                            controllers.Sent.orderDetails(request:Request, id:Integer)
GET         /sent/paymentdetails/:id                     controllers.Sent.paymentDetails(request:Request, id : Integer, pageNumber:Integer)
GET         /sent/paymentdetails/exportcsv/:id           controllers.Sent.exportSend(request:Request, id:Integer)
GET         /notifications                               controllers.Notifications.index(request:Request)
POST        /notifications/filter                        controllers.Notifications.filter(request:Request, active:Boolean ?=true)
GET         /notifications/filter                        controllers.Notifications.filter(request:Request, active:Boolean ?=false)
GET         /notifications_sort                          controllers.Notifications.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /notifications_page                          controllers.Notifications.indexPage(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /notifications/detailpage                    controllers.Notifications.detailPage(request:Request, id:Integer, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /notifications/detailsort                    controllers.Notifications.detailSort(request:Request, id:Integer, sort:Integer, ascending:Boolean)
GET         /notifications/detailfilt                    controllers.Notifications.detailFilter(request:Request, id:Integer, filter:String)
GET         /notifications/fetch                         controllers.Notifications.fetch(request:Request)
GET         /notifications/fetchDetails/:id              controllers.Notifications.fetchDetails(request:Request, id:Integer)
GET         /notifications/details/:id                   controllers.Notifications.getDetails(request:Request, id:Integer)
POST        /notifications/delete                        controllers.Notifications.delete(request:Request)
GET         /notifications/:id/delete                    controllers.Notifications.deleteNotification(request:Request, id:Integer)
GET         /notifications/import                        controllers.Notifications.importForm(request:Request)
GET         /notifications/file/:id                      controllers.Notifications.file(request:Request, id:Integer)
GET         /notifications/print/:id                     controllers.Notifications.print(request:Request, id:Integer)
POST        /notifications/upload                        controllers.Notifications.uploadChunk(request:Request)
GET         /notifications/upload                        controllers.Notifications.uploadDone(request:Request, numberOfFiles:Integer)
GET         /notifications/updateVopNames                controllers.Notifications.updateVopNamesPage(request:Request, notificationId:Integer)

#The AWV pages
GET         /awv/notifications                           controllers.Awv.notifications(request:Request)
GET         /awv/notifications_sort                      controllers.Awv.notificationsSort(request:Request, sort:Integer, ascending:Boolean)
GET         /awv/notifications_page                      controllers.Awv.notificationsPage(request:Request, page:Integer, pageSize:Integer)
GET         /awv/notifications/new/:type                 controllers.Awv.newNotification(request:Request, type:String)
POST        /awv/notifications/new/:type                 controllers.Awv.postNewNotification(request:Request, type:String)
POST        /awv/notifications/report/:month             controllers.Awv.createReportFile(request:Request, month:String)
POST        /awv/notifications/delete                    controllers.Awv.deleteNotifications(request:Request)
POST        /awv/notifications/:id/delete                controllers.Awv.deleteNotification(request:Request, id:Integer)
POST        /awv/notifications/cancel                    controllers.Awv.createCancellation(request:Request)
GET         /awv/notifications/:id/cancel                controllers.Awv.createCancellationSingle(request:Request, id:Integer)
GET         /awv/notifications/changetype                controllers.Awv.changeNotificationType(request:Request, id:Integer, newType:String)
POST        /awv/notifications/changetype                controllers.Awv.postChangeNotificationType(request:Request, id:Integer, newType:String)
GET         /awv/notifications/servicecodes              controllers.Awv.serviceCodes(request:Request, entryType:String, category: Integer, search:String)
GET         /awv/notifications/warecode                  controllers.Awv.wareCodeNames(request:Request, search:String)
POST        /awv/notifications/fromsigned                controllers.Awv.createFromSignedPayments(request:Request)
POST        /awv/notifications/fromsigned/:id            controllers.Awv.createFromSignedPayment(request:Request, id:Integer)
POST        /awv/notifications/frombookings              controllers.Awv.createFromBookings(request:Request, accountId:Integer, statementId:Integer ?=null, pageId:Integer ?=null, folder:Integer ?=null)
POST        /awv/notifications/fromdti                   controllers.Awv.createFromDti(request:Request, accountId:Integer, statementId:Integer ?=null)
GET         /awv/notifications/:id                       controllers.Awv.notification(request:Request, id:Integer)
GET         /awv/notifications/:id/edit                  controllers.Awv.notificationEdit(request:Request, id:Integer)
POST        /awv/notifications/:id                       controllers.Awv.postNotification(request:Request, id:Integer)
GET         /awv/participants                            controllers.Awv.participants(request:Request)
GET         /awv/participants_sort                       controllers.Awv.participantsSort(request:Request, sort:Integer, ascending:Boolean)
GET         /awv/participants_page                       controllers.Awv.participantsPage(request:Request, page:Integer, pageSize:Integer)
GET         /awv/participants_tenant                     controllers.Awv.participantsTenant(request:Request, tenantId:Integer)
GET         /awv/participants/new                        controllers.Awv.newParticipant(request:Request, post:Boolean = false)
POST        /awv/participants/new                        controllers.Awv.newParticipant(request:Request, post:Boolean = true)
POST        /awv/participants/delete                     controllers.Awv.deleteParticipants(request:Request)
POST        /awv/participants/:id/delete                 controllers.Awv.deleteParticipant(request:Request, id:Integer)
GET         /awv/participants/:id                        controllers.Awv.participant(request:Request, id:Integer)
GET         /awv/participants/:id/edit                   controllers.Awv.participantEdit(request:Request, id:Integer)
POST        /awv/participants/:id                        controllers.Awv.postParticipant(request:Request, id:Integer)
GET         /awv/update_notifications                    controllers.Awv.update(request:Request)

# The start pages
GET         /index_filter                                controllers.Application.usersFilter(request:Request, filterActive:Boolean = false)
POST        /index_filter                                controllers.Application.usersFilter(request:Request, filterActive:Boolean = true)
GET         /index/fetch_desoverview                     controllers.Application.fetchDesOverview(request:Request)
GET         /sort                                        controllers.Application.usersSort(request:Request, sort:Int ?= -1, ascending:Boolean ?= true)
GET         /page                                        controllers.Application.usersWithPage(request:Request, pageNumber:Int ?=0, pageSize:Int ?=200)
GET         /bookbalance                                 controllers.Application.handleAccountTableBookingBalance(request:Request)
GET         /bookbalance/page                            controllers.Application.accountsWithPage(request:Request, pageNumber: Integer, pageSize: Integer, valueBalances:Boolean ?= false)
GET         /bookbalance/sort                            controllers.Application.accountsWithSort(request:Request, valueBalances:Boolean ?= false, sort:Int ?= -1, ascending:Boolean ?= true)
GET         /valueBalance                                controllers.Application.handleAccountTableValueBalance(request:Request)
GET         /valuebalance/page                           controllers.Application.accountsWithPage(request:Request, pageNumber: Integer, pageSize: Integer, valueBalances:Boolean ?= true)
GET         /valuebalance/sort                           controllers.Application.accountsWithSort(request:Request, valueBalances:Boolean ?= true, sort:Int ?= -1, ascending:Boolean ?= true)
POST        /register_user_notification                  controllers.Application.registerUserNotification(request:Request)

# The settings pages
GET         /accounts                                    controllers.Accounts.index(request:Request)
GET         /accounts_tenant                             controllers.Accounts.index_tenant(request:Request, tenant:Integer)
GET         /accounts_sort                               controllers.Accounts.indexSort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true)
GET         /accounts_page                               controllers.Accounts.indexWithPage(request:Request, pageNumber:Int ?=0, pageSize:Int ?=200)
GET         /accounts/filter                             controllers.Accounts.indexWithFilter(request:Request, active:Boolean=false)
POST        /accounts/filter                             controllers.Accounts.indexWithFilter(request:Request, active:Boolean=true)
GET         /accounts/new/:type                          controllers.Accounts.create(request:Request, type:String)
POST        /accounts/calcIban/:type                     controllers.Accounts.calculateIban(request:Request, type:String, newAccount:Boolean, id: Int, context:String)
POST        /accounts/calcBic/:type                      controllers.Accounts.calculateBic(request:Request, type:String, newAccount:Boolean, id: Int, context:String)
POST        /accounts/new/:type                          controllers.Accounts.saveNew(request:Request, type:String)
POST        /accounts/deleteQuestion                     controllers.Accounts.deleteQuestion(request:Request)
POST        /accounts/:id/deleteQuestion                 controllers.Accounts.deleteSingleAccountQuestion(request:Request, id:Integer)
POST        /accounts/delete                             controllers.Accounts.delete(request:Request)
GET         /accounts/:id                                controllers.Accounts.view(request:Request, id:Integer, context:String, tab:String ?=null)
GET         /accounts/:id/edit                           controllers.Accounts.edit(request:Request, id:Integer, context:String, tab:String ?=null)
POST        /accounts/:id                                controllers.Accounts.update(request:Request, id:Integer, type:String ?=null, context:String)
GET         /users                                       controllers.Users.index(request:Request)
GET         /users_sort                                  controllers.Users.indexSort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true)
GET         /users_page                                  controllers.Users.indexWithPage(request:Request, pageNumber:Int ?=0, pageSize:Int ?=200)
GET         /users_tenant                                controllers.Users.switchTenant(request:Request, tenantId:Integer)
GET         /users_exportoverview                        controllers.Users.exportOverview(request:Request)
GET         /users_filter                                controllers.Users.index_filter(request:Request, active:Boolean = false)
POST        /users_filter                                controllers.Users.index_filter(request:Request, active:Boolean = true)
GET         /users/new                                   controllers.Users.create(request:Request)
GET         /users/clone/:id                             controllers.Users.cloneUserinDetail(request:Request,id:Integer)
GET         /users/cloneuser                             controllers.Users.cloneUser(request:Request)
GET         /users/newBankAdmin                          controllers.Users.createBankAdmin(request:Request)
POST        /users/newBankAdmin                          controllers.Users.saveBankAdmin(request:Request)
GET         /users/new_tenants                           controllers.Users.createForTenants(request:Request)
POST        /users/new_tenants                           controllers.Users.createForTenants(request:Request)
POST        /users/savenew                               controllers.Users.saveNew(request:Request, ids: String)
POST        /users/saveimport                            controllers.Users.saveImport(request:Request, ids: String)
POST        /users/update/:id                            controllers.Users.update(request:Request, id: Integer)
POST        /users/delete                                controllers.Users.delete(request:Request)
POST        /users/:id/delete                            controllers.Users.deleteUser(request:Request, id:Integer)
GET         /users/import                                controllers.Users.createImport(request:Request)
GET         /users/import_tenants                        controllers.Users.importForTenants(request:Request)
POST        /users/import_tenants                        controllers.Users.importForTenants(request:Request)
GET         /users/updatelicense/:id                     controllers.Users.updateLicense(request:Request, id:Integer, tab:String ?="tabgeneral")
GET         /users/reseterror/:id                        controllers.Users.resetErrorCounter(request:Request, id:Integer, redirectToEditUserPage:Boolean ?=false, tab:String ?="tabgeneral")
POST        /users/resetpassword                         controllers.Users.resetUser(request:Request, redirectToEditUserPage:Boolean ?=false, tab:String ?="tabgeneral")
POST        /users/locklogin                             controllers.Users.lockLogin(request:Request, redirectToEditUserPage:Boolean ?=false, tab:String ?="tabgeneral")
GET         /users/:id                                   controllers.Users.edit(request:Request, id: Integer, tab:String ?="tabgeneral")
GET         /users/:id/edit                              controllers.Users.editMode(request:Request, id: Integer, tab:String ?="tabgeneral")
GET         /users/impersonate/:id                       controllers.Users.impersonate(request:Request, id: Integer)
GET         /fetchschedule                               controllers.FetchSchedule.index(request:Request)
GET         /fetchschedule_sort                          controllers.FetchSchedule.indexSort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true)
GET         /fetchschedule_tenant                        controllers.FetchSchedule.index_tenant(request:Request, tenantId:Int ?= -1)
GET         /fetchschedule_pagesize                      controllers.FetchSchedule.indexPageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /fetchschedule/new                           controllers.FetchSchedule.newSchedulerForm(request:Request)
POST        /fetchschedule/new                           controllers.FetchSchedule.newScheduler(request:Request)
POST        /fetchschedule/update/:id                    controllers.FetchSchedule.update(request:Request, id:Integer)
POST        /fetchschedule/delete                        controllers.FetchSchedule.delete(request:Request)
GET         /fetchschedule/:id/delete                    controllers.FetchSchedule.deleteSchedule(request:Request, id:Integer)
GET         /fetchschedule/fetch                         controllers.FetchSchedule.fetch(request:Request)
GET         /fetchschedule/:id/fetch                     controllers.FetchSchedule.fetchSchedule(request:Request, id:Integer)
GET         /fetchschedule/reschedule/:id                controllers.FetchSchedule.reschedule(request:Request, id:Integer)
GET         /fetchschedule/resetschedulers               controllers.FetchSchedule.resetSchedulers(request:Request)
GET         /fetchschedule/adjustUsers                   controllers.FetchSchedule.adjustAssignedUsers(request:Request, tenantId:Integer ?= null)
GET         /fetchschedule/example/                      controllers.FetchSchedule.getExampleExportDir(pattern:String = null)
GET         /fetchschedule/example/:pattern              controllers.FetchSchedule.getExampleExportDir(pattern:String)
GET         /fetchschedule/filter                        controllers.FetchSchedule.index_filter(request:Request, active:Boolean = false)
POST        /fetchschedule/filter                        controllers.FetchSchedule.index_filter(request:Request, active:Boolean = true)
POST        /fetchschedule/createMissingSchedules        controllers.FetchSchedule.createMissingSchedules(request: Request)
GET         /fetchschedule/createMissingSchedules        controllers.FetchSchedule.createMissingSchedulesPage(request: Request, ids:String = "", tenantId:Integer ?= null)
GET         /fetchschedule/createMissingSchedules/:ids   controllers.FetchSchedule.createMissingSchedulesPage(request: Request, ids:String, tenantId:Integer ?= null)
GET         /fetchschedule/:id                           controllers.FetchSchedule.edit(request:Request, id:Integer)
GET         /fetchschedule/:id/edit                      controllers.FetchSchedule.editMode(request:Request, id:Integer)
GET         /preferences                                 controllers.Preferences.showPreferences(request:Request)
POST        /preferences/defaults                        controllers.Preferences.storeDefaultPreferences(request:Request)
GET         /preferences/defaults                        controllers.Preferences.loadDefaultPreferences(request:Request)
POST        /preferences                                 controllers.Preferences.updatePreferences(request:Request)
GET         /settings                                    controllers.Preferences.showAdminPreferences(request:Request, tenantId:Integer ?= null)
GET         /settings/defaults                           controllers.Preferences.loadDefaultAdminPreferences(request:Request, tenantId:Integer ?= null)
POST        /settings                                    controllers.Preferences.updateAdminPreferences(request:Request, tenantId:Integer ?= null)
GET         /settings/cleanuptransfer                    controllers.Preferences.cleanupTransfers(request:Request)
GET         /settings/cleanupdes                         controllers.Preferences.cleanupDes(request:Request)
GET         /settings/cleanupcm                          controllers.Preferences.cleanupCm(request:Request)
POST        /settings/changepassword                     controllers.Preferences.changePassword(request:Request)
GET         /settings/unlockallpayments                  controllers.Preferences.unlockAllPayments(request:Request)
GET         /settings/migratedb                          controllers.DatabaseMigration.form(request:Request)
POST        /settings/migratedb/run                      controllers.DatabaseMigration.execute(request:Request)
GET         /settings/migratedb/status                   controllers.DatabaseMigration.status()
GET         /settings/sql                                controllers.DatabaseMigration.query(request:Request)
POST        /settings/executesql                         controllers.DatabaseMigration.executeQuery(request:Request)
GET         /settings/reorganizedb                       controllers.DatabaseMigration.reorganize(request:Request)
GET         /folders                                     controllers.Folders.index(request:Request)
GET         /folders_tenant                              controllers.Folders.index_tenant(request:Request, tenant:Integer)
GET         /folders_sort                                controllers.Folders.indexSort(request:Request, sort:Integer ?= -1, ascending:Boolean ?= true)
GET         /folders_pagesize                            controllers.Folders.indexPage(request:Request, pageNumber:Integer ?= 0, pageSize:Int ?= 200)
GET         /folders/new                                 controllers.Folders.newFolder(request:Request, post:Boolean=false)
POST        /folders/new                                 controllers.Folders.newFolder(request:Request, post:Boolean=true)
POST        /folders/delete                              controllers.Folders.delete(request:Request)
GET         /folders/files                               controllers.Folders.listFiles(request:Request)
GET         /folders/files_sort                          controllers.Folders.listFilesSort(request:Request, sort:Integer ?= -1, ascending:Boolean ?= true)
GET         /folders/files_page                          controllers.Folders.listFilesPage(request:Request, pageNumber:Integer ?= 0, pageSize:Int ?= 200)
POST        /folders/files/create                        controllers.Folders.createBankOrders(request:Request)
POST        /folders/files/delete                        controllers.Folders.deleteFiles(request:Request)
POST        /folders/files/send                          controllers.Folders.sendFiles(request:Request)
POST        /folders/upload/:id                          controllers.Folders.uploadChunk(request:Request, id:Integer)
GET         /folders/upload/:id/:dzuuid                  controllers.Folders.uploadDone(request:Request, id:Integer, dzuuid:String, fileName:String ?=null)
GET         /folders/:id                                 controllers.Folders.edit(request:Request, id:Integer, post:Boolean=false)
POST        /folders/:id                                 controllers.Folders.edit(request:Request, id:Integer, post:Boolean=true)
GET         /folders/:id/edit                            controllers.Folders.editMode(request:Request, id:Integer, post:Boolean=false)
POST        /folders/:id/edit                            controllers.Folders.editMode(request:Request, id:Integer, post:Boolean=true)
POST        /folders/:id/deletefolder                    controllers.Folders.deleteFolder(request:Request, id:Integer)
GET         /appsync                                     controllers.AppSync.start(request:Request)
POST        /appsync                                     controllers.AppSync.execute(request:Request)
GET         /appsync/qr                                  controllers.Application.qrCode(toEncode:String)
GET         /sendlogs                                    controllers.SendLogs.index(request:Request)
POST        /sendlogs                                    controllers.SendLogs.sendLogs(request:Request)

# Tenants
GET         /tenants                                     controllers.Tenants.index(request:Request)
GET         /tenants/newTenant                           controllers.Tenants.newTenantDirect(request:Request)
GET         /tenants_sort                                controllers.Tenants.indexSort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true)
GET         /tenants_pagesize                            controllers.Tenants.indexPageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
GET         /tenants_filter                              controllers.Tenants.filter(request:Request, filterActive:Boolean = false)
POST        /tenants_filter                              controllers.Tenants.filter(request:Request, filterActive:Boolean = true)
GET         /tenants/new                                 controllers.Tenants.newTenantModal(request:Request, name:String, maxUserCount:Integer, customerId:String ?=null)
POST        /tenants/new                                 controllers.Tenants.newTenantModal(request:Request, name:String, maxUserCount:Integer, customerId:String ?=null)
GET         /tenants/newTenant_ok                        controllers.Tenants.newTenantModalOK(request:Request, tenantName: String, tenantId: Integer ?=null)
GET         /tenants/editTenant/:id                      controllers.Tenants.editTenantModal(request:Request, id: Integer, name:String, maxUserCount:Integer, overview:Boolean?=false)
GET         /tenants/editTenant                          controllers.Tenants.editTenantModal(request:Request, id: Integer, name:String, maxUserCount:Integer, overview:Boolean?=true)
GET         /tenants/:id/editTenant_ok                   controllers.Tenants.editTenantModalOK(request:Request, id: Integer)
GET         /tenants/editTenant_ok                       controllers.Tenants.editTenantModalOKOverview(request:Request, id: Integer)
GET         /tenants/edit/:id                            controllers.Tenants.editTenant(request:Request, id: Integer)
GET         /tenants/edit_sort/:id                       controllers.Tenants.editTenantSort(request:Request, id:Integer, sort:Int ?= -1, ascending:Boolean ?= true)
GET         /tenants/edit_page/:id                       controllers.Tenants.editTenantWithPage(request:Request, id:Integer, pageNumber:Int ?=0, pageSize:Int ?=200)
POST        /tenants/edit/:id                            controllers.Tenants.save(request:Request, id: Integer)
POST        /tenants/import                              controllers.Tenants.importCustomer(request:Request)
GET         /tenants/preparedelete                       controllers.Tenants.prepareDeleteTenant(request:Request, id:Int)
GET         /tenants/:id/preparedelete                   controllers.Tenants.prepareDeleteTenantDetails(request:Request, id:Int)
POST        /tenants/delete                              controllers.Tenants.deleteTenant(request:Request)
POST        /tenants/adduser                             controllers.Tenants.addUser(request:Request, tenant:Int)
POST        /tenants/dropuser                            controllers.Tenants.dropUser(request:Request, tenant:Int)
GET         /tenants/toggleUserPermission                controllers.Tenants.toggleUserPermission(request:Request, userId:Int, tenantId:Int)
GET         /tenants/toggleManagingUserPermission        controllers.Tenants.toggleManagingUserPermission(request: Request, userId:Int, tenantId:Int)
GET         /tenants/toggleTenantUserPermissionModal     controllers.Tenants.toggleTenantUserPermissionModal(request:Request, userId:Int, tenantId:Int)
GET         /tenants/addWebAuthn                         controllers.Tenants.addWebAuthnPage(request:Request, userId:Int, tenantId:Int)
POST        /tenants/addWebAuthn                         controllers.Tenants.addWebAuthn(request:Request, userId:Int, tenantId:Int)
POST        /tenants/exportCustomer                      controllers.Tenants.exportCustomer(request:Request)
POST        /tenants/exportUser                          controllers.Tenants.exportUser(request:Request)
GET         /tenants/switchUserAdministration            controllers.Tenants.switchToUserAdministration(request:Request, tenantId:Int)

# Yubikeys
GET         /yubikeys                                    controllers.Yubikeys.index(request:Request, userId:Integer=null)
GET         /yubikeys_sort                               controllers.Yubikeys.sort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true, userId:Integer=null)
GET         /yubikeys_sort/:userId                       controllers.Yubikeys.sort(request:Request, sort:Int ?= -1, ascending:Boolean ?=true, userId:Integer)
GET         /yubikeys_page                               controllers.Yubikeys.pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200, userId:Integer=null)
GET         /yubikeys_page/:userId                       controllers.Yubikeys.pageSize(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200, userId:Integer)
GET         /yubikeys/add                                controllers.Yubikeys.addTokenPage(request:Request, userId:Integer=null)
GET         /yubikeys/add/:userId                        controllers.Yubikeys.addTokenPage(request:Request, userId:Integer)
POST        /yubikeys/add                                controllers.Yubikeys.addToken(request:Request, userId:Integer ?=null)
GET         /yubikeys/addOath                            controllers.Yubikeys.addOathPage(request:Request, userId:Integer=null)
GET         /yubikeys/addOath/:userId                    controllers.Yubikeys.addOathPage(request:Request, userId:Integer)
POST        /yubikeys/addOath                            controllers.Yubikeys.addOath(request:Request, token:String, encryptedURI:String, userId:Integer ?=null)
GET         /yubikeys/addWebAuthn                        controllers.Yubikeys.addWebAuthnPage(request:Request, userId:Integer=null)
GET         /yubikeys/addWebAuthn/:userId                controllers.Yubikeys.addWebAuthnPage(request:Request, userId:Integer)
POST        /yubikeys/addWebAuthn                        controllers.Yubikeys.addWebAuthn(request:Request, userId:Integer ?=null)
POST        /yubikeys/edit/:tokenId/:userId              controllers.Yubikeys.editDescription(request:Request, tokenId:Int, userId:Integer)
GET         /yubikeys/remove/:tokenId                    controllers.Yubikeys.removeTokenPage(request:Request, tokenId:Int, userId:Integer=null)
GET         /yubikeys/remove/:tokenId/:userId            controllers.Yubikeys.removeTokenPage(request:Request, tokenId:Int, userId:Integer)
POST        /yubikeys/remove/:tokenId                    controllers.Yubikeys.removeToken(request:Request, tokenId:Integer, userId:Integer ?=null)
GET         /yubikeys/:userId                            controllers.Yubikeys.index(request:Request, userId:Integer)
GET         /yubikeys/:tenantId/:userId                  controllers.Yubikeys.indexFromTenant(request:Request, userId:Integer, tenantId:Integer)

# Logs
GET         /logs                                        controllers.Logs.index(request:Request)
GET         /logs/sort                                   controllers.Logs.indexSort(request:Request, sort:Integer, ascending:Boolean)
GET         /logs/page                                   controllers.Logs.indexPage(request:Request, pageNumber:Integer ?=0, pageSize:Int ?=200)
POST        /logs_filterForm                             controllers.Logs.filterForm(request:Request, filterActive:Boolean ?=false)
GET         /logs_filterForm                             controllers.Logs.filterForm(request:Request, filterActive:Boolean ?=false)

# Find operations
POST        /find/addSumsWithCur                         controllers.Application.addSumsWithCurrencyDecimals(request: Request)
POST        /find/addDecimals                            controllers.Application.addDecimals(request: Request)
POST        /find/multiplyDecimals                       controllers.Application.multiplyDecimals(request: Request)
GET         /find/bic                                    controllers.Payments.findBics(search:String, service:String)
GET         /find/blz                                    controllers.Payments.findGermanBankcodes(search:String)
GET         /find/iban                                   controllers.Payments.calculateIbanAndBicForSepa(request:Request, accountNumber:String, bankCode:String)
GET         /find/bankfromblz                            controllers.Payments.findBankFromBlz(blz:String)
GET         /find/bankfrombic                            controllers.Payments.findBankFromBic(bic:String)
GET         /find/originator/:types                      controllers.Payments.findOriginators(request:Request, search:String, tenantId:Int, types:String)
GET         /find/recipient/:types                       controllers.Payments.findRecipients(request:Request, search:String, tenantId:Int, types:String)
GET         /find/payment/period                         controllers.PeriodicPayments.findPeriods(request:Request, firstExecution:String, previousExecution:String, nextExecution:String, executionInterval:String, executionCount:Integer, calculateNextExecutionDate:Boolean)
GET         /find/dtazv/originatornumber                 controllers.Payments.findDtazvCustomerNumberForOriginatorAccount(accountId:Int)
GET         /find/mergeBtfString                         controllers.BtfUtils.mergeBtfString(serviceName: String, serviceOption: String, scope: String, container: String, message: String, variant: String, version: String, format: String, emptyAllowed: String)
GET         /find/splitBtfString                         controllers.BtfUtils.splitBtfString(btfString: String, pmtTypeName: String, bankId: Integer)
POST        /find/taxpurpose                             controllers.Payments.determineTaxPurpose(request:Request)
POST        /find/convertAmount                          controllers.Payments.convertAmount(request:Request)
POST        /find/calculateDiscount                      controllers.Payments.calculateDiscount(request:Request)

# Table sorting
POST        /sorting/setTableColumns                     controllers.Application.setTableColumns(request:Request)

# Setup page
GET         /setup                                       controllers.Setup.index(request:Request)
POST        /setup/1                                     controllers.Setup.workspace(request:Request)
POST        /setup/2                                     controllers.Setup.confirmDir(request:Request)
POST        /setup/3                                     controllers.Setup.databaseCreate(request:Request)
GET         /setup/4                                     controllers.Setup.databaseUpdateCheck(request:Request)
GET         /setup/addWebAuthnPage                       controllers.Logins.addWebAuthnPage(request:Request)
POST        /setup/addWebAuthnPage                       controllers.Logins.addWebAuthn(request:Request)

# Cluster communication
GET         /cluster/file/:id                            controllers.Cluster.getFile(request:Request, id:Int)
GET         /cluster/scheduler                           controllers.Cluster.getNextSchedulerDates(request:Request)
GET         /cluster/scheduler/remove                    controllers.Cluster.removeScheduler(request:Request)
GET         /cluster/scheduler/statistics                controllers.Cluster.getSchedulerStatistics(request:Request)
GET         /cluster/scheduler/update/:id                controllers.Cluster.updateScheduler(request:Request, id:Int)
GET         /cluster/pwdRequirements                     controllers.Cluster.updatePasswordRequirements(request:Request)
GET         /cluster/changeEncryption/:value             controllers.Cluster.changeEncryption(request:Request, value:Boolean)
GET         /cluster/updateCheck/:value                  controllers.Cluster.updateCheck(request:Request, value:String)
GET         /cluster/sync                                controllers.Cluster.syncWorkspace(request:Request, all:Boolean ?=false)

# Map static resources from the /public folder to the /assets URL path
GET         /assets/1.18.54/*file                                controllers.Assets.versioned(path="/public", file: Asset)

# Branding pages
GET         /setup/geva                                  controllers.GevaSetup.index(request:Request)
POST        /setup/geva                                  controllers.GevaSetup.initialize(request:Request)
GET         /setup/geva/INI.pdf                          controllers.GevaSetup.getPDF
GET         /setup/geva/start                            controllers.GevaSetup.start(request:Request)
GET         /geva/user                                   controllers.GevaSetup.newUser(request:Request)
POST        /geva/user                                   controllers.GevaSetup.newUserIni(request:Request)
GET         /geva/resetuser                              controllers.GevaSetup.resetUser(request:Request)
POST        /geva/resetuser                              controllers.GevaSetup.resetUserIni(request:Request)

# Raisin Bank API endpoint (Bugzilla 6435)
POST        /raisin/apiEndpoint                          controllers.branding.raisin.RaisinApiEndpoint.processApiEvent(request:Request, event:String ?=null)

# SCIM 2.0 interface (Bugzilla 7055)
+ nocsrf
POST        /scim/v2/:resourceType                       controllers.branding.scim.SCIMApiEndpoint.create(request:Request, resourceType:String)
GET         /scim/v2/:resourceType                       controllers.branding.scim.SCIMApiEndpoint.search(request:Request, resourceType:String, filter:String ?=null, sortBy:String ?=null, sortOrder:String ?=null, startIndex:Integer ?=null, count:Integer ?=null)
GET         /scim/v2/:resourceType/:uuid                 controllers.branding.scim.SCIMApiEndpoint.read(request:Request, resourceType:String, uuid:String)
+ nocsrf
PUT         /scim/v2/:resourceType/:uuid                 controllers.branding.scim.SCIMApiEndpoint.replace(request:Request, resourceType:String, uuid:String)
+ nocsrf
DELETE      /scim/v2/:resourceType/:uuid                 controllers.branding.scim.SCIMApiEndpoint.delete(request:Request, resourceType:String, uuid:String)
+ nocsrf
PATCH       /scim/v2/:resourceType/:uuid                 controllers.branding.scim.SCIMApiEndpoint.update(request:Request, resourceType:String, uuid:String)
