Often Invoicing needs of a company operating with Multiple geographic locations are sophisticated. PSA’s Invoicing module lags a bit in that and hence, people prefer using a third party tool such as QuickBooks (QB) from Intuit to manage their invoices.
That doesn’t mean that we completely ignore the invoicing in PSA. We create the Invoice in PSA and Post the Invoice is created in PSA, we integrate it with QB.
Following is the process we follow to Integrate the Invoices between PSA and QB
Create an Entity in CRM that stores the required information from QB like:
- Client ID
- Security Key
- Refresh Token
- Access Token URL: This is the URL that provides us with the Refresh Token that is valid for 101 days. For the first time, we need to manually login to https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl and get the Client ID, Security Token and Refresh Token and store it in the Entity (Diagram show below for the entity designed in CRM). When we hit this URL, it provides us with some more information than the above information i.e. Expiry Time of the Token and in some cases the Refresh Token is updated and sent even though the validity is for 101 days. Hence, it is important to store the Refresh Token on all the call backs.
- Access API URL: This is the URL that is to call the specific Module from QB end (also know as the end point) to do the specific functions from Invoice
Entity Design Diagram
Decide the fields from the Invoice Entity and call the function in the Step 3 to integrate and post the invoice to QB.
Below screenshot shows the fields that are to be integrated to QB. There are fields that are apart from the OOB fields and needs for invoicing as per Global Industry standards.
Call the Invoice End Point from Access Token URL. Below is the Screen Shot of the code that is used to call the Invoice function from QB
Basic Architecture of How CRM connects to QB
The above process can do the integration for as many legal entities in QB. This will ensure all the invoice information from PSA to QB and vice versa as we may need some information to flow back from QB to PSA like QB invoice ID, Part Payment Information, etc.
PN: The entire integration code is not mentioned in the above blog. In case there is any help needed, you may contact me.