...
Calling the sync endpoint with the same payload should not have any side-effect (except for activity logs).
Single endpoint for bulk updates and single point updates
If the sync operation works for bulk data, it should also work for a subset of the data.
Client is not required to store any state
The client (or the caller of the API) should simply have to extract the data from their system and send to Avallone. Avallone will take care of figuring out what needs to be created vs updated.