API Self Client Authtoken conversion always returns "invalid_client".

API Self Client Authtoken conversion always returns "invalid_client".

I am having a problem when trying to convert an Authtoken to OAuth for a Self Client script.  I have made sure that the client Id, secret, and organisation are correct, and the domain is definitely ".com"/

This is the python code I am using to create the request:
headers = {"content-type""application/x-www-form-urlencoded"}
data = {"client_id"self.id,
        "client_secret"self.secret,
        "grant_type""authtooauth",
        "authtoken": authToken,
        "soid""ZohoBooks." + self.organisation,
        "scope""ZohoBooks.contacts.UPDATE,ZohoBooks.contacts.READ"}

resp = self.session.post(
    "https://accounts.zoho.com/oauth/v2/token/external/authtooauth",
    data=data, headers=headers)

Is there something I am missing here?