Skip to content

Latest commit

 

History

History
113 lines (73 loc) · 2.23 KB

README.md

File metadata and controls

113 lines (73 loc) · 2.23 KB

Invoice Ninja SDK

Installation

Add the Invoice Ninja SDK

composer require invoiceninja/sdk-php

Setup

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.

Supports

  • Clients
  • Invoices/Quotes
  • Products
  • Payments
  • Tasks
  • Vendors
  • Expenses
  • TaxRates
  • Credits

Retrieving Models

Retrieve all clients

$clients = Client::all();

Retrieve a client by its primary key.

$client = Client::find(1);

Inserting & Updating Models

Create a new client

$client = new Client('[email protected]');
$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();

Deleting Models

$client->archive();
$client->delete();
$client->restore();

Events

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

Statics

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();