Simple php / MySQL web based database integrating with BrightPearl CRM RESTful API

  • Status Completed
  • Budget N/A
  • Total Bids 7

Project Description

We have a client who uses Brightpearl as their CRM and accounts package. ([url removed, login to view]). They use it to manage their customers, and all their invoices.

Brightpearl does not have a facility to send automatic invoices on a regular basis. Our client needs to be able to automatically send invoices to clients on a monthly, quarterly or yearly basis.

We would like to build:-

1) A web based database to log a list of automated invoices that need to be created

2) A script which will use the BrightPearl API ([url removed, login to view]) to create and send the invoices based on information in the web based database we build

So we would like to build a solution based on the following spec:-

Web based database (php / mySQL)


Here is an example of the database structure:-


- nAutomatedInvoice_ID - primary key

- nClientID (the client ID in BrightPearl)

- sClientName (the name of the client - taken from Brightpearl)

- sDescription (description of the project being invoiced for)

- sFrequency (monthly, quarterly, six monthly or yearly)

- nAmount (the amount to invoice the customer)

- sCurrency (the 3 digit currency code - eg USD, GBP, EUR etc)

- nNextInvoiceDate (the date of the next invoice - date in YYYYMMDD format)

- nLastInvoiceDate (date last invoice was sent - if applicable - date in YYYYMMDD format)

- bChargeVAT (bit field - charge vat - yes/no)

- sEmail (email address for invoice to be sent to)


- nAutomatedInvoiceLog_ID (primary key)

- nAutomatedInvoice_ID (foreign key)

- nDate (date in YYYYMMDD format)

- sTime (time in HH:MM:SS format)

- sFrequency (from tblAutomatedInvoices)

- nAmount (from tblAutomatedInvoices)

- sCurrency (from tblAutomatedInvoices)

- bChargeVAT (from tblAutomatedInvoices)

- sEmail (from tblAutomatedInvoices)

The web based database will allow you to:-

1) Add records to tblAutomatedInvoices (with facility to select which customer from BrightPearl using API)

2) Edit records

3) Remove records

4) View a log of invoices created (from tblAutomatedInvoiceLog)

Python or php script


This script can be written in either python or php. It will be scheduled as a cron job on a daily basis.

It will:-

1) Check tblAutomatedInvoices to see if there are any invoices that need to be created today (by finding records where nNextInvoiceDate is today)

2) For each matching record that is found it will:-

a) Use the BrightPearl API to create the invoice

b) Download the invoice information and save in a PDF

c) Email the customer with the invoice

d) Insert a record in tblAutomatedInvoiceLog

e) Update nLastInvoiceDate in tblAutomatedInvoices to the current date

f) Update nNextInvoiceDate in tblAutomatedInvoices to the date when the next invoice should be sent

Get free quotes for a project like this
Completed by:
Skills Required

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online