Templates
Template Setup Guides

QuickBooks Accounting Plugin

Link to plugin page: https://zeroqode.com/plugin/quickbooks-accounting-1534843366375x316652045181386750

Getting started:

  • Once your logged in, click 'My Apps' & then 'Create new app'.

  • Click 'Select API's' in the 'Just start coding section' then select 'Accounting' & 'Create app'.

  • Navigate to the 'Settings' tab & fill in the fields similar to the below

Dont forget to click save!

  • Navigate to the 'Keys' tab, in BOTH 'Redirect URI' sections add your app's redirect URL.

Your Redirect URL in most cases will be, https://_your-app_.bubbleapps.io/api/1.1/oauth_redirect

  • Place your development & production ID & Secret's into the plugin's settings in your app.

If you wish to add the Webhooks & continue with your App Listing on the Quickbooks Marketplace you can do so although its not required to use the plugin.

The 'reamId'

There are a few concepts that once are known will make your integration much easier to understand. The first is the realmId. As the user is going through the oAuth process and signing into your app they will choose the company they wish to use, Once this process is finished they will arrive back in your app and you will notice that there is now an extra parameter in your URL, eg. realmId=123456789.

Its important you grab this value from and save it to the current user because this will be needed in every action you use in reference to the current user's company. This should be saved as the parameter may not persist in other parts of your app.

Its important you grab this value from and save it to the current user because this will be needed in every action you use in reference to the current user's company. This should be saved as the parameter may not persist in other parts of your app.

The 'Sync Token'

Quickbooks uses a sync token to stop multiple users from corrupting data in the event the same record is altered at the same time. This means you should read the record then alter it, When you for example read a vendor's record - grab the sync token (token's are numbers and increase by one each record change) & as you edit the record you will be able to provide the token there.

Its good practise to only save the token in states on the page, Saving them in the current user or another section of your database will reduce performance but more importantly can lead to errors.

Complex {Looking: "Actions"}

Quickbook's can acheive alot, It's why they thrive and continue to grow. As you can imagine this makes the data more complex & in turn what we must provide when making call's / creating records also becomes more complex. To combat the amount of actions the plugin would require to accomodate the millions of possible record variations we provide you the JSON so you can drop dynamic statements where you need them. This also means in the cases that you need something where your key & value need defining this is done with ease.

Lets look at one of the records, Here is a Vendor,

{
"BillAddr":{
"Line1":"Bill's Store",
"Line2":"Bill Smith",
"Line3":"1 Notreal Ave.",
"City":"Notrealie",
"Country":"U.S.A",
"CountrySubDivisionCode":"TX",
"PostalCode":"55555"
},
"TaxIdentifier":"12-3456789",
"AcctNum":"12345678",
"Title":"Mr.",
"GivenName":"Bill",
"FamilyName":"Smith",
"Suffix":"Sr.",
"CompanyName":"Bill's Store",
"DisplayName":"Bill's Store",
"PrintOnCheckName":"Bill's Store",
"PrimaryPhone":{
"FreeFormNumber":"(012) 345-6789"
},
"Mobile":{
"FreeFormNumber":"(012) 345-6789"
},
"PrimaryEmailAddr":{
"Address":"[email protected]"
},
"WebAddr":{
"URI":"http://billsstore.com"
}
}

When you see a JSON properties like this, in most cases we provide ALL the properties. A lot of the time they are all required however sometimes this is not the case - To view the Quickbooks documentation in regards to these objects, you can click here.

Looking at the above example to make something dynamic in bubble, we can do the following.

  • In the above example, you can see we have made the 'Line1' property dynamic.

Its a good idea to add a 'on unhandled error' action to your app - if a user was to then input something that quickbooks will return an error from, the error will not transpire to your users screen.

To learn about the proper use of the Quickbooks logo & to download image/button assets, you can visit here.

Demo to preview the settings