Invoices, Expenses and Tasks built with Laravel and Flutter

Overview

Sublime's custom image

Invoice Ninja

Build Status Docs

Hosted | Self-Hosted

We're on Slack, join us at slack.invoiceninja.com or if you like StackOverflow

Just make sure to add the invoice-ninja tag to your question.

Note: v5 is now tagged Stable! To upgrade from v4 you need to install v5 as a separate app and then use the migration tool in the latest version of v4 on Settings > Account Management.

All Pro and Enterprise features from the hosted app are included in the open-source code. We offer a $30 per year white-label license to remove the Invoice Ninja branding from client facing parts of the app.

The self-host zip includes all third party libraries whereas downloading the code from GitHub requires using Composer to install the dependencies.

Referral Program

  • Earn 50% of Pro & Enterprise Plans up to 4 years - Learn more

Mobile App

Installation Options

Recommended Providers

Development

Third Party Modules

Feel free to email us for help if you're working on a module, we're happy to provide developer support.

Third Party Tools

Third Party Developers

Contributing

All contributors are welcome!
For information on how contribute to Invoice Ninja, please see our contributing guide.

Credits

Special thanks to:

License

Invoice Ninja is released under the Attribution Assurance License.
See LICENSE for details.

Comments
  • PHP 7.2 issues: count(): Parameter must be an array or an object that implements Countable

    PHP 7.2 issues: count(): Parameter must be an array or an object that implements Countable

    ErrorException in Builder.php line 1231:
    count(): Parameter must be an array or an object that implements Countable
    in Builder.php line 1231
    at HandleExceptions->handleError('2', 'count(): Parameter must be an array or an object that implements Countable', '/var/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php', '1231', array('scope' => object(Closure), 'parameters' => array(object(Builder)), 'query' => object(Builder)))
    at count(null) in Builder.php line 1231
    at Builder->callScope(object(Closure)) in Builder.php line 1262
    at Builder->applyScopes() in Builder.php line 325
    at Builder->get() in /var/www/app/app/Http/Middleware/StartupCheck.php line 208
    
            // Check data has been cached
            $cachedTables = unserialize(CACHED_TABLES);
            if (Input::has('clear_cache')) {
                Session::flash('message', 'Cache cleared');
            }
            foreach ($cachedTables as $name => $class) {
                if (Input::has('clear_cache') || ! Cache::has($name)) {
                    // check that the table exists in case the migration is pending
                    if (! Schema::hasTable((new $class())->getTable())) {
                        continue;
                    }
                    if ($name == 'paymentTerms') {
                        $orderBy = 'num_days';
                    } elseif ($name == 'fonts') {
                        $orderBy = 'sort_order';
                    } elseif (in_array($name, ['currencies', 'industries', 'languages', 'countries', 'banks'])) {
                        $orderBy = 'name';
                    } else {
                        $orderBy = 'id';
                    }
                    $tableData = $class::orderBy($orderBy)->get(); // This line right here is the error
                    if (count($tableData)) {
                        Cache::forever($name, $tableData);
                    }
                }
            }
    

    Clean install this happens immediately after setup is finished. Database tables exist. Clear compiled does not fix. Latest download as of 8pm Eastern on 12/05/2017

    compatibility fixed 
    opened by necrogami 47
  • Update from v5.4.9 to v5.5.6 not possible - Remote file not found

    Update from v5.4.9 to v5.5.6 not possible - Remote file not found

    Could not update. I think it's happen by the error, that the remote file not found on your servers. I've got an "Server Error" on update-frame in the web ui.

    PHP Version

    PHP 8.1.7 (cli) (built: Jun 14 2022 10:02:46) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.1.7, Copyright (c) Zend Technologies
        with Zend OPcache v8.1.7, Copyright (c), by Zend Technologies
    
    curl https://github.com/invoiceninja/invoiceninja/releases/download/v5.5.7/invoiceninja.zip
    Not Found
    

    image

    laravel.log

    [2022-08-05 18:59:52] production.ERROR: copy(https://github.com/invoiceninja/invoiceninja/releases/download/v5.5.7/invoiceninja.zip): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
     {"userId":1,"exception":"[object] (ErrorException(code: 0): copy(https://github.com/invoiceninja/invoiceninja/releases/download/v5.5.7/invoiceninja.zip): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
     at /home/users/foobar/www/office.foobar.com/app/Http/Controllers/SelfUpdateController.php:126)
    [stacktrace]
    #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
    #1 /home/users/foobar/www/office.foobar.com/app/Http/Controllers/SelfUpdateController.php(126): copy()
    #2 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\SelfUpdateController->update()
    #3 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
    #4 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\\Routing\\ControllerDispatcher->dispatch()
    #5 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
    #6 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\\Routing\\Route->run()
    #7 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
    #8 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #9 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(63): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
    #10 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
    #11 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/QueryLogging.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #12 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\QueryLogging->handle()
    #13 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #14 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
    #15 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/Locale.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #16 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Locale->handle()
    #17 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/PasswordProtection.php(124): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #18 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\PasswordProtection->handle()
    #19 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/TokenAuth.php(99): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #20 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\TokenAuth->handle()
    #21 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/SetDb.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #22 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetDb->handle()
    #23 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #24 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\\Pipeline\\Pipeline->then()
    #25 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\\Routing\\Router->runRouteWithinStack()
    #26 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRoute()
    #27 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\\Routing\\Router->dispatchToRoute()
    #28 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
    #29 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
    #30 /home/users/foobar/www/office.foobar.com/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #31 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle()
    #32 /home/users/foobar/www/office.foobar.com/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(42): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #33 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle()
    #34 /home/users/foobar/www/office.foobar.com/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #35 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\\DisableBrowserCache->handle()
    #36 /home/users/foobar/www/office.foobar.com/app/Http/Middleware/Cors.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #37 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle()
    #38 /home/users/foobar/www/office.foobar.com/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #39 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
    #40 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #41 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #42 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
    #43 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #44 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #45 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
    #46 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #47 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
    #48 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #49 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
    #50 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #51 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
    #52 /home/users/foobar/www/office.foobar.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
    #53 /home/users/foobar/www/office.foobar.com/public/index.php(57): Illuminate\\Foundation\\Http\\Kernel->handle()
    #54 {main}
    "}  
    
    bug fixed 
    opened by pthoelken 46
  • The MAC is invalid

    The MAC is invalid

    Hi. After installing version 2.6.3 I get the following error messages when accessing the both pages. All other pages seems to be ok. Any idea how to solve this error?

    https://{host}/settings/online-payment

    DecryptException in BaseEncrypter.php line 48:
    The MAC is invalid.
    in BaseEncrypter.php line 48
    at BaseEncrypter->getJsonPayload('eyJpdiI6IjZrSDR2KzVoaDdZTVB5SlJxWGk5dEE9PSIsInZhbHVlIjoiNVlFZXFvcFNveTlCYXhvUzhBUTRseVN2ZlVUY1d0QnhWaTFrZ1A0SG9kZ2ttcGhXcWtxV3QyNGN2dndcL0ZvVEJxZENcL2l1WlUzc2NLK24wMEVkRGxwc1Q5SGRBU0N0SFMrZWxrV1B3R1hYUTdrUGRPOEgwdTY5SWpMOFVPTFlmTnE2ZTFBVWc1VEFtWWQ3UHMzaDJPQXc9PSIsIm1hYyI6ImQ0ZjQ4ZTNiNzZkMzU3ZGM2NmE0YWFhMjY2YzA5ODIzMTQ2NjU0MmI4NTg4NzkyYTAxM2VjNWRlNzhmOTFkYWMifQ==') in McryptEncrypter.php line 115
    at McryptEncrypter->decrypt('eyJpdiI6IjZrSDR2KzVoaDdZTVB5SlJxWGk5dEE9PSIsInZhbHVlIjoiNVlFZXFvcFNveTlCYXhvUzhBUTRseVN2ZlVUY1d0QnhWaTFrZ1A0SG9kZ2ttcGhXcWtxV3QyNGN2dndcL0ZvVEJxZENcL2l1WlUzc2NLK24wMEVkRGxwc1Q5SGRBU0N0SFMrZWxrV1B3R1hYUTdrUGRPOEgwdTY5SWpMOFVPTFlmTnE2ZTFBVWc1VEFtWWQ3UHMzaDJPQXc9PSIsIm1hYyI6ImQ0ZjQ4ZTNiNzZkMzU3ZGM2NmE0YWFhMjY2YzA5ODIzMTQ2NjU0MmI4NTg4NzkyYTAxM2VjNWRlNzhmOTFkYWMifQ==') in Facade.php line 217
    at Facade::__callStatic('decrypt', array('eyJpdiI6IjZrSDR2KzVoaDdZTVB5SlJxWGk5dEE9PSIsInZhbHVlIjoiNVlFZXFvcFNveTlCYXhvUzhBUTRseVN2ZlVUY1d0QnhWaTFrZ1A0SG9kZ2ttcGhXcWtxV3QyNGN2dndcL0ZvVEJxZENcL2l1WlUzc2NLK24wMEVkRGxwc1Q5SGRBU0N0SFMrZWxrV1B3R1hYUTdrUGRPOEgwdTY5SWpMOFVPTFlmTnE2ZTFBVWc1VEFtWWQ3UHMzaDJPQXc9PSIsIm1hYyI6ImQ0ZjQ4ZTNiNzZkMzU3ZGM2NmE0YWFhMjY2YzA5ODIzMTQ2NjU0MmI4NTg4NzkyYTAxM2VjNWRlNzhmOTFkYWMifQ==')) in AccountGateway.php line 108
    at Crypt::decrypt('eyJpdiI6IjZrSDR2KzVoaDdZTVB5SlJxWGk5dEE9PSIsInZhbHVlIjoiNVlFZXFvcFNveTlCYXhvUzhBUTRseVN2ZlVUY1d0QnhWaTFrZ1A0SG9kZ2ttcGhXcWtxV3QyNGN2dndcL0ZvVEJxZENcL2l1WlUzc2NLK24wMEVkRGxwc1Q5SGRBU0N0SFMrZWxrV1B3R1hYUTdrUGRPOEgwdTY5SWpMOFVPTFlmTnE2ZTFBVWc1VEFtWWQ3UHMzaDJPQXc9PSIsIm1hYyI6ImQ0ZjQ4ZTNiNzZkMzU3ZGM2NmE0YWFhMjY2YzA5ODIzMTQ2NjU0MmI4NTg4NzkyYTAxM2VjNWRlNzhmOTFkYWMifQ==') in AccountGateway.php line 108
    at AccountGateway->getConfig() in AccountGateway.php line 117
    at AccountGateway->getConfigField('publishableKey') in AccountGateway.php line 129
    at AccountGateway->getPublishableStripeKey() in AccountController.php line 496
    at AccountController->showOnlinePayments() in AccountController.php line 320
    at AccountController->showSection('online_payments')
    at call_user_func_array(array(object(AccountController), 'showSection'), array('section' => 'online_payments')) in Controller.php line 80
    at Controller->callAction('showSection', array('section' => 'online_payments')) in ControllerDispatcher.php line 146
    at ControllerDispatcher->call(object(AccountController), object(Route), 'showSection') in ControllerDispatcher.php line 94
    at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    

    or https://{host}/settings/templates_and_reminders

    ErrorException in compiled.php line 13218:
    The MAC is invalid. (View: /srv/www/vhosts/b-nova.com/subdomains/test-ninja/resources/views/accounts/templates_and_reminders.blade.php)
    in compiled.php line 13218
    at CompilerEngine->handleViewException(object(DecryptException), '1') in compiled.php line 15270
    at PhpEngine->evaluatePath('/srv/www/vhosts/b-nova.com/subdomains/test-ninja/storage/framework/views/c0d29888eb503f01ee9f63e5cd0f7e0bc42d3cc6.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'account' => object(Account), 'templates' => array('invoice' => array('subject' => 'Ihre Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Wir möchten uns nochmals für Ihren Auftrag bedanken. Anbei senden wir Ihnen die Rechnung. </div><div>Sie können diese auch online einsehen. Klicken Sie dazu einfach auf den Button. </div><div><br></div><div>$viewButton</div><div><br></div><div>$footer</div>'), 'quote' => array('subject' => 'Neues Angebot von $account', 'template' => '<div>$client,</div><br><div>Klicken Sie auf den folgenden Link um das Angebot über $amount anzuschauen.</div><br><div>$viewLink</div><br>$footer'), 'payment' => array('subject' => 'Zahlungseingang', 'template' => '<div>Hallo $contact</div><div><br></div><div>Ihre Zahlung ist bei uns eingegangen. Wir bedanken uns nochmals für Ihren Auftrag. </div><div><br></div><div style="text-align: center;">$viewButton</div><div><br></div><div>$footer</div>'), 'reminder1' => array('subject' => 'Erinnerung: Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Sicherlich haben Sie nur übersehen den noch offenen Betrag von $amount zu bezahlen. Bitte überweisen Sie diesen innerhalb 7 Tagen auf das angegebene Konto. </div><div>Die Rechnung können Sie online unter dem folgenden Link einsehen.</div><div><br></div><div>$viewButton</div><div><br></div><div>$footer</div>'), 'reminder2' => array('subject' => '2. Erinnerung: Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Wir bitten Sie den noch offenen Betrag von $amount innerhalb der nächsten 7 Tage zu überweisen. Sollten Sie den Betrag in der Zwischenzeit bereits bezahlt haben, so betrachten Sie dieses Schreiben als gegenstandslos. </div><div>Ihre Rechnung können Sie über den folgenden Button einsehen. </div><div><br></div><div style="text-align: center;">$viewButton</div><div><br></div><div>$footer</div>'), 'reminder3' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer')), 'defaultTemplates' => array('invoice' => array('subject' => 'Neue Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'quote' => array('subject' => 'Neues Angebot von $account', 'template' => '<div>$client,</div><br><div>Klicken Sie auf den folgenden Link um das Angebot über $amount anzuschauen.</div><br><div>$viewLink</div><br>$footer'), 'payment' => array('subject' => 'Zahlungseingang', 'template' => '<div>$client,</div><br><div>Vielen Dank für Ihre Zahlung von $amount.</div><br><div>$viewLink</div><br>$footer'), 'reminder1' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'reminder2' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'reminder3' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer')), 'emailFooter' => '<p><div>Mit freundlichen Grüßen, <br>$account</div></p>', 'title' => 'E-Mail Vorlagen')) in compiled.php line 15305
    at CompilerEngine->get('/srv/www/vhosts/b-nova.com/subdomains/test-ninja/resources/views/accounts/templates_and_reminders.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'account' => object(Account), 'templates' => array('invoice' => array('subject' => 'Ihre Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Wir möchten uns nochmals für Ihren Auftrag bedanken. Anbei senden wir Ihnen die Rechnung. </div><div>Sie können diese auch online einsehen. Klicken Sie dazu einfach auf den Button. </div><div><br></div><div>$viewButton</div><div><br></div><div>$footer</div>'), 'quote' => array('subject' => 'Neues Angebot von $account', 'template' => '<div>$client,</div><br><div>Klicken Sie auf den folgenden Link um das Angebot über $amount anzuschauen.</div><br><div>$viewLink</div><br>$footer'), 'payment' => array('subject' => 'Zahlungseingang', 'template' => '<div>Hallo $contact</div><div><br></div><div>Ihre Zahlung ist bei uns eingegangen. Wir bedanken uns nochmals für Ihren Auftrag. </div><div><br></div><div style="text-align: center;">$viewButton</div><div><br></div><div>$footer</div>'), 'reminder1' => array('subject' => 'Erinnerung: Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Sicherlich haben Sie nur übersehen den noch offenen Betrag von $amount zu bezahlen. Bitte überweisen Sie diesen innerhalb 7 Tagen auf das angegebene Konto. </div><div>Die Rechnung können Sie online unter dem folgenden Link einsehen.</div><div><br></div><div>$viewButton</div><div><br></div><div>$footer</div>'), 'reminder2' => array('subject' => '2. Erinnerung: Rechnung von $account', 'template' => '<div>Hallo $contact</div><div><br></div><div>Wir bitten Sie den noch offenen Betrag von $amount innerhalb der nächsten 7 Tage zu überweisen. Sollten Sie den Betrag in der Zwischenzeit bereits bezahlt haben, so betrachten Sie dieses Schreiben als gegenstandslos. </div><div>Ihre Rechnung können Sie über den folgenden Button einsehen. </div><div><br></div><div style="text-align: center;">$viewButton</div><div><br></div><div>$footer</div>'), 'reminder3' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer')), 'defaultTemplates' => array('invoice' => array('subject' => 'Neue Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'quote' => array('subject' => 'Neues Angebot von $account', 'template' => '<div>$client,</div><br><div>Klicken Sie auf den folgenden Link um das Angebot über $amount anzuschauen.</div><br><div>$viewLink</div><br>$footer'), 'payment' => array('subject' => 'Zahlungseingang', 'template' => '<div>$client,</div><br><div>Vielen Dank für Ihre Zahlung von $amount.</div><br><div>$viewLink</div><br>$footer'), 'reminder1' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'reminder2' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer'), 'reminder3' => array('subject' => 'Erinnerung: Rechnung $invoice von $account', 'template' => '<div>$client,</div><br><div>Um Ihre Rechnung über $amount einzusehen, klicken Sie bitte auf den folgenden Link:</div><br><div>$viewLink</div><br>$footer')), 'emailFooter' => '<p><div>Mit freundlichen Grüßen, <br>$account</div></p>', 'title' => 'E-Mail Vorlagen')) in compiled.php line 15137
    at View->getContents() in compiled.php line 15125
    at View->renderContents() in compiled.php line 15109
    at View->render() in compiled.php line 16347
    at Response->setContent(object(View)) in compiled.php line 15848
    at Response->__construct(object(View)) in compiled.php line 8420
    at Router->prepareResponse(object(Request), object(View)) in compiled.php line 9515
    at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in compiled.php line 9992
    at Pipeline->then(object(Closure)) in compiled.php line 9516
    at ControllerDispatcher->callWithinStack(object(AccountController), object(Route), object(Request), 'showSection') in compiled.php line 9503
    at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\AccountController', 'showSection') in compiled.php line 8571
    
    opened by bnova-stefan 45
  • Enable setting all client fields when creating with invoice in API

    Enable setting all client fields when creating with invoice in API

    I am a complete newbie on here - although I would consider myself quite savvy so I'm either being daft or there are some issues with Zapier. Basically I am trying to automate the invoicing of our company by using zapper to connect our youcanbook.me booking system to invoiceninja.

    1. I created some test bookings/invoices - which works ok but when I delete the invoices they seem to re-appear?
    2. When selecting 'yes' to send invoice to client inside zapier it does not attach the pdf (just a link) but when sending email via invoice ninja itself - it does attach the pdf?
    3. I am not able to add a 'invoice due date' inside Zapier which renders the whole thing useless as it will not send out overdue reminders so we have to do this manually.

    Any help would be greatly appreciated

    Cheers

    opened by jb83 45
  • Unable to login

    Unable to login

    Hey there, yesterday I wanted to try out the new version, but after setup the following error persists:

    500: Error: {
        "message": "Call to a member function each() on null",
        "exception": "Error",
        "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Utils/Statics.php",
        "line": 78,
        "trace": [
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Controllers/BaseController.php",
                "line": 343,
                "function": "company",
                "class": "App\\Utils\\Statics",
                "type": "::"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Controllers/BaseController.php",
                "line": 300,
                "function": "response",
                "class": "App\\Http\\Controllers\\BaseController",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Controllers/Auth/LoginController.php",
                "line": 172,
                "function": "listResponse",
                "class": "App\\Http\\Controllers\\BaseController",
                "type": "->"
            },
            {
                "function": "apiLogin",
                "class": "App\\Http\\Controllers\\Auth\\LoginController",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
                "line": 54,
                "function": "call_user_func_array"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
                "line": 45,
                "function": "callAction",
                "class": "Illuminate\\Routing\\Controller",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
                "line": 255,
                "function": "dispatch",
                "class": "Illuminate\\Routing\\ControllerDispatcher",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
                "line": 197,
                "function": "runController",
                "class": "Illuminate\\Routing\\Route",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
                "line": 691,
                "function": "run",
                "class": "Illuminate\\Routing\\Route",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 128,
                "function": "Illuminate\\Routing\\{closure}",
                "class": "Illuminate\\Routing\\Router",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Middleware/Cors.php",
                "line": 34,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "App\\Http\\Middleware\\Cors",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Middleware/QueryLogging.php",
                "line": 42,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "App\\Http\\Middleware\\QueryLogging",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
                "line": 41,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
                "line": 127,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
                "line": 63,
                "function": "handleRequest",
                "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 103,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
                "line": 693,
                "function": "then",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
                "line": 668,
                "function": "runRouteWithinStack",
                "class": "Illuminate\\Routing\\Router",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
                "line": 634,
                "function": "runRoute",
                "class": "Illuminate\\Routing\\Router",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
                "line": 623,
                "function": "dispatchToRoute",
                "class": "Illuminate\\Routing\\Router",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
                "line": 166,
                "function": "dispatch",
                "class": "Illuminate\\Routing\\Router",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 128,
                "function": "Illuminate\\Foundation\\Http\\{closure}",
                "class": "Illuminate\\Foundation\\Http\\Kernel",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/app/Http/Middleware/Cors.php",
                "line": 34,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "App\\Http\\Middleware\\Cors",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/fideloper/proxy/src/TrustProxies.php",
                "line": 57,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Fideloper\\Proxy\\TrustProxies",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
                "line": 21,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
                "line": 21,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
                "line": 27,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
                "line": 87,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php",
                "line": 43,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 167,
                "function": "handle",
                "class": "Sentry\\Laravel\\Tracing\\Middleware",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
                "line": 103,
                "function": "Illuminate\\Pipeline\\{closure}",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
                "line": 141,
                "function": "then",
                "class": "Illuminate\\Pipeline\\Pipeline",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
                "line": 110,
                "function": "sendRequestThroughRouter",
                "class": "Illuminate\\Foundation\\Http\\Kernel",
                "type": "->"
            },
            {
                "file": "/home/steuerb2/domains/lars-kusch.de/test/public/index.php",
                "line": 57,
                "function": "handle",
                "class": "Illuminate\\Foundation\\Http\\Kernel",
                "type": "->"
            }
        ]
    }
    

    Thank you very much for your incredible cool software, Lars

    question 
    opened by LarsK1 44
  • License is too restrictive

    License is too restrictive

    Hi there,

    This software looks really great. I'm looking at self-hosted invoice systems and this one is fantastic. That said, I am afraid the license is too restrictive. I have no desire to rip off invoiceninja's business, and I appreciate the many hours that have been put into it programming it. But one of the virtues of open-source is the ability for people to fork software and take it into a different direction without needing to ask for permission.

    Currently the license says this:

    Redistributions of source code, in whole or part and with or without
    modification requires the express permission of the author
    

    Consider these scenarios:

    • You disappear. It could be an unexpected death, or a spontaneous and everlasting trip to the Caribbean. We are now stuck using a system that no one is allowed to advance forward because they cannot ask your permission.
    • Someone wants to take this project in a radically different direction that would benefit a lot of people, but you disagree with them. This prevents us from having a system that may be able to help a lot more people.
    • You decide to stop developing the project for whatever reason. We have to rely on you to update the license or transfer ownership of the project. Humans can be unpredictable though, so that is a risk.

    Under the present license, invoiceninja is "open-source software" by the loosest meaning of the term. Since the author has total control of how the code may be used, it cannot be consider free (libre) software, which I think is preferable

    It seems like this was your intention, but I wanted to bring this up in case it was something you would like to consider. I tend to prefer copyleft licenses like GPL since it has a layer of protection against corporate greed while still allowing people to fork the code freely.

    Thanks for your time

    opened by alexgleason 44
  • Incomplete Chunked Encoding

    Incomplete Chunked Encoding

    Since the update to 2.6.5, we are experiencing problem on our install with showing pages. It is giving error about ERR_INCOMPLETE_CHUNKED_ENCODING error

    capture d ecran 2016-07-21 a 10 36 06

    fixed 
    opened by gabthefencer 44
  • [Question] Concatenating text in settings/customize_design#content | pdfmake questions

    [Question] Concatenating text in settings/customize_design#content | pdfmake questions

    Hi again 😄. So I'm working on a customized invoice design and I'd like to use this block:

    {
        "text": "$account.work_phone",
        "margin": [
          5,
          30,
          10,
          5
        ],
        "style": "socialTEL",
        "absolutePosition": {
          "x": 100,
          "y": 100
        }
      },
    

    but instead of only the phone number I want the string "TEL | " to be concatenated before it. So it would spell "TEL | " + $account.work_phone.

    It seems like I can't provide JavaScript functions there and I'm a total noob concerning pdfmake.

    Is there a simple way to concatenate a string and a variable here?

    question 
    opened by Braintelligence 39
  • Converted invoice uses quote template intead of invoice template

    Converted invoice uses quote template intead of invoice template

    What version of Invoice Ninja are you running? ie v4.5.25 / v5.0.30 5.1.42

    What environment are you running? Docker

    Have you checked log files (storage/logs/) Please provide redacted output not applicable

    Have you searched existing issues? yes

    Have you reported this to Slack/forum before posting? no

    Describe the bug When converting quote to invoice, it uses quote's pdf template instead of invoice's pdf template

    Steps To Reproduce setup

    • settings > invoice design
    • ensure quote and invoice use different templates (I have a custom template for quotes, and a custom template for invoices)

    bug:

    • create quote
    • view pdf: it uses quote template as expected ...ok!
    • clone to invoice
    • view invoice pdf: it uses quote template ...bug!

    Expected behavior Quote and invoice should use their own templates, even in these cases:

    • convert quote to invoice
    • clone from/to quote/invoice
    • ...possibly other workflows I've forgotten?

    Screenshots no

    Additional context no

    (v5) Can you replicate the issue on our demo site? https://demo.invoiceninja.com can't customize on the demo site

    bug 
    opened by lonix1 38
  • Invoice not attached to emails

    Invoice not attached to emails

    Unfortunately, the invoice is not attached to an invoice sent to a customer.

    In email settings, the checkbox "attach invoices" is active. I use the button "send invoices" in the invoice view to send invoices.

    I run version 3.3.1 in a Docker environment.

    question 
    opened by MathiasRenner 36
  • We can't find a user with that e-mail address.

    We can't find a user with that e-mail address.

    Hi,

    I have a client trying to reset a password but he gets the message 'We can't find a user with that e-mail address.' I have checked the database and the email address exists. Are you using md5 for password encryption as I was going to try resetting in the database.

    This function was working before I upgraded to the latest version as I have a password reset in the database table.

    Thanks

    Mark

    opened by donttrustem 33
  • ISSUE_TEMPLATE folder is missing from v5-stable

    ISSUE_TEMPLATE folder is missing from v5-stable

    Hi,

    This one does not affect the software. 😉

    As the ISSUE_TEMPLATE folder is missing in this branch GitHub is no longer proposing templates since you changed the default branch for v5-stable.

    opened by vincentdh 0
  • Recurring invoice sent to original contact when contact is changed

    Recurring invoice sent to original contact when contact is changed

    What version of Invoice Ninja are you running? 5.5.49 - White label

    What environment are you running? Docker 🐳

    Have you checked log files (storage/logs/) Please provide redacted output Nothing relevant

    Have you searched existing issues? Yes, nothing found

    Have you reported this to Slack/forum before posting? Yes, nothing found

    Describe the bug When modifying which contact is receiving the invoice, the recurring invoice is still sent to the contact selected at the creation of the recurring invoice. Every time I need to change the contact, I have to delete and recreate the recurring invoice.

    Steps To Reproduce

    • Create and send a recurring invoice for a client with multiple contacts
    • Change the contact (not the client!) and wait for the next cycle of the recurring invoice.
    • Verify who received the invoice.

    Expected behavior

    • The next recurring invoice should be sent to the newly selected contact

    Screenshots Not applicable

    Additional context This problem was also present with older 5.5 versions, but can't tell exactly which versions.

    (v5) Can you replicate the issue on our demo site? https://demo.invoiceninja.com Did not tried

    opened by vincentdh 0
  • Swiss QR Bill unnecessary underline Adresszusatz

    Swiss QR Bill unnecessary underline Adresszusatz

    Swiss QR Bill inserts an unnecessary underline after street address, if you don't insert an Adresszusatz (I think that is called additional address in English)

    more info requested 
    opened by jameskimmel 2
  • Bump json5 from 1.0.1 to 1.0.2

    Bump json5 from 1.0.1 to 1.0.2

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • Multilanguage products

    Multilanguage products

    I would like to see that the products are multilanguage? So you only need to add 1 productname, one price and multi descriptions. So it's an advance in reports also when reporting sold products.

    Just a tought... 210719992-38c71c98-3f7b-4a31-bfe8-ece066d10f47

    feature request 
    opened by adoewa 0
Releases(v5.5.51)
  • v5.5.51(Jan 9, 2023)

    What's Changed

    • fix SEPA QR Code recurring invoice by @Hobby-Student in https://github.com/invoiceninja/invoiceninja/pull/8105
    • adding update_payment webhook by @paulwer in https://github.com/invoiceninja/invoiceninja/pull/8118
    • Product Sales Report by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8119
    • Minor improvements for checkout 3ds processing by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8120

    New Contributors

    • @Hobby-Student made their first contribution in https://github.com/invoiceninja/invoiceninja/pull/8105
    • @paulwer made their first contribution in https://github.com/invoiceninja/invoiceninja/pull/8118

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.50...v5.5.51


    Add guards to @auth blocks Fix SEPA QR Code recurring invoice @Hobby-Student Add vendor id filter Product Sales Report Add subscription filters Fixes for quote filters Filters for quotes Fixes for gateway webhooks - stripe Check late invoice, webhooks Fixes for use path Improve logic for migrating account plans from hosted and self hosted… Force primary contact on importing of client Refactor TaskScheduler into Scheduler Adjust appsetup so that cache rebuilds as expected Adding update_payment webhook @paulwer Minor improvements for checkout 3ds processing

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(131.42 MB)
  • v5.5.50(Jan 2, 2023)

    What's Changed

    • Flip sort order for payments in client portal by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8085
    • Minor fixes for tax currencies - vendor vs client by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8089
    • Fixes for Matomo by @LarsK1 in https://github.com/invoiceninja/invoiceninja/pull/8083
    • Fix eWay failures related to 32-bit integer limit by @joshuadwire in https://github.com/invoiceninja/invoiceninja/pull/8095

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.49...v5.5.50


    Flip sort order for payments in client portal Filter by private notes Update precision of ZMB Fixes for Matomo @LarsK1 Minor fixes for tax currencies - vendor vs client Fixes for change plan with subscriptions Fixes for alignment of text issues in subscription order overview Trim subscriptions Add vendors and clients as available includes for recurring expenses Harvest only the error message from the webhook endpoint Refactor for unique jobs Use id_token for apple when deleting companies Assign the expense to a converted PO Purchase Order Notifications Fixes for edge case with inappropriate use of group counters Fixes for category IDs for recurring expenses Fixes for Checkout authorization failure exception handling Logging for checkout 3ds error handling Enforce registration for subscriptions if configured Refactor subscription invoices to use standard allow temporary invoice numbers to prevent stale invoices Ensure Unique Emails Move stale invoice cleanup to scheduler Clean up for register form Fix eWay failures related to 32-bit integer limit @joshuadwire Add finer grained resolution to created_at query Refactor for bank status filters Refactor quote filters remove iconv() from Pdf numbering Refactor for subscriptions and changing between subscriptions Reduce object sizes in Livewire Refactor Livewire passing references Minor fixes for expense validation Fixes for checkout reference lengths

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(128.46 MB)
  • v5.5.49(Dec 16, 2022)

    What's Changed

    • OTP for subscriptions by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8069
    • Quote filters for expired and upcoming by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8071
    • Change Klarna intregration to comply with Klarna's rules by @LarsK1 in https://github.com/invoiceninja/invoiceninja/pull/8059
    • Force a currency for vendors by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8074
    • Subscriptions v2 by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8076
    • Attach invoice documents to payment emails by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8077
    • Disable auto fill for credit cards by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8078
    • minor fixes for subscriptions by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8080
    • v5.5.49 by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8081

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.48...v5.5.49


    Change klarna integration according to Klarna's rules @LarsK1 Disallow payment with Klarna for business out of US Minor cleanup for gateway model OTP for subscriptions Subscriptions v2 Refactor for starting jobs with middleware Remove all instances of dispatchSync() Fixes for update payment methods - Stripe Watch webhooks on hosted Force a currency for vendors Add doc block definitions Refactor to use vendor currencies for purchase orders Drop use_vendor_currency column from companies Refactor for how we deal with delete payments and client paid to dates Fixes for profit/loss request Fixes for Apple OAuth Ensure we set the client localized send dates for recurring invoices Clean up around payment emails Move attachments into data Quote attachments as data Move logic in alpine for transitions Attach invoice documents to payment emails Disable auto fill for credit cards Do not autobilling recurring invoices in draft state Prevent relinking of payments with transactions Prevent relinking of payments with transactions Update translations Subscriptions v2 - handle trial


    Some important fixes in this release.

    We have fixed an issue with CardJS where autofilling of credit cards from browsers such as Chrome would fail to correctly pass through the expiry date. Purchase orders will now default to using the vendor currency that has been set. If no vendor currency is set, we will force the company currency to populate the vendor currency. In this release payment emails will also attach invoice documents if documents are configured to be sent in emails

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(128.45 MB)
  • v5.5.48(Dec 9, 2022)

    What's Changed

    • Add support for Matomo by @LarsK1 in https://github.com/invoiceninja/invoiceninja/pull/8039
    • Fixes for Matomo URL/ID by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8049
    • Stripe: add support for Klarna payment by @LarsK1 in https://github.com/invoiceninja/invoiceninja/pull/8036

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.47...v5.5.48


    Add support for Matomo Add Matomo to database table Fixes for Matomo URL/ID Add idempotency key for mollie Fixes for Klarna Add missing translations Fixes for phone validation Add checks prior to attempting to add in payment types Add transaction filters for payments and expenses Minor clean up of layout files Use redirect away for mollie Disable auto billing on recurring invoices and generated invoices Fixes for type hints Catch mollie payments if redirect URL is null Add proper description to mollie credit card transactions Minor fixes for stripe translations Subscriptions v2 (WIP)

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(128.40 MB)
  • v5.5.47(Dec 7, 2022)

    Add payment id to bank transaction matching Expand document name in client portal from 20 -> 40 chars Ensure we retrieve archived invoices in Stripe payment webhook Check for properties before accessing Improve bank transaction filters Ensure client is tagged on view quote activity Add convert currency properties to company table Subscriptions v2

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(128.38 MB)
  • v5.5.46(Dec 5, 2022)

    What's Changed

    • Provide translations by @beganovich in https://github.com/invoiceninja/invoiceninja/pull/7972
    • Fixes for custom labels/values for credits by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8030
    • Add status to client export by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8032
    • Reserved keywords are aware of date in recurring invoice PDF preview by @talkstraightuk in https://github.com/invoiceninja/invoiceninja/pull/7979
    • Update Sentry Laravel SDK to v3 by @cleptric in https://github.com/invoiceninja/invoiceninja/pull/8026
    • Tests for linking payments with expenses by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8033
    • Add delete webhook for projects by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8034

    New Contributors

    • @cleptric made their first contribution in https://github.com/invoiceninja/invoiceninja/pull/8026

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.45...v5.5.46


    Reserved keywords are aware of date in recurring invoice PDF preview @talkstraightuk Fixes for custom labels/values for credits Do not send reminders to trashed contacts Fixes for latency when sending emails Update Sentry Laravel SDK Fixes for the way we attach documents/pdfs to puchase orders Fixes for Checkout Add status to client export Tests for linking payments with expenses Update lock file for Sentry 3 Add delete webhook for projects Allow overriding the default locale in .env file Add Off Session to Stripe Auto Billing request Improve off session token billing with stripe Additional check to ensure recurring invoices have invitations Clean up for old email attachments Fixes for bank matching serivce Fixes for linking payments/expenses Refactor language translations Update Stripe to latest API with idempotency keys

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(128.37 MB)
  • v5.5.45(Dec 2, 2022)

    What's Changed

    • Fixes for Stripe payment translations by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8019
    • Count Bank Account Created on Hosted by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8020
    • v5.5.45 by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8021

    Full Changelog: https://github.com/invoiceninja/invoiceninja/compare/v5.5.44...v5.5.45 Add Payment id to bank transactions table Tests for linking expenses and payments Add css class to enable resizing of payment QR Codes Increase chunk size for autobill Fixes for payment tests Fixes for Zoho Import Fixes for single account creation Add form request for enable two factor authentication Updates for translations for Stripe Additional checks for reminder scheduling for endless reminders Updates for cookie consent - translate to locale if available Ensure due_date_days is populated Fixes for edge cases with recurring invoice due date days = 0 Count Bank Account Created on Hosted

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.89 MB)
  • v5.5.44(Nov 30, 2022)

    What's Changed

    • Translate Stripe payment texts by @LarsK1 in https://github.com/invoiceninja/invoiceninja/pull/7999
    • Bug Fix - Client balance corrupted when transaction is deleted. by @turbo124 in https://github.com/invoiceninja/invoiceninja/pull/8010
    • #8008 csv import auto detect delimiter by @checkitsedo in https://github.com/invoiceninja/invoiceninja/pull/8009

    Refactor PDF attachments as data instead of file paths Inject slight delay into emails Translate Stripe payment texts thanks @LarsK1 LarsK1 committed 22 hours ago Implement checkout object for phone Minor fixes for Stripe Payment Intent query Fixes for store bank transaction Add frequency to recurring invoice export Fixes for storing bank transactions Add CSV delimiter Autodetection thanks @checkitsedo Fixes for CSV imports, replace work_phone with phone Fixes for applying payment from a transaction, and then unwinding the… Fixes for multiple deletes on a single invoice Do not allow restoration of a invoice with a deleted payment Fixes for expense category validation Fixes for Stripe payment translations

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.89 MB)
  • v5.5.43(Nov 29, 2022)

    Spread out cron jobs to even system load Updates for SMS confirmations Update twilio sms authorize() method Improve cron definitions to prevent race conditions Improve validation layer for reports Minor refactor for reminder jobs Refactor the way we execute scheduled commands Use translation for request cancellation Clean up subscription service Fix for subscription cancellation where there are no outstanding invoices Fixes for displaying correct quote status in client portal Minor fixes for bank transaction imports Fixes for creating backup directory if it does not exist Minor fixes for type checks Minor fixes for failed notifications Don't return value from void function Refactor reminder crons Fixes for client number race conditions when importing stripe clients Fixes for stripe importing customers Wind back Middleware for Bank Service Matching Fixes for updated_at in bank_transaction_rules Change private to protected property for middleware key Inject small delay into email dispatch Implement chunking of auto bill data Handle nothing being passed into sort() filter Fixes for missing properties in store bank integration request Minor fix for client balance adjustment Add more entropy when updating company ledger Fixes for demo mode Refactor for Stripe payment intents + charges + new api

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.89 MB)
  • v5.5.42(Nov 25, 2022)

    [Feature] Bank Transaction Rules [Feature] API Doc Blocks for Bank Transaction Rules [Bug fix] Fixes for failed email mailer, edge case where balances may not adjust [Bug fix] Adjust when we send certain events after an email failure [Feature] Match Bank Transactions Tests for matching expenses Transaction rules tests [Bug fix] Remove delay from events [Bug fix] Escape variables in custom designs Minor fixes for create company routes [Bug fix]Catch EPC QR failures [Feature] Add reserved keywords for year/month before and after [Bug fix] Set encoding to UTF-8 for EPC QR Codes [Bug fix] Improve account resolution from Yodlee API [Bug fix] Fixes for Paypal Token payments [Bug fix]Fixes for blank client address in Swiss QR Codes Adjust rate limits to prevent abuse [Bug fix] Fixes for importing stripe customers where no customers exist in stripe [Bug fix] Fixes for bank transaction csv imports [Bug fix] Catch payment intents without charges key [Feature] Invoice task locking [Bug fix] Enforce password protection across entire client portal if invoice pa… [Feature] Allow bulk email with selecting a template [Bug fix] Purge company transactions/integrations [Bug fix] Fixes for custom client portal subdomains Add filters for tasks by project Update validation rules for subscriptions [Bug fix] Fixes for SendReminders firing twice [Bug fix] Adjustments for handling invoice deletion [Bug fix] Add checks to prevent duplicate reminders from being sent [Feature] Bulk match transactions [Bug fix] Refactor Stripe API Webhooks to work across all API Versions

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.89 MB)
  • v5.5.41(Nov 19, 2022)

    Add a new design - Calm Fix migrations for new invoice design Fixes for gocardless events Prevent deleted/archived/completed transactions from being re-converted Fixes for bank transaction tests Fixes for playful design Stubs for search authorize.net Fixes for gocardless delayed instant bank payment notification: Add a Paid CSS Overlay to invoice designs using the variable $status_logo Late fee tests Tests for recurring invoice variables Minor fixes for date range calculation for :WEEK Fixes for Fortre payment driver and where no service fees are applicable Clean input for custom css Implement additional filters for list views

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.75 MB)
  • v5.5.40(Nov 16, 2022)

    Process Invoice Numbers which includes letters Flip the request requirements Save default terms/footers Allow different mail from / mail name for multi company mailers Patch for 2FA Verification Triggered actions for Credits / Quotes Expired quote notifications Fixes for uses_inclusive_taxes with recurring invoices Fixes for bank transaction imports Reset event delay New Design Update Readme

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.74 MB)
  • v5.5.39(Nov 13, 2022)

    EPC QR Codes Additional logging for Checkout transactions Improvements for using react with self host Minor fixes for updating a recurring invoice Minor fixes for negative invoices Change UX for downloading documents from the client portal Ensure we post event notifications when the invoice is marked as sent Change logo Ensure bank integration id is always present Fixes for leaking bank transactions

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.74 MB)
  • v5.5.38(Nov 10, 2022)

    Allow individual SMTP per company Add verified phone number flag Check users number for validity for SMS verifications User Twilio API to verify phone numbers User Twilio API to verify phone numbers Update phpunit spec for github actions Update translations Fixes for imports Datamapper classes Return early in some hosted jobs Override phone number with international format Fixes for bank transaction imports Minor fixes for validation Minor fixes for Bank Transactions / Integratiosn Improve error handling with Checkout Payment Gateway Improve handling of saving a client that has been created from an invoice import Show credit balance as amount for draft credits Migrate password hashes Add trashed records to exports Obfuscate account numbers Yodlee Webhooks Update validation rules Fixes for imports Add client and status by default to invoice item exports Fixes for how we deal with over/under payments with transactions Remove html_backup column from backups tables Only store html backups for plan users on hosted service Fixes for dropping columns if they do not exist yet Improvements for instant bank payments with gocardless Remove html_back as key from restore Working on gocardless instant bank payment notifications GoCardless offline instant bank payments Additional logging for Microsoft acccounts Fixes for inventory management Fixes for bank transactions Fixes for 2FA Fixes for SEPA auto-billing Add missing translations Rate limit bank syncing internally, not at edge of application Minor fixes for Paypal Fixes for the Forte payment driver Fixes for csv ingest Improve quality of payment emails Line item tax amounts

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.73 MB)
  • v5.5.37(Nov 2, 2022)

    Merge PDFs Fixes for failed payments when the paypal credentials are incorrect Fixes for stripe autobilling Don't link entities when we are in a transaction Fixes for payment email preview QR codes for invoices as a variable Return reminders to dispatch QR Code Fixes Minor fixes for QR Codes Update merge actions to bulk_print Improve error handling of illegal relation loading Minor fixes for refunds Fixes for non existent systemhealth setting Improve memory handling in jobs Fixes for imports - date formating Fixes for WePay

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.21 MB)
  • v5.5.36(Oct 29, 2022)

  • v5.5.35(Oct 28, 2022)

  • v5.5.34(Oct 28, 2022)

    Remove sentry from self host Fixes for purchase order viewed activity Additional checks for exchange rates Fixes for Yodlee Test Fixes for bank transaction tests Set company defaults for expenses when matching bank transactions Wipe OAuth data when changing email addresses Fixes for tests Improve check data Minor fixes when calculating invoice cancellations 2FA reset Fixes for Payment Previews Order designs in ascending order Restore paymentable reliably when restoring invoice with attached pay… Pass references instead of full models into auto bill jobs Restrict size and amount of jobs Fixes for breaking change in CreateInvoicePdf Updates for bug with Sentinel / Redis

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(123.20 MB)
  • v5.5.33(Oct 26, 2022)

    MatchBankTransactions Working on matching transactions Expense categories Transaction expense resolution Resolve categories Add provisional match Auto pull transactions when linking accounts Fill from_date to be one year in the past Add transaction id to expenses and payments Fixes for bank integration routes Allow Bank Accounts to be created manually Save Bank Transaction manually Bank Transactions matching default category ID Always force a baseType Return list of bank transactions Minor fixes for braintree 3DS Disable auto billing when an invoice has been refunded. Adjust status if invoice is modified after payment Attempt to import documents into new company

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(119.25 MB)
  • v5.5.32(Oct 14, 2022)

    Fixes for purge client Add Preloader Fixes for document indexing Fixes for indexes Add to fillable Fixes for storage paths in self host Clean up for preload Minor fixes for recurring invoices Handle invoices going from zero balance to positive balance Fixes for refund activity notes Minor fixes for filters Minor changes for setup intents Minor fixes for check data

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(119.16 MB)
  • v5.5.31(Oct 9, 2022)

  • v5.5.30(Oct 9, 2022)

  • v5.5.29(Oct 8, 2022)

  • v5.5.28(Oct 6, 2022)

  • v5.5.27(Oct 6, 2022)

  • v5.5.26(Oct 5, 2022)

    Remove authorize for SEPA Minor fixes Fixes for generating counters Strip tags from client and user nameS Remove redundant code in save company request fix: SwissQr postal code appears twice thanks @filo87 Return early to improve PDF generation performance Fixes for WePay Database indexing Updated schema dump

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(119.09 MB)
  • v5.5.25(Oct 1, 2022)

    Minor fixes for stripe imports Do not serialize company after migration Put in checks for client filters Show labels of custom fields in registration form Remove direct google URLs Minor fixes for QR Code generation for live previews Improve livewire performance with Defer Fixes for sms verification list Minor fixes for Stripe ACH Verifications Fixes for wepay

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(119.08 MB)
  • v5.5.24(Sep 21, 2022)

    Working on hosted upgrades Improve trial page Increase backoff period Force company currency for purchase orders Ensure we do not remove gateway fee prematurely Fixes for payment layouts (Regression) Exclude canvaskit path for hosted Implement 3DS for Braintree Fixes for seeders Fixes for checkout.com customer request class

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(118.98 MB)
  • v5.5.23(Sep 16, 2022)

    Fixes for send now functionality of recurring invoice Single root element for wepay signups Fixes for single root - Livewire Update resources to defer Minor fixes for client portal queries Optimize css bundles Fixes for tests If blank exchange rate is sent, force 1

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(118.98 MB)
  • v5.5.22(Sep 15, 2022)

    Configuration for in app purchases Move lightlogs to batch Improve client imports Add recurring invoice id to expense when it is generated Fixes for support messages Fixes for check data Minor fixes for support messages Ensure we also query trashed client records before lock Logging around generates counter Additional logging in generates counter Minor fixes + additional logging Fixes for applying numbers Fixes for entity policy not capturing recurring invoice policies Update customer details Fixes for restricting csv imports Add redundancy checks when creating task numbers Port entity policy changes to view() policy Set SEPA stripe token payments to pending Fixes for QR Ibans with no payment references Fixes for adding a payment method with Checkout.com Adapt Email entity sending using emailentity Fixes for sending custom templates with purchase orders Add webhook functionality to credits Fixes for tests

    Source code(tar.gz)
    Source code(zip)
    invoiceninja.zip(119.25 MB)
Owner
Invoice Ninja
An open-source invoicing app built with Laravel and Flutter
Invoice Ninja
Vuedo is a blog platform, built with Laravel and Vue.js.

Vuedo What is Vuedo? Vuedo is an open source project built with Laravel and Vue.js. It is a live example of how everything works together. Interested

vuedo 2.3k Dec 24, 2022
The Laravel.io Community Portal.

Laravel.io This is the repository for the Laravel.io community portal. The code is entirely open source and licensed under the MIT license. We welcome

Laravel.io 2.2k Dec 23, 2022
Laravel e-commerce Application.

Antvel Introduction Antvel is an ecommerce project written in Laravel 5.* intended for building a friendly eStore either for startups or big companies

Antvel - Official 650 Dec 28, 2022
A Laravel publishing platform

Introduction Canvas is a fully open source package to extend your existing Laravel application and get you up-and-running with a blog in just a few mi

Todd Austin 3.1k Jan 2, 2023
Examples of using each Illuminate component in non-Laravel applications

Torch - Using Laravel's Illuminate Components Independently Torch is a project to provide instructions and examples for using Illuminate components as

Matt Stauffer 1.7k Dec 30, 2022
Deployer is a free and open source deployment tool.

Deployer Deployer is a PHP Application deployment system powered by Laravel 6.0, written & maintained by Stephen Ball. Check out the releases, license

Stephen Ball 886 Dec 15, 2022
Simple and Robust solution to manage your software development project

Project moved to GitScrum CE https://github.com/gitscrum-team/GitScrum-Frontend More than 6.600 business use GitScrum to manage their agile projects W

GitScrum 2.8k Jan 8, 2023
Personal CRM. Remember everything about your friends, family and business relationships.

Personal Relationship Manager Monica is a great open source personal relationship management system. Introduction Purpose Features Who is it for? What

Monica 18.5k Jan 2, 2023
Free and Online Accounting Software

Akaunting™ Akaunting is a free, open source and online accounting software designed for small businesses and freelancers. It is built with modern tech

Akaunting 5.8k Dec 27, 2022
"Student Management System (SMS) is a solution tool that is designed to track, maintain and manage all the data generated by a School, including the grades of a student.

STUDENT-MANAGEMENT-SYSTEM "Student Management System" (SMS) is a solution tool that is designed to track, maintain and manage all the data generated b

SAMBIT RAJ 13 Aug 21, 2021
Invoices, Expenses and Tasks built with Laravel and Flutter

Invoice Ninja Hosted | Self-Hosted We're on Slack, join us at slack.invoiceninja.com or if you like StackOverflow Just make sure to add the invoice-ni

Invoice Ninja 6.8k Dec 26, 2022
Crater is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates.

Introduction Crater is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates. Web Applica

Bytefury 6.7k Jan 1, 2023
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
API for flutter app in laravel with sanctum

Flutter APP Flutter: APP with auth in laravel About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe develop

Angel Flores 0 Apr 9, 2022
ITC Expenses Management System

ITC Expenses Management Installation The installation of this project requires composer

Ahmad Mustapha 5 Dec 7, 2021
A Symfony bundle built to schedule/consume repetitive tasks

Daily runs Code style Infection PHPUnit Rector Security Static analysis A Symfony bundle built to schedule/consume repetitive tasks Main features Exte

Guillaume Loulier 98 Jan 4, 2023
Simple Laravel Invoice Generator Sling — open-source web application that helps you create invoices and track income.

Simple Laravel Invoice Generator Sling — open-source web application that helps you create invoices and track income. Table of Contents About

Ray Icemont 4 Nov 22, 2022
Generate PDF invoices for your customers in laravel

What is Invoices? Invoices is a Laravel library that generates a PDF invoice for your customers. The PDF can be either downloaded or streamed in the b

Erik C. Forés 399 Jan 2, 2023
EasyQuickImport — Import transactions, invoices and bills into QuickBooks Desktop from Excel or CSV

EasyQuickImport is a tool that helps you import invoices, bills, transactions, customers and vendors into QuickBooks Desktop in multiple currencies in bulk.

Dmitrii Poddubnyi 13 Jan 4, 2023
La Fattura is a system designed for companies and individuals of all sizes to manage invoices

La Fattura La Fattura is a system designed for companies and individuals of all sizes to manage invoices, it integrates with Stripe for payments and w

Sofia Vicedomini 5 Feb 25, 2022