Many integrations need to sync data. While this is perfectly acceptable, there are a few best practices you should be aware of.

Don’t sync on the hour
Everybody wants to sync on the hour. So you should schedule your sync jobs to run at a time other than on the hour to avoid competing for resources.

Always use GetDataArray SOAP commands
This will cut down on the number of API calls dramatically. If you for example want to get vat rates for all product groups, then start out by getting the data arrays for ProductGroupData, AccountData and VatAccountData. Then you can loop over the product groups, and look up the data for accounts and subsequently vat accounts in the two other data arrays. In stead of having to look up every single account and vat account every time you look at a product group, you only do three calls to our API. The end result is a major performance boost for your application, and much less strain on our servers.

Use GetAllUpdated SOAP commands
Use GetAllUpdated SOAP commands to only get the data that has been updated since your last sync. A number of resources in our API set a last updated flag when ever the data changes. That means you can limit the data you need to sync by keeping track of when you last did a syn job. Combine this with GetDataArray to really boost your performance.

Use web hooks whenever possible
In some cases you can sync just the data that needs syncing. If you set up web hooks for changes to alert you when a product changes for example, then you won’t need to do sync as often. Read more about web hooks here