Akaunting ships with a centralized settings page where modules can add their own in a few steps.

Simple Settings

We’ve tried our best to ease the life of developers. Mostly, developers just want to add just some inputs on the settings page. In such a case, you can add them to the module.json file and Akaunting will display your module under the Settings page.

All you have to do is to fill the settings array like the following:

"settings": [
         "type": "textGroup",
         "name": "header",
         "title": "my-blog::general.header",
         "icon": "fa fa-user",
         "attributes": {
             "required": "required"
         "rules": "required|string"
         "type": "radioGroup",
         "name": "enable_comments",
         "title": "my-blog::general.enable_comments",
         "enable": "general.yes",
         "disable": "",
         "attributes": {},
         "rules": "integer|boolean"
         "type": "textareaGroup",
         "name": "meta_description",
         "title": "my-blog::general.meta_description",
         "attributes": {},
         "rules": "nullable|string"

Custom Settings

If your settings page needs a little bit more action then you can listen to the SettingShowing event and create your own route, controller, and view files.

Here is a listener example:


namespace Modules\MyBlog\Listeners;

use App\Events\Module\SettingShowing as Event;

class ShowInSettingsPage
     * Handle the event.
     * @param  Event $event
     * @return void
    public function handle(Event $event)
        $event->modules->settings['my-blog'] = [
            'name' => trans(''),
            'description' => trans('my-blog::general.description'),
            'url' => route('my-blog.settings.edit'),
            'icon' => 'fa fa-pen',

You can check the built-in Akaunting modules as live examples. The Offline Payments module ships with a custom settings page and the My Blog module uses the module.json file.

Scroll to top