{"id":24835868,"url":"https://github.com/binkode/laravel-mono","last_synced_at":"2025-10-14T10:30:40.969Z","repository":{"id":57022561,"uuid":"392125646","full_name":"binkode/laravel-mono","owner":"binkode","description":"Access financial accounts across Africa with mono using laravel","archived":false,"fork":false,"pushed_at":"2023-11-19T07:35:59.000Z","size":36,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-12T05:52:21.240Z","etag":null,"topics":["finance","fintech","fintech-api","laravel","laravel-mono","mono"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binkode.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-02T23:39:34.000Z","updated_at":"2023-11-19T07:32:27.000Z","dependencies_parsed_at":"2022-08-23T12:20:42.787Z","dependency_job_id":null,"html_url":"https://github.com/binkode/laravel-mono","commit_stats":null,"previous_names":["binkode/laravel-mono"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/binkode/laravel-mono","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binkode%2Flaravel-mono","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binkode%2Flaravel-mono/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binkode%2Flaravel-mono/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binkode%2Flaravel-mono/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binkode","download_url":"https://codeload.github.com/binkode/laravel-mono/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binkode%2Flaravel-mono/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018780,"owners_count":26086452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance","fintech","fintech-api","laravel","laravel-mono","mono"],"created_at":"2025-01-31T04:55:48.680Z","updated_at":"2025-10-14T10:30:40.692Z","avatar_url":"https://github.com/binkode.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# laravel-mono\nUse [Mono](https://mono.co) Apis in your laravel project.\n\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)\n[![Travis](https://img.shields.io/travis/myckhel/laravel-mono.svg?style=flat-square)]()\n[![Total Downloads](https://img.shields.io/packagist/dt/myckhel/laravel-mono.svg?style=flat-square)](https://packagist.org/packages/myckhel/laravel-mono)\n\n## [Mono Doc Link](https://docs.mono.co/reference)\n\n## Install\n`composer require myckhel/laravel-mono`\n\n## Setup\nThe package will automatically register a service provider.\n\nYou need to publish the configuration file:\n\n```php artisan vendor:publish --provider=\"Myckhel\\Mono\\MonoServiceProvider\"```\n\n### Publish config\nThis is the default content of the config file ```mono.php```:\n```php\n\u003c?php\n\nreturn [\n    \"secret_key\"    =\u003e env(\"MONO_SECRET_KEY\"),\n    \"url\"           =\u003e env(\"MONO_URL\", 'https://api.withmono.com'),\n    \"version\"       =\u003e 1,\n\n    \"route\" =\u003e [\n        \"middleware\"    =\u003e ['api'], // For injecting middleware to the package's routes\n        \"prefix\"    =\u003e 'api', // For injecting middleware to the package's routes\n    ],\n];\n```\n\n### Update env\nUpdate Your Projects `.env` with their credentials:\n```bash\nMONO_SECRET_KEY=XXXXXXXXXXXXXXXXXXXX\nMONO_PUBLIC_KEY=XXXXXXXXXXXXXXXXXXXX\nMONO_WEBHOOK_SECRET_KEY=XXXXXXXXXXXX\n```\n\n## Usage\n\n### Account\n```php\nuse Myckhel\\Mono\\Support\\Account;\n\nAccount::auth($code, $params);\n\nAccount::info($id, $params);\n\nAccount::statement($id, $params);\n\nAccount::pollpdf($id, $params);\n\nAccount::transactions($id, $params);\n\nAccount::income($id, $params);\n\nAccount::identity($id, $params);\n\nAccount::sync($id, $params);\n\nAccount::reauthorise($id, $params);\n\nAccount::unlink($id, $params);\n\nAccount::coverage($params);\n```\n\n### Cac\n```php\nuse Myckhel\\Mono\\Support\\Cac;\n\nCac::lookup($params);\n\nCac::company($id, $params);\n```\n\n### Payment\n```php\nuse Myckhel\\Mono\\Support\\Payment;\n\nPayment::initiate($params);\n\nPayment::verify($params);\n\nPayment::oneTimePayment($params);\n\nPayment::createPlan($params);\n\nPayment::listPlans($params);\n\nPayment::updatePlan($params);\n\nPayment::deletePlan($params);\n```\n\n### Wallet\n```php\nuse Myckhel\\Mono\\Support\\Wallet;\n\nPayment::balance($params);\n```\n\n## Mono\n- ### `verifyWebHook`\nMethod to verify incoming webhook secret\n```php\nuse Mono;\n\nMono::verifyWebHook($request-\u003eheader('mono-webhook-secret'));\n```\n\n### Using WebHook route\nLaravel mono provides you a predefined endpoint that listens to and validates incoming mono's webhook events.\nIt emits `Myckhel\\Mono\\Events\\Hook` on every incoming hooks which could be listened to.\n\n## Setup Mono Webhook\n[Check official page for instructions setting up mono webhook](https://docs.mono.co/docs/setting-up-webhook-url)\nlaravel-mono exposes `hooks` api endpoint\nuse the enddpoints url to for the mono webhook url during the setup.\n```\n| POST      | /hooks                                |               | Myckhel\\Mono\\Http\\Controllers\\HookController@hook              | api            |\n```\n\n## Listening to laravel-mono Hook event\nYou may start listening to incoming mono webhooks after setup by registering the event in your laravel project's `EventServiceProvider` file.\n\n- ### Create an event listener class\n```bash\nphp artisan make:listener MonoWebHookListener --event=Myckhel\\Mono\\Events\\Hook\n```\n- ### Handle mono webhook events\n```php\n\u003c?php\n\nnamespace App\\Listeners;\n\nuse Myckhel\\Mono\\Events\\Hook;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Support\\Facades\\Log;\n\nclass MonoWebHookListener\n{\n    /**\n     * Handle the event.\n     *\n     * @param  Myckhel\\Mono\\Events\\Hook  $event\n     * @return void\n     */\n    public function handle(Hook $event)\n    {\n        Log::debug($event-\u003eevent);\n        /* {\n            \"event\": \"direct_debit.payment_successful\",\n            \"data\": {\n              \"type\": \"onetime-debit\",\n              \"object\": {\n                \"id\": \"txd_9AhCg0PNkwHiq6RqLLdiqKDf\",\n                \"status\": \"successful\",\n                \"amount\": 30000,\n                \"description\": \"free shirt\",\n                \"fee\": 300,\n                \"currency\": \"NGN\",\n                \"account\": \"611d575feef5d3371ca9d0d8\",\n                \"customer\": \"611adcd9a5fda23baf58140d\",\n                \"reference\": \"djdjj3939394949944\",\n                \"liveMode\": true,\n                \"created_at\": \"2021-08-18T18:54:23.491Z\",\n                \"updated_at\": \"2021-08-18T18:55:16.055Z\"\n              }\n            }\n          }\n        */\n    }\n}\n```\n- ### Register `MonoWebHookListener`\n```php\n\u003c?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider as ServiceProvider;\nuse Illuminate\\Support\\Facades\\Event;\n\nuse Myckhel\\Mono\\Events\\Hook;\nuse App\\Listeners\\MonoWebHookListener;\n\nclass EventServiceProvider extends ServiceProvider\n{\n    /**\n     * The event listener mappings for the application.\n     *\n     * @var array\n     */\n    protected $listen = [\n        ...\n        Hook::class =\u003e [\n            MonoWebHookListener::class,\n        ],\n    ];\n```\n\n### Using built in routes\n```\n+--------+-----------+---------------------------------------------+---------------+----------------------------------------------------------------+----------------+\n| Domain | Method    | URI                                         | Name          | Action                                                         | Middleware     |\n+--------+-----------+---------------------------------------------+---------------+----------------------------------------------------------------+----------------+\n|        | GET|HEAD  | /                                           |               | Closure                                                        | web            |\n|        | POST      | api/v1/account/auth                         |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@auth           | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}                        |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@info           | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}/identity               |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@identity       | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}/income                 |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@income         | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/accounts/{id}/reauthorise            |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@reauthorise    | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}/statement              |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@statement      | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}/statement/jobs/{jobId} |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@pollPdf        | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/accounts/{id}/sync                   |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@sync           | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/accounts/{id}/transactions           |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@transactions   | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/accounts/{id}/unlink                 |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@unlink         | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/cac/company/{id}                     |               | Myckhel\\Mono\\Http\\Controllers\\CacController@company            | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/cac/lookup                           |               | Myckhel\\Mono\\Http\\Controllers\\CacController@lookup             | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/coverage                             |               | Myckhel\\Mono\\Http\\Controllers\\AccountController@coverage       | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/payments/initiate                    |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@initiate       | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/payments/one-time-payment            |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@oneTimePayment | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/payments/plans                       |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@createPlan     | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | GET|HEAD  | api/v1/payments/plans                       |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@listPlans      | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | PUT       | api/v1/payments/plans/{planId}              |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@updatePlan     | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | DELETE    | api/v1/payments/plans/{{planId}}            |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@deletePlan     | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/payments/verify                      |               | Myckhel\\Mono\\Http\\Controllers\\PaymentController@verify         | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n|        | POST      | api/v1/hooks                                |               | Myckhel\\Mono\\Http\\Controllers\\HookController@hook              | api            |\n|        |           |                                             |               |                                                                | api.version:v1 |\n+--------+-----------+---------------------------------------------+---------------+----------------------------------------------------------------+----------------+\n```\n\n\u003c!-- \n## Testing\nRun the tests with:\n\n``` bash\nvendor/bin/phpunit\n```\n --\u003e\n## Changelog\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## Contributing\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n## Credits\n\n- [myckhel](https://github.com/myckhel)\n- [All Contributors](https://github.com/myckhel/laravel-mono/contributors)\n\n## Security\nIf you discover any security-related issues, please email myckhel1@hotmail.com instead of using the issue tracker.\n\n## License\nThe MIT License (MIT). Please see [License File](/LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinkode%2Flaravel-mono","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinkode%2Flaravel-mono","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinkode%2Flaravel-mono/lists"}