Support data synchronization from external systems to Avallone
Avallone primarily supports one way synchronization i.e. data from customers can be uploaded to Avallone.
Data can be synchronized in bulk
The sync endpoint should support upload different data point in one go e.g. companies, company relations, officers, officer relations, etc - as much as possible.
However, there will be some exceptions e.g. documents.
Operations are idempotent
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.
Caller is not required to store any state
The caller of the API should simply have to send the data extracted from it’s internal system. Avallone will take care of figuring out what needs to be created vs updated.
Accept partial data
Sometimes the end-user doesn’t have the complete dataset but whatever is available should be accepted.