skip to content

API - Add New Invoice

URL: GenerateNewInvoice.php

Required Fields:

username
password
data (array containing items) - should be in this format:

data[$i][0] - prod_code
data[$i][1] - qty
data[$i][2] - description
data[$i][3] - amount
data[$i][4] - currency
data[$i][5] - vat_applies //1 or 0
data[$i][6] - vat_percentage //decimal(20,2)
data[$i][7] - amount_includes_vat //1 or 0

ClientID or these client related fields:

client_invoice_name (255 characters max)
client_email (255 characters max)

Optional Client Related Fields (If no ClientID is supplied):

client_vat_nr (255 characters max)
client_phone_nr (20 characters max)
client_phone_nr2 (20 characters max)
client_fax_nr (20 characters max)
client_postal_address1 (255 characters max)
client_postal_address2 (255 characters max)
client_postal_address3 (255 characters max)
client_postal_address4 (255 characters max)

Optional Fields:

OrderNr (10 characters max)
AdditionalLabel1 (12 characters max)
AdditionalValue1 (32 characters max)
AdditionalLabel2 (12 characters max)
AdditionalValue2 (32 characters max)
AdditionalLabel3 (12 characters max)
AdditionalValue3 (32 characters max)
DiscountAmount (decimal(20,2))
DiscountPercentage (decimal(20,2))
prepend_nr (9 characters max)
append_nr (9 characters max)
EmailToClient (true or false)
PaymentDate - YYYY-MM-DD, only if you also want to assign a payment
PaymentMethod - Cash,Credit Card,Debit Card,Debit Order,EFT, only if you also want to assign a payment
PaymentAmount - decimail(20,2), only if you also want to assign a payment
ReferenceNumber - (20 characters max), only if you also want to assign a payment
SendThankYou - true or false, only if you also want to assign a payment, and send proof of payment to the client.
mark_as_paid - on=true,off=false, only if you want to mark the invoice as paid

Returns:

JSON array containing:

$array[url] - the url where the document can be downloaded
$array[invoice_nr] - the invoice number
$array[email_url] - url to open to have the document emailed to the client

Example PHP code

$param['username'] = '';
$param['password'] = '';
$param['ClientID'] = '';
$param['data[0][1]'] = ''; //first product
$param['data[0][2]'] = '';
$param['data[0][3]'] = '';
$param['data[0][4]'] = '';
$param['data[0][5]'] = '';
$param['data[0][6]'] = '';
$param['data[0][7]'] = '';
$param['data[1][1]'] = ''; //second product
$param['data[1][2]'] = '';
$param['data[1][3]'] = '';
$param['data[1][4]'] = '';
$param['data[1][5]'] = '';
$param['data[1][6]'] = '';
$param['data[1][7]'] = '';
	
foreach ($param as $key => $val) {
  $request.= $key . '=' . urlencode($val);
  $request.= '&';
}
$request = substr($request, 0, -1); //remove trailing &

$url = 'https://www.invoicesonline.co.za/api/GenerateNewInvoice.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //set the url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return as a variable
curl_setopt($ch, CURLOPT_POST, 1); //set POST method
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //set the POST variables
$response = curl_exec($ch); //run the whole process and return the response

 

Updated: Thu, 27 August 2015