NRE (Non-Resident External) and NRO (Non-Resident Ordinary) accounts both let NRIs hold rupee funds in India, and both are opened at the same banks with similar-looking paperwork. The difference that actually matters is regulatory, not cosmetic: FEMA (the Foreign Exchange Management Act) treats the source of the money, and what you're allowed to do with it afterward, very differently between the two.
NRE: for money earned outside India
An NRE account is meant for foreign income you're bringing into India — salary earned abroad, foreign savings, and similar sources. Funds in an NRE account, and the interest earned on them, are freely repatriable (you can move them back out of India without RBI permission for the transfer itself), and NRE interest is generally exempt from Indian income tax for as long as you hold NRI status.
NRO: for money earned or held in India
An NRO account is meant for income that originates in India — rent from Indian property, dividends from Indian investments, a pension, or proceeds from selling Indian assets. NRO funds are only repatriable up to specified RBI limits and procedures (not freely, the way NRE funds are), and interest on an NRO account is taxable in India with TDS withheld at source.
The FEMA-status question you can't skip
Choosing the wrong account type for a given deposit isn't just a labeling issue — it's a FEMA compliance question, since routing India-sourced income through an NRE account (or vice versa) can create a genuine regulatory problem, not just a tax inefficiency. The NRE vs. NRO chooser on the NRE/NRO & TDS page walks through the source-of-funds question to point you toward the right account type; it doesn't replace confirming your specific transaction with your bank's NRI desk.