Eindelijk!
Dit bespaart me zo veel tijd, last en zorgen
Lang geleden dat ik nog eens een WoW gevoel had bij iets saai als facturen.
Voor diegenen die niet alles willen lezen, hier alvast een linkje:
InvoiceNinja

Het probleem:
Ik gebruik al jaren een open source programma voor mijn facturatie, maar dit wordt niet meer onderhouden.
Gevolg:
- Verouderde en onveilige code
- Bugs waardoor recurring invoices niet altijd worden aangemaakt
- Geen API waardoor ik vanuit mijn php code geen facturen kan aanmaken
- ...
Nu ben ik al een 6-tal maanden facturatie software aan het bekijken en evalueren, maar niets was echt nét dat wat ik zocht.
Ofwel was het super duur, ofwel had het geen simpele API, ofwel ontbraken er belangrijke functies.
Nu heb ik een open source, gratis, facturatiepakket gevonden dat dit alles doet en zelfs meer!
Functies
- Recurring invoices
- Klanten kunnen zelf inloggen en betalen (super veel betaalmethodes ondersteunt!)
- Open source, dus eenvoudig aan te passen
- Opvolgen van expenses voor klanten, welke je kan toevoegen aan een factuur
- Offertes opmaken voor klanten en dit dan nadien automatisch laten omzetten in een factuur
- Timer van taken, zodat je je tijd kan omzetten naar een factuur
- Super eenvoudige API
- Integratie in je eigen site
- Gratis hosted oplossing
- Nog veel veel meer.
Zelf maak ik gebruik van hun hosted oplossing.
Ik heb wel servers en ruimte genoeg, maar heb geen zin meer om dit zelf te onderhouden.
Het gratis pakket is ruim voldoende, maar heb als dank toch die 50€/jaar er aan gegeven.
Is het zeker waard!
Aangezien ik wel wat tijd heb gestopt in de PHP InvoiceNinja API code, deel ik hierbij mijn codes:
Maken van een nieuwe klant
Display All
Maar wat nog leuker is: je kan een klant met 1 call meteen aanmaken samen met een factuur.
Hiervoor heb ik volgende code geschreven:
Display All
De code legt zichzelf eigenlijk uit.
Het enige dat je dient te doen is een API token aanmaken in InvoiceNinja en dit vervolgens in te vullen op lijn 19.
Vervolgens enkel onderaan de gegevens van je klant/factuur invullen.
De API is super slim en zal zelf nieuwe producten/klanten aanmaken als ze nog niet bestaan - en anders ze updaten.
De makers zijn heel vriendelijk en helpen super snel!
Nog een laatste keer de link:
InvoiceNinja
Hopelijk besparen jullie even veel tijd en zorgen als mij!
K.Rens
Dit bespaart me zo veel tijd, last en zorgen

Lang geleden dat ik nog eens een WoW gevoel had bij iets saai als facturen.
Voor diegenen die niet alles willen lezen, hier alvast een linkje:
InvoiceNinja
Het probleem:
Ik gebruik al jaren een open source programma voor mijn facturatie, maar dit wordt niet meer onderhouden.
Gevolg:
- Verouderde en onveilige code
- Bugs waardoor recurring invoices niet altijd worden aangemaakt
- Geen API waardoor ik vanuit mijn php code geen facturen kan aanmaken
- ...
Nu ben ik al een 6-tal maanden facturatie software aan het bekijken en evalueren, maar niets was echt nét dat wat ik zocht.
Ofwel was het super duur, ofwel had het geen simpele API, ofwel ontbraken er belangrijke functies.
Nu heb ik een open source, gratis, facturatiepakket gevonden dat dit alles doet en zelfs meer!
Functies
- Recurring invoices
- Klanten kunnen zelf inloggen en betalen (super veel betaalmethodes ondersteunt!)
- Open source, dus eenvoudig aan te passen
- Opvolgen van expenses voor klanten, welke je kan toevoegen aan een factuur
- Offertes opmaken voor klanten en dit dan nadien automatisch laten omzetten in een factuur
- Timer van taken, zodat je je tijd kan omzetten naar een factuur
- Super eenvoudige API
- Integratie in je eigen site
- Gratis hosted oplossing
- Nog veel veel meer.
Zelf maak ik gebruik van hun hosted oplossing.
Ik heb wel servers en ruimte genoeg, maar heb geen zin meer om dit zelf te onderhouden.
Het gratis pakket is ruim voldoende, maar heb als dank toch die 50€/jaar er aan gegeven.
Is het zeker waard!
Aangezien ik wel wat tijd heb gestopt in de PHP InvoiceNinja API code, deel ik hierbij mijn codes:
Maken van een nieuwe klant
PHP Source Code: klantmaken.php
- <?php
- function sendRequest($url, $data, $type = 'POST')
- {
- $url = "https://app.invoiceninja.com/api/v1/" . $url;
- echo $url;
- $data = json_encode($data);
- echo $data;
- $curl = curl_init();
- $opts = [
- CURLOPT_URL => $url,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_CUSTOMREQUEST => $type,
- CURLOPT_POST => $type === 'POST' ? 1 : 0,
- CURLOPT_POSTFIELDS => $data,
- CURLOPT_HTTPHEADER => [
- 'Content-Type: application/json',
- 'Content-Length: ' . strlen($data),
- 'X-Ninja-Token: REPLACE_WITH_YOUR_TOKEN', // Token I created in advanced settings
- ],
- ];
- curl_setopt_array($curl, $opts);
- $response = curl_exec($curl);
- curl_close($curl);
- echo $response;
- return json_decode($response);
- }
- $data = new stdClass;
- // Aanmaken nieuwe klant:
- $data->name='Tim Berk';
- $data->contact->email='[email protected]';
- $data->contact->first_name='Tim';
- $data->contact->last_name='Berk';
- $data->city='Stadsnaam';
- $data->postal_code='1234';
- $data->address1='Straat 123';
- $data->country_id='528'; //International country ID, see wikipedia
- sendRequest('clients', $data, "POST");
- ?>
Maar wat nog leuker is: je kan een klant met 1 call meteen aanmaken samen met een factuur.
Hiervoor heb ik volgende code geschreven:
PHP Source Code: klantenfactuur.php
- <?php
- function sendRequest($url, $data, $type = 'POST')
- {
- $url = "https://app.invoiceninja.com/api/v1/" . $url;
- echo $url;
- $data = json_encode($data);
- echo $data;
- $curl = curl_init();
- $opts = [
- CURLOPT_URL => $url,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_CUSTOMREQUEST => $type,
- CURLOPT_POST => $type === 'POST' ? 1 : 0,
- CURLOPT_POSTFIELDS => $data,
- CURLOPT_HTTPHEADER => [
- 'Content-Type: application/json',
- 'Content-Length: ' . strlen($data),
- 'X-Ninja-Token: REPLACE_WITH_YOUR_TOKEN', // Token I created in advanced settings
- ],
- ];
- curl_setopt_array($curl, $opts);
- $response = curl_exec($curl);
- curl_close($curl);
- echo $response;
- return json_decode($response);
- }
- //Aanmaken factuur + klant
- $data = new stdClass;
- //$data->client_id=17; Kun je gebruiken als je een eerder gemaakte klant wil gebruiken om factuur aan te koppelen
- $data->name='Tim Berk';
- $data->email='[email protected]';
- $data->first_name='Tim';
- $data->last_name='Berk';
- $data->city='Stadsnaam';
- $data->postal_code='1234';
- $data->address1='Straat 123';
- $data->country_id='528'; //Will be added in the next release
- $data->invoice_items[0]->product_key="Volgehuisje";
- $data->invoice_items[0]->cost="2.5";
- $data->invoice_items[0]->notes="Witte kleur";
- $data->invoice_items[0]->qty="1";
- $data->tax_name="VAT / BTW";
- $data->tax_rate="21";
- $data->paid="3.03"; //Only set this if the user already paid the invoice
- sendRequest('invoices', $data, "POST");
- ?>
Het enige dat je dient te doen is een API token aanmaken in InvoiceNinja en dit vervolgens in te vullen op lijn 19.
Vervolgens enkel onderaan de gegevens van je klant/factuur invullen.
De API is super slim en zal zelf nieuwe producten/klanten aanmaken als ze nog niet bestaan - en anders ze updaten.
De makers zijn heel vriendelijk en helpen super snel!
Nog een laatste keer de link:
InvoiceNinja
Hopelijk besparen jullie even veel tijd en zorgen als mij!
K.Rens
4,666 times read
K.Rens -
@sjaakmans:
Het is PHP en Mysql, dus vrij eenvoudig aan te passen als het toch niet volledig naar smaak zou zijn.
Verder heb je heel wat opties om logo, font, text size, tekst zelf etc aan te passen en heb je de keuze uit wel wat style templates.