1. The life of patient must be in danger, if he/she can survive without blood so you're not allowed to donate blood.
2. There's no side effect to your body or life by donating blood.
3. It should not be for the sake of money. And even you can donate blood to a non muslim as
Allah says in quran in Surah al-Mai'dah Ch: 5 V: 32 that "if you save a Human being so it means you save the whole humanity.." So Allah SWT use the word Human Being not Muslim..so Alhamdulillah you can donate blood to the non muslim also as some people don't know or have misconception about it..It will give you the equal reward..as Prophet Muhammad PBUH said Allah is one who gives you better and more...:)