Innvoice Documentation

Software version: 1.03

1 The Dashboard

After logging into Innvoice, you will be take to your main dashboard. The dashboard page will give you a clear overview of the current state of affairs regarding your invoices, payments and clients.

Innvoice

The three blocks at the top, indicate the amounts received, due and past due. The graph below shows total income for this year, distributed per month and compared to the previous year. The second graph shows the total income for this year distributed per client.

Please note: the dashboard can only display a single currency. If you have invoices in multiple currencies, you can use the currency drop down menu in the top right corner to switch between currencies.

2 Invoices

Invoices is what it's all about with Innvoice. Innvoice allows you to create and manage Innvoice for multiple clients. Innvoice also supports multiple currencies (although a single invoice can only use one single currency).

2.1 Creating an Invoice

To create a new invoice, click the green button labeled "Create new invoice for ..." just next to the Innvoice logo in the top bar. This will reveal a list with your current clients; next you will need to select the client for which you'd like to generate the invoice. Once clicked, the new invoice will be generated and you will be redirected to the new invoice.

Innvoice

2.2 Editing an Invoice

After opening up an invoice, you can either edit it in-line, or using the "Edit Invoice" button. When hovering over certain parts of the invoice, a blue dashed outline will appear around certain elements; this means this element can be editing in-line (try it by hovering over the invoice title). When you have made a change to an invoice, don't forget to click the save button (changes are not automatically saved!).

Innvoice

Another way to edit your invoice is to click the gray button labeled "Edit Invoice". This will reveal a panel showing the available options for your invoice. These options are divided into the following tabs:

Innvoice

Invoice Details

This tab contains all the main options for your invoice.

  • Invoice Title
    This is the title as it appears on your invoice. This field can be left empty if you don't want a title displayed.
  • Client
    The client to which this invoice is connected.
  • Invoice Number
    Unique number identifying this invoice. This field is required for every invoice. When a new invoice is generated, this number is assigned automatically, using an internal counter. This internal counter can be reset/configured through the settings page.
  • PO (Purchase Order) Number
    The purchase order number for this invoice.
  • Issue Date
    The date on which this invoice was issued. This field is a required field and is automatically set when the invoice is created (but can be changed later if needed).
  • Visible to Client?
    This determines whether the invoice can be publicly access on its own URL (so the client can view it online).
  • Public URL
    If the invoice is publicly visible; this field contains the URL on which the URL can be viewed.
  • Recurring Invoice
    This setting will turn this invoice into a recurring one; meaning it will regenerate automatically until this setting is changed or the invoice is removed from the system.

Financials

This tab contains all the financial options for your invoice.

  • Due Date
    The date on which payment for this invoice is due.
  • Paid?
    Is the status of this invoice set to "paid"? This overrides everything else, so whether payments have been made, the status of this invoice will be set to "paid" if "yes" is selected.
  • Currency
    Which currency this invoice should use. When the invoice is created, the currency is automatically set according to the default currency for the client.
  • Discount
    An optional discount in percentages.
  • Allow bank payment?
    If set to "Yes", the client can submit a bank payment for this invoice.
  • Allow Credit Card payment?
    If set to "Yes", the client is allowed to pay the invoice by credit card. Payments are handled by Stripe and for this setting to be available, the Stripe API keys need to have been entered.
  • Allow Paypal payment?
    If set to "Yes", the client is allowed to pay the invoice by using Paypal. For this setting to be available, Paypal integration must have been configured.

Tax

This tab contains all the tax options for your invoice.

  • Tax Type
    This is the name of the tax as it appears on the invoice. Typically, this would be something like "VAT" or "GST". This field can contain any text value.
  • Tax %
    The percentage of tax applied to this invoice. Please note that when a discount is applied in combination with a Tax, the discount is processed before the tax is deducted.

Notes

This tab contains all notes fields for this invoice.

  • Top Note
    This note appears at the top of the invoice, if any note is entered.
  • Bottom Note
    This note appears at the bottom of the invoice, if any note is entered.
  • Internal Notes
    This field is for internal notes only; the client will not be able to see this note.

2.3 Invoice Items

The item section is the table containing all your invoice items within your invoice. This section is fully customizable and you're free to structure this section any what you'd like. You can alter the structure of the table to meet your exact requirements. This flexibility makes Innvoice suitable for basically any type of business.

Innvoice

To customize the item structure, either hover over the headers and click the green edit icon towards the right edge of the header OR click the gray button labeled "Edit Structure" below the items table. This will bring up a pop-up allowing you to modify the structure. Please note that when you modify the structure, the entire item section will reset, you will lose whatever data you currently have in the item section.

Innvoice

When adding data to the item section, you can either add a single item by clicking the green button labeled "Add Single Item" OR you can click the green button labeled "Import Data" to import a CSV file.

Data Import

When using the Data Import function, please keep the following in mind:

  • Make sure your "/tmp" folder is writable
  • Your data file should contain at least three rows of data. If your file contains fewer data, the file import might not function properly
  • Innvoice expects the first row in your file to contain the column names
  • Innvoice expects the last column to contain numeric values only! (except for the header)
  • When importing data, the entire item section is overwritten

2.4 Invoice Payments

Invoices would be of little usage without clients being able to pay 'em! Innvoice has got this covered by allowing clients to submit payments via bank, credit card and Paypal! The available payment methods are configured per invoice and depending on which methods are activated, the client will be able to use these to submit payments for their invoices.

Innvoice

All payments made for a specific invoice will appear in the invoice's "Payments" section; to access this section, click the gray button labeled "Payments". In addition to having clients submit payments, payments can be entered by the administrator as well by clicking the green button labeled "Add Payment".

The following payment types are available:

  • Bank
    When your client chooses to submit a bank payment, he or she will be forced to upload a document when submitting the payment. Typically, this document would be a payment slip or screenshot proofing the bank transfer. This document will be accessible through the invoice's "Payments" section.
  • Stripe
    Integration with Stripe will allow your clients to pay invoices with their credit cards. This option will only be available when Stripe integration has been configured. For more info regarding Stripe integration, please read the Payment Integration section of this manual.
  • Paypal
    Integration with Paypal will allow your clients to pay invoices with their Paypal accounts (or their credit cards). This option will only be available when Paypal integration has been configured. For more info regarding Paypal integration, please read the Payment Integration section of this manual.

2.5 Emailing an Invoice

After creating an invoice, ideally you'd like this invoice to be sent to your client. Innvoice allows you to send an invoice directly to your client by clicking the button labeled "Send to Client". This will bring up a pop-up allowing you customize the message and the subject. The PDF version of the invoice will automatically be attached to the email.

Innvoice

Please note that for the emailing function to work properly, you will need to configure the email settings. For more information, please read the Configuration & Settings section of this manual.

3 Clients

Besides invoices, Innvoice also lets you manage all your clients.

3.1 Client Overview

The first thing you will see after loading a client page, is the client overview. This shows you a births eye view of all important info for this particular client. You will notice the client overview looks very similar to main dashboard. Just as the main dashboard, the client overview shows total amounts received, due and past due as well as money received month-by-month. Obviously, the client overview shows this data only for a single client. Just as with the main dashboard, you can switch between currencies if this client has been issues invoices in multiple currencies.

Innvoice

3.2 Client Details

In the "Details" tab, you will be able to see and edit all this client's details.

Innvoice

3.3 Client Invoices

Inside the "Invoices" tab, you will be able to quickly access all invoices issues to this client.

Innvoice

3.4 Client Payments

Inside the "Payments" tab, you will be able to quickly access all payments made by this client.

Innvoice

3.5 Client Notes

Inside the "Notes" tab, you will be able store notes relevant to this client (these notes are for internal usage and are not visible to the client).

4 Reports

Reports allow you to quickly and easily bundle data into a simple and clear format. It allows you to combine data from different clients/invoices into single reports.

Innvoice

4.1 Generate Reports

To generate a new report, click the Report icon from the left menu and then click the button labeled "Create New Report". This will load a pop-up in which you can configure the new report's parameters.

Innvoice

5 My Account & Account Settings

You manage your Innvoice account and company settings, look for the link labeled "Account Functions" in the far right of the top menu bar. After clicking it, a drop down menu will appear and you will need to click the link labeled "My Account & Company". This will bring up a modal pop-up window with the account and company settings.

You can optionally upload a logo as well. When uploaded, your logo will automatically appear on invoices and reports.

Innvoice

6 Payment Integration

Innvoice allows you to integrate the application with popular payment services like Paypal and Stripe. When setup correctly, this allows your client to invoices directly online, either with their credit card or Paypal account (receiving bank payments does not require any form of integration).

Please note that when Paypal or Stripe integration has not been configured, both payment methods will not be available (and won't appear in the invoice "Financial" section).

6.1 Stripe / Credit Card

Stripe is a payment provider, allowing users to receive credit card payments straight into their personal bank accounts. To be able to receive Stripe payments, you will need to enter a set of two keys, one public key and one private key. Both keys can be retrieved from your Stripe account ("Account Settings" > "API Keys").

Once you have retrieved your Stripe keys, click the "Account Functions" drop down and then click the link labeled "Application Settings". Once the settings page has loaded, locate the section labeled "Payment integration: Stripe" and enter the Stripe keys.

Innvoice

6.2 Paypal

Paypal is a payment provider, allowing users to receive into their Paypal accounts. To be able to receive Paypal payments, you will need to the main email address connected to your Paypal account. Click the "Account Functions" drop down and then click the link labeled "Application Settings". Once the settings page has loaded, locate the section labeled "Payment integration: Paypal" and enter the Paypal email ID.

Innvoice

7 RESTful API

Innvoice comes with a fully functional RESTful API, allowing you manage clients, invoices and payments from other applications or services. To be able to access the API, you must first make sure the API is activated (you can activate and deactivate the API from the "Application Settings" page).

By default, the all API responses are in JSON format.

7.1 API Keys

To allow access to Innvoice API, a key is needed. To retrieve a key or generate a new key, click the "Account Functions" link and choose "API Keys" from the drop down menu. This will bring up a modal pop-up window in which you either copy/paste a key or generate a new key.

Innvoice

When generating an API call, you must always include a parameter named "X-API-KEY" containing the key value.

7.2 Clients

GET (no "id" parameter)

When no "id" parameter is passed, all the clients currently in Innvoice will be returned.

Request example:

GET /index.php/api/clients?X-API-KEY=ccbd961a9a83ac4c1469485f074e4274 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: b1be5be2-7802-3623-f60e-9ce81f612cd9

Response example:

[
    {
        "client_id": "3",
        "user_id": "1",
        "client_name": "Andreas Liebrand",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/andreasliebrand.com",
        "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
        "client_notes": "Haven't heard back from Andreas regarding further work",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "0.00",
        "total_due": "0.00",
        "total_pastdue": "930.00"
    },
    {
        "client_id": "4",
        "user_id": "1",
        "client_name": "Call & Publicidad",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/callandpublicidad.com",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "80.00",
        "total_due": "0.00",
        "total_pastdue": "0.00"
    },
    {
        "client_id": "7",
        "user_id": "1",
        "client_name": "Doe Co",
        "client_contact": "Johny Doe Doe",
        "client_email": "[email protected]",
        "client_phone": "",
        "client_fax": "",
        "client_website": "",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "THB",
        "currency_id": "19",
        "currency_shortname": "THB",
        "currency_fullname": "Thailand",
        "currency_sign": "฿",
        "total_paid": "6000.00",
        "total_due": "0.00",
        "total_pastdue": "6000.00"
    },
    {
        "client_id": "5",
        "user_id": "1",
        "client_name": "Glow Marketing",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/glowmarketing.com",
        "client_address": "12a The Square, Wickham\\\r\\\nHampshire, PO17 5JQ",
        "client_notes": "",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "0.00",
        "total_due": "0.00",
        "total_pastdue": "0.00"
    },
    {
        "client_id": "6",
        "user_id": "1",
        "client_name": "Gu9Creative",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/gu9creative.com",
        "client_address": "5 Eastgate House, Dogflud Way, Farnham\\\r\\\nSurrey, GU9 7UD UK",
        "client_notes": "",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "1200.00",
        "total_due": "0.00",
        "total_pastdue": "0.00"
    },
    {
        "client_id": "2",
        "user_id": "1",
        "client_name": "The Clarion Portfolio",
        "client_contact": "Sharon",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/clarion.com",
        "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
        "client_notes": "Yeasjtyytj",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "9724.00",
        "total_due": "0.00",
        "total_pastdue": "-220.00"
    },
    {
        "client_id": "8",
        "user_id": "1",
        "client_name": "Willwm",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "",
        "client_fax": "",
        "client_website": "",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "USD",
        "currency_id": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "total_paid": "0.00",
        "total_due": "0.00",
        "total_pastdue": "0.00"
    }
]

GET (with "id" parameter set)

When an "id" parameter is passed, the API will try to return the client connected to this ID or an error message if the client can not be found.

Request example:

GET /index.php/api/clients?X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&id=3 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: cf2c36f3-4769-743c-6d6d-f2d0537a7d39

Response example (found):

{
    "client_id": "3",
    "user_id": "1",
    "client_name": "Andreas Liebrand",
    "client_contact": "",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "http:\\/\\/andreasliebrand.com",
    "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
    "client_notes": "Haven't heard back from Andreas regarding further work",
    "client_default_currency": "USD",
    "currency_id": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$"
}

Response example (not found):

{
    "status": false,
    "message": "This client does not exist"
}

PUT

The PUT request will attempt to create a new client. The following two fields are required:

  • field_clientName
  • field_clientEmail

The following fields are optional:

  • field_clientContact
  • field_clientPhone
  • field_clientFax
  • field_clientWebsite
  • field_clientAddress
  • field_defaultCurrency (must contain a valid entry from the "currencies" table)

Request example:

PUT /index.php/api/clients HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 92292dc7-3db8-e1a8-f72a-ee2055bf5395
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&field_clientName=Jane+Doe&field_clientEmail=jane%40doe.com&field_clientContact=Miss+Doe&field_clientPhone=0123456789&field_clientFax=0123456789&field_clientWebsite=www.doecompany.com&field_clientAddress=123+Somewhere+Street%2C+Somewhere+town%2C+19000&field_defaultCurrency=USD

Response example:

{
    "client_id": "12",
    "user_id": "1",
    "client_name": "Jane Doe",
    "client_contact": "Miss Doe",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "www.doecompany.com",
    "client_address": "123 Somewhere Street, Somewhere town, 19000",
    "client_notes": "",
    "client_default_currency": "USD",
    "currency_id": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$"
}

POST

The POST request will attempt to create update an existing user. The following fields are required:

  • Client ID (appended to the URL, for example: /index.php/api/clients/12)
  • field_clientName
  • field_clientEmail

The following fields are optional:

  • field_clientContact
  • field_clientPhone
  • field_clientFax
  • field_clientWebsite
  • field_clientAddress
  • field_defaultCurrency (must contain a valid entry from the "currencies" table)

Example request:

POST /index.php/api/clients/12 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: b140cc1c-8ccb-3961-546a-515547bf2472
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&field_clientName=Jane+Doeee&field_clientEmail=jane%40doe.com&field_clientContact=Miss+Doe&field_clientPhone=0123456789&field_clientFax=0123456789&field_clientWebsite=www.doecompany.com&field_clientAddress=123+Somewhere+Street%2C+Somewhere+town%2C+19000&field_defaultCurrency=USD

Example response:

{
    "client_id": "12",
    "user_id": "1",
    "client_name": "Jane Doeee",
    "client_contact": "Miss Doe",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "www.doecompany.com",
    "client_address": "123 Somewhere Street, Somewhere town, 19000",
    "client_notes": "",
    "client_default_currency": "USD",
    "currency_id": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$"
}

DELETE

The DELETE request will attempt to delete a client. The following fields are required:

  • Client ID (appended to the URL, for example: /index.php/api/clients/12)

Example request:

DELETE /index.php/api/clients/16 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 915b7498-d14d-1d29-f733-31ef12b44f15
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274

Example response:

{"id":12,"message":"Deleted the resource"}

7.3 Invoices

GET (no "id" parameter)

When no "id" parameter is passed, all the invoices currently in Innvoice will be returned.

Request example:

GET /index.php/api/invoices/?X-API-KEY=ccbd961a9a83ac4c1469485f074e4274 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 5824cd3a-232b-16f0-84cd-246565ef30b5

Response example:

[
    {
        "invoice_id": "26",
        "client_id": "4",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 9",
        "invoice_status": "due",
        "invoice_number": "48",
        "invoice_po": "",
        "invoice_date": "1438230270",
        "invoice_public": "1",
        "invoice_recurring": "1",
        "invoice_duedate": "1440201600",
        "invoice_discount": "0",
        "invoice_paymentbank": "1",
        "invoice_paymentstripe": "1",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "Test<\\/td>Test<\\/td>10<\\/td>1<\\/td>10<\\/td><\\/tr>",
        "invoice_subtotal": "10.00",
        "invoice_paidtodate": "10.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "1",
        "invoice_code": "ScIowKTQsUHyejLRB846v0CdEJlFhN",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "Call & Publicidad",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/callandpublicidad.com",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "3",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 3",
        "invoice_status": "paid",
        "invoice_number": "26",
        "invoice_po": "12345",
        "invoice_date": "1431622800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431536400",
        "invoice_discount": "10",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "VAT",
        "invoice_taxamount": "20",
        "invoice_topnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_bottomnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_notes": "",
        "invoice_items_head": "Item<\\/th>Description<\\/th>Item price<\\/th>Amount<\\/th>Total<\\/th><\\/tr>",
        "invoice_items_body": "Item one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem eight<\\/td>Description<\\/td>400<\\/td>2<\\/td>800<\\/td><\\/tr>\\\nItem one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>",
        "invoice_subtotal": "8800.00",
        "invoice_paidtodate": "9504.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "k2ILnZxxWPn0N1n4Ud2i",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "The Clarion Portfolio",
        "client_contact": "Sharon",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/clarion.com",
        "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
        "client_notes": "Yeasjtyytj",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "9",
        "client_id": "4",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 9",
        "invoice_status": "paid",
        "invoice_number": "9",
        "invoice_po": "",
        "invoice_date": "1435622400",
        "invoice_public": "1",
        "invoice_recurring": "1",
        "invoice_duedate": "1437523200",
        "invoice_discount": "0",
        "invoice_paymentbank": "1",
        "invoice_paymentstripe": "1",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "Test<\\/td>Test<\\/td>10<\\/td>1<\\/td>10<\\/td><\\/tr>",
        "invoice_subtotal": "10.00",
        "invoice_paidtodate": "10.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "Btwk5AQP46TbK7JZRvgdVEDXGCz3jO",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "Call & Publicidad",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/callandpublicidad.com",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "8",
        "client_id": "8",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 8",
        "invoice_status": "past due",
        "invoice_number": "8",
        "invoice_po": "",
        "invoice_date": "1434646800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1434646800",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "",
        "invoice_subtotal": "0.00",
        "invoice_paidtodate": "0.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "TMzlVbFQtwRIi6X3NvLK29UoE75n10",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "Willwm",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "",
        "client_fax": "",
        "client_website": "",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "7",
        "client_id": "7",
        "user_id": "1",
        "currency_id": "19",
        "invoice_title": "Invoice Number 7",
        "invoice_status": "past due",
        "invoice_number": "7",
        "invoice_po": "",
        "invoice_date": "1432684800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1432684800",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "<\\/td><\\/td><\\/td><\\/td>12000<\\/td><\\/tr>",
        "invoice_subtotal": "12000.00",
        "invoice_paidtodate": "6000.00",
        "invoice_balance": "6000.00",
        "invoice_autogenerated": "0",
        "invoice_code": "JD2H8zgUePrfqAXbuOow35sFQCYt7i",
        "invoice_active": "1",
        "currency_shortname": "THB",
        "currency_fullname": "Thailand",
        "currency_sign": "฿",
        "client_name": "Doe Co",
        "client_contact": "Johny Doe Doe",
        "client_email": "[email protected]",
        "client_phone": "",
        "client_fax": "",
        "client_website": "",
        "client_address": "",
        "client_notes": "",
        "client_default_currency": "THB"
    },
    {
        "invoice_id": "5",
        "client_id": "3",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 5",
        "invoice_status": "past due",
        "invoice_number": "5",
        "invoice_po": "",
        "invoice_date": "1432771200",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431820800",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "Item<\\/td><\\/td><\\/td><\\/td>700<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/td><\\/td><\\/td><\\/td>230<\\/td><\\/tr>",
        "invoice_subtotal": "930.00",
        "invoice_paidtodate": "0.00",
        "invoice_balance": "930.00",
        "invoice_autogenerated": "0",
        "invoice_code": "XKFgy3LYweDAvBtor8Emixpf2h7NdZ",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "Andreas Liebrand",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/andreasliebrand.com",
        "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
        "client_notes": "Haven't heard back from Andreas regarding further work",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "4",
        "client_id": "6",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 5",
        "invoice_status": "paid",
        "invoice_number": "4",
        "invoice_po": "",
        "invoice_date": "1424304000",
        "invoice_public": "1",
        "invoice_recurring": "1",
        "invoice_duedate": "1432857600",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "Hihihi",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "item<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>",
        "invoice_subtotal": "1200.00",
        "invoice_paidtodate": "1200.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "oJ5XvmtzSh6adDzoYNZD",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "Gu9Creative",
        "client_contact": "",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/gu9creative.com",
        "client_address": "5 Eastgate House, Dogflud Way, Farnham\\\r\\\nSurrey, GU9 7UD UK",
        "client_notes": "",
        "client_default_currency": "USD"
    },
    {
        "invoice_id": "2",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "1",
        "invoice_title": "Invoice Number 2",
        "invoice_status": "past due",
        "invoice_number": "2",
        "invoice_po": "",
        "invoice_date": "1431609300",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431609300",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "",
        "invoice_subtotal": "0.00",
        "invoice_paidtodate": "220.00",
        "invoice_balance": "-220.00",
        "invoice_autogenerated": "0",
        "invoice_code": "z9VQjRWGstXZSM1lPxEm",
        "invoice_active": "1",
        "currency_shortname": "USD",
        "currency_fullname": "United States",
        "currency_sign": "$",
        "client_name": "The Clarion Portfolio",
        "client_contact": "Sharon",
        "client_email": "[email protected]",
        "client_phone": "0123456789",
        "client_fax": "0123456789",
        "client_website": "http:\\/\\/clarion.com",
        "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
        "client_notes": "Yeasjtyytj",
        "client_default_currency": "USD"
    }
]

GET (with "id" parameter set)

Request example:

GET /index.php/api/invoices/?X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&id=26 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 6adaa6e5-71cb-9524-0cc6-ca1c838bbf54

Response example:

{
    "invoice_id": "26",
    "client_id": "4",
    "user_id": "1",
    "currency_id": "1",
    "invoice_title": "Invoice Number 9",
    "invoice_status": "due",
    "invoice_number": "48",
    "invoice_po": "",
    "invoice_date": "1438230270",
    "invoice_public": "1",
    "invoice_recurring": "1",
    "invoice_duedate": "1440201600",
    "invoice_discount": "0",
    "invoice_paymentbank": "1",
    "invoice_paymentstripe": "1",
    "invoice_paymentpaypal": "0",
    "invoice_taxtype": "",
    "invoice_taxamount": "0",
    "invoice_topnote": "",
    "invoice_bottomnote": "",
    "invoice_notes": "",
    "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
    "invoice_items_body": "Test<\\/td>Test<\\/td>10<\\/td>1<\\/td>10<\\/td><\\/tr>",
    "invoice_subtotal": "10.00",
    "invoice_paidtodate": "10.00",
    "invoice_balance": "0.00",
    "invoice_autogenerated": "1",
    "invoice_code": "ScIowKTQsUHyejLRB846v0CdEJlFhN",
    "invoice_active": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$",
    "client_name": "Call & Publicidad",
    "client_contact": "",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "http:\\/\\/callandpublicidad.com",
    "client_address": "",
    "client_notes": "",
    "client_default_currency": "USD",
    "id": "1",
    "company_id": "1",
    "ip_address": "127.0.0.1",
    "username": "administrator",
    "password": "$2y$08$rXpXNHpQhMkj8V3UOZfLHOXMZKx7XEsJM518XtPafi4lOyp0.uqJW",
    "salt": "",
    "email": "[email protected]",
    "activation_code": "",
    "forgotten_password_code": "5aRq-QQgEeIYC1aQkCg9ie73d0393f47159d26e8",
    "forgotten_password_time": "1430541837",
    "remember_code": "D7YyGluGAC8JHcC.qc7wfe",
    "created_on": "1268889823",
    "last_login": "1439173377",
    "active": "1",
    "first_name": "Mattijss",
    "last_name": "Naus",
    "company": null,
    "phone": null,
    "company_name": "Chilly Orange Co., Ltd.",
    "company_logo": "",
    "company_phone": "0123456789",
    "company_fax": "0123456789",
    "company_address": "325\\/6 Moo 4 Soi Mooban Chadkaew\\\r\\\nTambon Kuanlang Ampher Hatyai\\\r\\\nSongkhla 90110\\\r\\\nThailand",
    "company_additionalinfo": ""
}

PUT

The PUT request will attempt to create a new invoice. The following fields are required:

  • clientID (should be a valid client ID)

Request sample:

PUT /index.php/api/invoices/ HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 2df48676-1758-3cce-7af0-83da657e346a
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&clientID=3

Response sample:

{
    "invoice_id": "28",
    "client_id": "3",
    "user_id": "1",
    "currency_id": "1",
    "invoice_title": "Invoice Number 50",
    "invoice_status": "due",
    "invoice_number": "50",
    "invoice_po": "",
    "invoice_date": "1439179894",
    "invoice_public": "1",
    "invoice_recurring": "0",
    "invoice_duedate": "1439179894",
    "invoice_discount": "0",
    "invoice_paymentbank": "0",
    "invoice_paymentstripe": "0",
    "invoice_paymentpaypal": "0",
    "invoice_taxtype": "",
    "invoice_taxamount": "0",
    "invoice_topnote": "",
    "invoice_bottomnote": "",
    "invoice_notes": "",
    "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
    "invoice_items_body": "",
    "invoice_subtotal": "0.00",
    "invoice_paidtodate": "0.00",
    "invoice_balance": "0.00",
    "invoice_autogenerated": "0",
    "invoice_code": "A8N6XEpsz4MVFjq173ZmSv2RKHTWgl",
    "invoice_active": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$",
    "client_name": "Andreas Liebrand",
    "client_contact": "",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "http:\\/\\/andreasliebrand.com",
    "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
    "client_notes": "Haven't heard back from Andreas regarding further work",
    "client_default_currency": "USD",
    "id": "1",
    "company_id": "1",
    "ip_address": "127.0.0.1",
    "username": "administrator",
    "password": "$2y$08$rXpXNHpQhMkj8V3UOZfLHOXMZKx7XEsJM518XtPafi4lOyp0.uqJW",
    "salt": "",
    "email": "[email protected]",
    "activation_code": "",
    "forgotten_password_code": "5aRq-QQgEeIYC1aQkCg9ie73d0393f47159d26e8",
    "forgotten_password_time": "1430541837",
    "remember_code": "D7YyGluGAC8JHcC.qc7wfe",
    "created_on": "1268889823",
    "last_login": "1439173377",
    "active": "1",
    "first_name": "Mattijss",
    "last_name": "Naus",
    "company": null,
    "phone": null,
    "company_name": "Chilly Orange Co., Ltd.",
    "company_logo": "",
    "company_phone": "0123456789",
    "company_fax": "0123456789",
    "company_address": "325\\/6 Moo 4 Soi Mooban Chadkaew\\\r\\\nTambon Kuanlang Ampher Hatyai\\\r\\\nSongkhla 90110\\\r\\\nThailand",
    "company_additionalinfo": ""
}

POST

The POST request will attempt to update an existing invoice. The following fields are required:

  • Invoice ID (appended to the url, for eample: /index.php/api/invoices/28)
  • invoice_client (client ID connected to this invoice, integer)
  • invoice_id (invoice number, integer)
  • invoice_issueDate (date in string format, must be an format accepted by the PHP functon "strtotime()")
  • invoice_duedate (date in string format, must be an format accepted by the PHP functon "strtotime()")
  • invoice_currenyName (three letter currency indicator, from "currencies" table, string)

The following fields are optional:

  • invoice_title (string)
  • invoice_status ("due", "past due" or "paid", string)
  • invoice_po (purchase order number, integer)
  • invoice_public (0 or 1, integer)
  • invoice_recurring (0 or 1, integer)
  • invoice_discountPercentage (integer)
  • invoice_taxType (string)
  • invoice_taxPercentage (integer)
  • invoice_topNote (text)
  • invoice_bottomNote (text)
  • invoice_notes (text)
  • invoice_items_head (should be the contents of the HEAD section of a HTML table, text)
  • invoice_items_body (should be the contents of the BODy section of a HTML table, text)
  • invoice_subTotal (integer)
  • invoice_paidToDate (integer)
  • invoice_balanceDue (integer)

Request example:

POST /index.php/api/invoices/28 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 38268b0a-89be-49e4-3ddd-174a4ed10a36
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&invoice_client=3&invoice_id=51&invoice_issueDate=10+Aug+2015&invoice_duedate=10+Aug+2015&invoice_currenyName=USD

Response example:

{
    "invoice_id": "28",
    "client_id": "3",
    "user_id": "1",
    "currency_id": "1",
    "invoice_title": "",
    "invoice_status": "",
    "invoice_number": "51",
    "invoice_po": "",
    "invoice_date": "1439164800",
    "invoice_public": "0",
    "invoice_recurring": "0",
    "invoice_duedate": "1439164800",
    "invoice_discount": "0",
    "invoice_paymentbank": "0",
    "invoice_paymentstripe": "0",
    "invoice_paymentpaypal": "0",
    "invoice_taxtype": "",
    "invoice_taxamount": "0",
    "invoice_topnote": "",
    "invoice_bottomnote": "",
    "invoice_notes": "",
    "invoice_items_head": "",
    "invoice_items_body": "",
    "invoice_subtotal": "0.00",
    "invoice_paidtodate": "0.00",
    "invoice_balance": "0.00",
    "invoice_autogenerated": "0",
    "invoice_code": "A8N6XEpsz4MVFjq173ZmSv2RKHTWgl",
    "invoice_active": "1",
    "currency_shortname": "USD",
    "currency_fullname": "United States",
    "currency_sign": "$",
    "client_name": "Andreas Liebrand",
    "client_contact": "",
    "client_email": "[email protected]",
    "client_phone": "0123456789",
    "client_fax": "0123456789",
    "client_website": "http:\\/\\/andreasliebrand.com",
    "client_address": "2 Great George Street, Godalming\\\r\\\nSurrey, GU7 1EE",
    "client_notes": "Haven't heard back from Andreas regarding further work",
    "client_default_currency": "USD",
    "id": "1",
    "company_id": "1",
    "ip_address": "127.0.0.1",
    "username": "administrator",
    "password": "$2y$08$rXpXNHpQhMkj8V3UOZfLHOXMZKx7XEsJM518XtPafi4lOyp0.uqJW",
    "salt": "",
    "email": "[email protected]",
    "activation_code": "",
    "forgotten_password_code": "5aRq-QQgEeIYC1aQkCg9ie73d0393f47159d26e8",
    "forgotten_password_time": "1430541837",
    "remember_code": "D7YyGluGAC8JHcC.qc7wfe",
    "created_on": "1268889823",
    "last_login": "1439173377",
    "active": "1",
    "first_name": "Mattijss",
    "last_name": "Naus",
    "company": null,
    "phone": null,
    "company_name": "Chilly Orange Co., Ltd.",
    "company_logo": "",
    "company_phone": "0123456789",
    "company_fax": "0123456789",
    "company_address": "325\\/6 Moo 4 Soi Mooban Chadkaew\\\r\\\nTambon Kuanlang Ampher Hatyai\\\r\\\nSongkhla 90110\\\r\\\nThailand",
    "company_additionalinfo": ""
}

DELETE

The DELETE request will attempt to delete an invoice. The following fields are required:

  • Invoice ID (appended to the url, for example: /index.php/api/invoices/28)

Request example:

DELETE /index.php/api/invoices/28 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: 3fd73bb6-7dc4-b2a5-037f-6bb89a06f036
Content-Type: application/x-www-form-urlencoded

X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&invoice_client=3&invoice_id=51&invoice_issueDate=10+Aug+2015&invoice_duedate=10+Aug+2015&invoice_currenyName=USD

Response example:

{
    "id": 28,
    "message": "Deleted the invoice"
}

7.4 Payments

GET

The GET request returns either the payments for a specific invoice OR for a specific client, depending on which value is set for the "getFor" parameter. The following fields are required:

  • getFor (either "client" OR "invoice")
  • client_id (valid client ID, if "getFor" is set to "client")
  • invoice_id (valid invoice ID, if "getFor" is set to "invoice")

Request example:

GET /index.php/api/payments/?X-API-KEY=ccbd961a9a83ac4c1469485f074e4274&getFor=client&client_id=2 HTTP/1.1
Host: demo.Innvoice.io
Cache-Control: no-cache
Postman-Token: dff3b70c-2cc4-0694-57e9-7ded02055ecb

Response example:

[
    {
        "payment_id": "1",
        "invoice_id": "2",
        "payment_amount": "220.00",
        "payment_date": "1426338900",
        "payment_proof": "",
        "payment_type": "Bank",
        "payment_active": "1",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "USD",
        "invoice_title": "Invoice Number 2",
        "invoice_status": "past due",
        "invoice_number": "2",
        "invoice_po": "",
        "invoice_date": "1431609300",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431609300",
        "invoice_discount": "0",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "",
        "invoice_taxamount": "0",
        "invoice_topnote": "",
        "invoice_bottomnote": "",
        "invoice_notes": "",
        "invoice_items_head": "\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tDescription<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem Price<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tQuantity<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tTotal<\\/th>\\\n\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t<\\/tr>",
        "invoice_items_body": "",
        "invoice_subtotal": "0.00",
        "invoice_paidtodate": "220.00",
        "invoice_balance": "-220.00",
        "invoice_autogenerated": "0",
        "invoice_code": "z9VQjRWGstXZSM1lPxEm",
        "invoice_active": "1",
        "payment_type_id": "1",
        "payment_requires_proof": "1"
    },
    {
        "payment_id": "33",
        "invoice_id": "3",
        "payment_amount": "1000.00",
        "payment_date": "1432965674",
        "payment_proof": "9B7iMzbE2dchXpCQDNRTPn3Zr.pdf",
        "payment_type": "Bank",
        "payment_active": "1",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "USD",
        "invoice_title": "Invoice Number 3",
        "invoice_status": "paid",
        "invoice_number": "26",
        "invoice_po": "12345",
        "invoice_date": "1431622800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431536400",
        "invoice_discount": "10",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "VAT",
        "invoice_taxamount": "20",
        "invoice_topnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_bottomnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_notes": "",
        "invoice_items_head": "Item<\\/th>Description<\\/th>Item price<\\/th>Amount<\\/th>Total<\\/th><\\/tr>",
        "invoice_items_body": "Item one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem eight<\\/td>Description<\\/td>400<\\/td>2<\\/td>800<\\/td><\\/tr>\\\nItem one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>",
        "invoice_subtotal": "8800.00",
        "invoice_paidtodate": "9504.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "k2ILnZxxWPn0N1n4Ud2i",
        "invoice_active": "1",
        "payment_type_id": "1",
        "payment_requires_proof": "1"
    },
    {
        "payment_id": "34",
        "invoice_id": "3",
        "payment_amount": "1000.00",
        "payment_date": "1432965760",
        "payment_proof": "E0IRtNTjhSBdDZmXkK5Ur2fMy.pdf",
        "payment_type": "Bank",
        "payment_active": "1",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "USD",
        "invoice_title": "Invoice Number 3",
        "invoice_status": "paid",
        "invoice_number": "26",
        "invoice_po": "12345",
        "invoice_date": "1431622800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431536400",
        "invoice_discount": "10",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "VAT",
        "invoice_taxamount": "20",
        "invoice_topnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_bottomnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_notes": "",
        "invoice_items_head": "Item<\\/th>Description<\\/th>Item price<\\/th>Amount<\\/th>Total<\\/th><\\/tr>",
        "invoice_items_body": "Item one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem eight<\\/td>Description<\\/td>400<\\/td>2<\\/td>800<\\/td><\\/tr>\\\nItem one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>",
        "invoice_subtotal": "8800.00",
        "invoice_paidtodate": "9504.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "k2ILnZxxWPn0N1n4Ud2i",
        "invoice_active": "1",
        "payment_type_id": "1",
        "payment_requires_proof": "1"
    },
    {
        "payment_id": "35",
        "invoice_id": "3",
        "payment_amount": "7504.00",
        "payment_date": "1432965896",
        "payment_proof": "IpOS5qve7zZjyHD2RE9fgMVTk.pdf",
        "payment_type": "Bank",
        "payment_active": "1",
        "client_id": "2",
        "user_id": "1",
        "currency_id": "USD",
        "invoice_title": "Invoice Number 3",
        "invoice_status": "paid",
        "invoice_number": "26",
        "invoice_po": "12345",
        "invoice_date": "1431622800",
        "invoice_public": "1",
        "invoice_recurring": "0",
        "invoice_duedate": "1431536400",
        "invoice_discount": "10",
        "invoice_paymentbank": "0",
        "invoice_paymentstripe": "0",
        "invoice_paymentpaypal": "0",
        "invoice_taxtype": "VAT",
        "invoice_taxamount": "20",
        "invoice_topnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_bottomnote": "Duis pulvinar dui a mi lobortis, nec scelerisque orci facilisis. Proin ullamcorper viverra interdum. Fusce id nibh sit amet ligula ultrices blandit. Morbi viverra nec dui eu semper. Maecenas vulputate blandit ante at fermentum.",
        "invoice_notes": "",
        "invoice_items_head": "Item<\\/th>Description<\\/th>Item price<\\/th>Amount<\\/th>Total<\\/th><\\/tr>",
        "invoice_items_body": "Item one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem eight<\\/td>Description<\\/td>400<\\/td>2<\\/td>800<\\/td><\\/tr>\\\nItem one<\\/td>test description<\\/td>200<\\/td>4<\\/td>800<\\/td><\\/tr>Item two<\\/td>test description<\\/td>500<\\/td>2<\\/td>100<\\/td><\\/tr>Item three<\\/td>test description<\\/td>100<\\/td>8<\\/td>100<\\/td><\\/tr>\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\t\\\tItem four<\\/td><\\/td><\\/td><\\/td>600<\\/td><\\/tr>Item five<\\/td><\\/td><\\/td><\\/td>1200<\\/td><\\/tr>Item seven<\\/td>Description<\\/td>400<\\/td>3<\\/td>1200<\\/td><\\/tr>",
        "invoice_subtotal": "8800.00",
        "invoice_paidtodate": "9504.00",
        "invoice_balance": "0.00",
        "invoice_autogenerated": "0",
        "invoice_code": "k2ILnZxxWPn0N1n4Ud2i",
        "invoice_active": "1",
        "payment_type_id": "1",
        "payment_requires_proof": "1"
    }
]

7.5 Send invoice by email

POST

Sends an invoice to the client's email address. The following fields are required:

  • Invoice ID (appended to the url, for eample: /index.php/api/email/28)

The API will always return status "200 OK". Depending on wether the email was sent, "status" will be true or false. If the email could not be sent, the return value will contain a variable named "debug" containing debugging information.

8 Configuration & Settings

This section explains the different settings and configuration options available in Invoice.

8.1 Application Settings

The Application Settings are accessed by clicking the "Account Functions" link, and then selecting "Application Settings" from the drop down menu. Below we'll briefly discuss the available settings.

  • Internal invoice counter
    This counter is used to automatically generate invoice numbers when creating new invoices. The current value of this counter represents the last issued invoice number and the next new invoice will have the current value + 1 as it's invoice number.
  • Payment integration: Stripe
    To integrate Strip with Invoice, you will need to provide your public and private Stripe keys here.
  • Payment integration: Paypal
    To integrate Paypal with Invoice, you will need to provide your main Paypal account email here.
  • API
    This setting allows you to enable/disable the API. When disabled, no API requests can be made.

8.2 Configuration File

The majority of the application settings are found in the configuration file "/application/config/Innvoice.php". Below we'll discuss the available configuration options:

  • default_currency
    The default currency for the entire application. This has to be a value from the "currencies" table.
  • date_format_php
    The date format used by PHP. This should be a string acceepted by the PHP function "strtotime()". The available options are listed inside the configuration file.
  • date_format_js
    The date format used by Javascript. This should be a string acceepted by the JS function "Date.parse()". The available options are listed inside the configuration file.
  • dashboard_donut_colors
    Color codes used to generate the donut charts on the dashboard and client overview pages. The first color is the main one, the second is the hover color. This array can contain as many color combinations as you think you might need.
  • invoice_itemtable_default_head
    The default structure for the heading of HTML table containing items on your invoice. This structure will be used when creating a new invoice, once created this can be overwritten from within the application.
  • export_filename_prepend
    Used to generate the file name when generating an invoice PDF. The invoice number is automatically appended.
  • export_report_prepend
    Used to generate the file name when generating an report PDF. The report ID is automatically appended.
  • email_from_address
    The "from" email address used when the application sends out emails.
  • email_from_name
    The "from" name used when the application sends out emails.
  • email_default_subject
    The default email subject for emailing invoices to clients. This setting can be overwritten from within the application.
  • email_default_content
    The default email body content for emailing invoices to clients. This setting can be overwritten from within the application
  • email_payment_company_subject
    The email subject for the confirmation email send to application owner when a payment is received.
  • email_payment_client_subject
    The email subject for the conformation email send to client when payment was successfully processed.
  • email_new_recurring_subject
    The email subject for the confirmation email send to client when a new recurring invoice is generated.

8.3 Email Configuration

Below you will find a description of the settings avaialble in "/application/config/email.php"

  • useragent
    The “user agent” string in the email header - string
  • protocol
    The mail sending protocol. One of the following options: "mail", "sendmail", or "smtp" - string
  • mailpath
    The server path to Sendmail (only applies when "protocol" is set to "sendmail") - string
  • smtp_host
    SMTP Server Address (only applies when "protocol" is set to "smtp") - string
  • smtp_user
    SMTP Username (only applies when "protocol" is set to "smtp") - string
  • smtp_pass
    SMTP Password (only applies when "protocol" is set to "smtp") - string
  • smtp_port
    SMTP Port (only applies when "protocol" is set to "smtp") - integer
  • smtp_timeout
    SMTP Timeout (in seconds, only applies when "protocol" is set to "smtp") - integer
  • smtp_keepalive
    Enable persistent SMTP connections (only applies when "protocol" is set to "smtp") - boolean (true of false)
  • smtp_crypto
    SMTP Encryption, one of the following options: "ssl" or "tls" (only applies when "protocol" is set to "smtp") - string
  • wordwrap
    Enable word-wrap - boolean (true of false)
  • wrapchars
    Character count to wrap at - integer
  • mailtype
    Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don’t have any relative links or relative image paths otherwise they will not work. One of the following options "html" or "text" - string
  • validate
    Whether to validate the email address - boolean (true or false)
  • priority
    Email Priority. 1 = highest. 5 = lowest. 3 = normal. One of the following options: 1, 2, 3, 4 or 5 - integer
  • crlf
    Newline character. (Use “\r\n” to comply with RFC 822). One of the following options: “\r\n” or “\n” or “\r” - string
  • newline
    Newline character. (Use “\r\n” to comply with RFC 822). One of the following options: “\r\n” or “\n” or “\r” - string
  • bcc_batch_mode
    Enable BCC Batch Mode - boolean (true or false)
  • bcc_batch_size
    Number of emails in each BCC batch - integer
  • dsn
    Enable notify message from server - boolean (true or false)

8.4 Translation

Innvoice is fully translation ready, meaning all text such as labels, etc are stored in language files. The default language (English) files are stored in /application/language/english/.

To implement another language, German for example, you will need to start by copying all the files found in /application/language/english/ to /application/langauge/german/. In addition, you will need to grab a copy of /system/language/english/form_validation_lang.php and place it in /application/language/german/.

You can now proceed to start translatng the langauge files. Most of the translation work should be done on the file named "innvoice_lang.php". The last step of this process is editing /application/config/config.php and change the language setting to "german".

9 Cron

For the Innvoice application to function properly, certain tasks need to be performed automatically on a daily basis, this includes things like checking whether invoices are now past due and generating new invoices for a recurring invoice.

For these tasks to run daily, the following URL should be called once every 24 hours: http://yourdomain.com/index.php/cron/ (obviously you will need to change "yourdomain.com" to the correct domain name). If you have access to cpanel and your account has Cron Jobs activated (look under "Advanced > Cron Jobs"), you can add in a cron job to run once every 24 hours with one of the following commands:

  • wget -qO- http://yourdomain.com/index.php/cron &> /dev/null
  • /path/to/application/index.php cron

If you are not allowed to create cron jobs, you might want to use an external cron provider to ping the cron URL once every 24 hours. A quick Google search for "cron as a service" will reveal a number of options.

Upgrading

When upgrading your copy of Innvoice, the process typically involves two steps: updating the files AND updating the database.

When updating the files, make sure you overwrite the following folders:

  • /css
  • /js
  • /application/controllers
  • /application/helpers
  • /application/language/english
  • /application/libraries
  • /application/migrations
  • /application/models
  • /application/views

Next, you will need to update the database. Innvoice makes use of so called "migrations" to update the database. This way, you won't have to manually mess around with SQL. First, you will need to edit /application/config/migration.php and set "$config['migration_enabled']" to TRUE.

Now you will need to load the migrate controller in your browser by opening the following URL: http://mywebsite.com/index.php/migrate. Be sure to replace "http://mywebsite.com" with your site's actual URL (in addition, you might need to remove "index.php" if you have configured your site to use pretty URLs). You should now see a confirmation message saying your database is up to date.

That's it, you're all up to date. If you experience any trouble while updating, please submit a ticket through http://selfhosted.net/support/ and we'll be more then happy to assist you!