How The QuickBooks Sync Works

A look at how the Sync between QuickBooks and Acctivate works on the backend.

Acctivate is designed to sync data to and from QuickBooks (see the QuickBooks Sync training page). This article is designed to show specifically how the sync with QuickBooks works.

When a sync is initiated from within Acctivate, the Synchronize with QuickBooks window will populate showing each section of the sync. Once a section has finished syncing, you will notice either a green check box, a red circle with an X, or a triangle with a yellow !. The green check means that section of the sync finished without any errors or warnings. The red circle means that section of the sync has some kind of error. The yellow ! means that section of the sync has some kind of warning, but not an error. Normally, this is just an informational warning alerting a user to some change. To review errors and warnings at the end of the sync, click View Log to open the Sync Log. This will show specifically what error(s)/warning(s) took place in the sync.


These green checks and red X's are very important as they dictate the SyncTime for that section in the Acctivate database. As soon as a section of the sync has completed without errors, the SyncTime is updated to the exact time that section finished. Acctivate uses this SyncTime to track when the last sync was completed without errors for a given section. If a section gets an Error (red X), the SyncTime will not be advanced. A warning will not prevent the SyncTime from updating. In the screen shot above, notice that the sync found errors in the Journal section. In the screenshot below, notice that the SyncTime was not advanced for Journals as it was for other sections in the sync.



Acctivate syncs with QuickBooks using the Intuit SDK. The SDK functions as the buffer between the Acctivate database and the QB file. The SDK looks for data in both QB as well as Acctivate that has updated since the defined SyncTime for a section in the sync, and includes data that has updated within 24 hours before the SyncTime as well.

For example, in the screenshot above, the SyncTime related to the Invoice section of the sync is currently set as 3/30/2017 4:47:18 PM. That means that a sync last completed without any errors related to Invoices at exactly that time. If a new Invoice is posted on 4/1/2017 at 12 PM, the UpdatedDate related to that Invoice will be the exact time that the Invoice posts since that was the last action taken related to that Invoice in Acctivate. Since that UpdatedDate is after the SyncTime, it will be included in the sync and will push to QuickBooks.

Notice also in the screenshot above that the Journals section shows a SyncTime of 3/29/201712:15:00 PM. This is because the Journals section of the sync found errors in the last sync, so the SyncTime was not advanced as it was with the Invoice section (and all of the other sections as well). This prevents the Journal that caused this sync error from getting skipped in the next sync. If whatever caused that sync error is not resolved, the SyncTime will not advance. Syncs could be run day after day, week after week, and if nothing is done that SyncTime will stay the same. Every sync will continue to show the same error, and every sync will take a little bit longer since the sync will look at new Journals, as well as all that have synced successfully since that Sync Time. This is a huge reason why sync errors should be dealt with as they come up, it could be much more difficult to resolve later on.