The provider knows best which credentials it needs and CallsCredentials was not generic to begin with, so get rid of it.
This interface should be implemented by origins which represent an online account. This means they must have a implement a property representing the credentials and another representing the account state (online, offline, etc).