Depend on your purpose, I would recommend 2 different approaches:
Sending login credentials
Avoid doing this if possible. If you have no choice, then you should at least try to protect these information on 2 fronts: 1. Protect it from a malicious party from intercepting and read the information and 2. Protect it from an insider threat, e.g. a malicious employee who possibly knows the credentials before they are sent.
To achieve goal #1 without bothering users with complicated encryption setup, I recommend using 2 channels in parallel to send the credentials. You could send the username and the first half of the password in one email, and the other half of the password in an SMS (yes, Twillio is cheap enough). This would significantly reduce the risk of all the sensitive information being read by the bad guy.
Toward goal #2 there are a few best practices I can think of: Generate the password using a strong random value generator, force the user to change their password right after the first login. And let’s not forget that all passwords should be stored as 1-way hashes, using strong password hashing algorithm.
Sending other kinds of sensitive information, such as documents
The following is a simple approach: you could add the document in a zip (or 7zip, which is less popular) file and password-protect it (which effectively encrypts it). You will then send this file as an email attachment to the user. For the password, you send it via SMS. The password is the only thing user needs to get access to the document. There should be APIs that allow you to create those archive files automatically (programmatically). At least I know 7zip has the API and it supports zip format too.
If you take this approach I would recommend zip format as it is more popular and most Operating Systems have native support for it. Just make sure you choose AES rather than the Zip 2.0 as encryption algorithm, because AES is much more secure.