Restful web-service endpoints on each application makes reasonable sense based on the assumption you want to stick with Django/Python for this.
I would suggest using Django Rest Framework and make use of token based authentication with pre-configured “shared keys” (which you can periodically rotate).
With token-based auth, your keys are passed in the HTTP header so you really ought to be running with the endpoints under secure HTTP connections. See the Django docs on SSL/HTTPS for how to set this up securely.
If the trigger for transferring data is a time sensitive web request, then you should consider making the REST web-service request asynchronous. You can use Celery tasks for this purpose. Celery is also going to be nice as it’ll give you quite some options, such as automatic retry, in how you deal with errors with the synchronisation services.
solved What principles or concepts exist to communicate between two webservers securely? [closed]