Add the Invoice Ninja SDK
composer require invoiceninja/sdk-php
require __DIR__ . '/vendor/autoload.php';
use InvoiceNinja\Config as NinjaConfig;
use InvoiceNinja\Models\Client;
NinjaConfig::setURL('https://ninja.dev/api/v1');
NinjaConfig::setToken('Your Token');
- To connect to the hosted version use
https://app.invoiceninja.com/api/v1
as the URL. - You can either use the free hosted trial or install the app to create an API token.
- Clients
- Invoices/Quotes
- Products
- Payments
- Tasks
- Vendors
- Expenses
- TaxRates
- Credits
Retrieve all clients
$clients = Client::all();
Retrieve a client by its primary key.
$client = Client::find(1);
Create a new client
$client = new Client('test@example.com');
$client->save();
Update an existing client
$client->vat_number = '123456';
$client->save();
Create an invoice
$invoice = $client->createInvoice();
$invoice->addInvoiceItem('Item', 'Some notes', 10);
$invoice->save();
Download an invoice PDF
$pdf = $invoice->download();
$client->archive();
$client->delete();
$client->restore();
Register subscription for new client
Client::subscribeCreate('http://example.com/...');
Convert posted data to a model
$input = file_get_contents('php://input');
$client = Client::hydrate($input);
Currently supported for clients, invoices, quotes and payments
Retrieve the static dataset Invoice Ninja uses
Get all statics
Statics::all();
Get specific static
Statics::countries();
List of available statics
Statics::currencies();
Statics::sizes();
Statics::timezones();
Statics::dateFormats();
Statics::datetimeFormats();
Statics::languages();
Statics::paymentTerms();
Statics::paymentTypes();
Statics::countries();
Statics::invoiceDesigns();
Statics::invoiceStatus();
Statics::frequencies();
Statics::gateways();
Statics::fonts();
Statics::banks();