The front-runner is a former state governor and Dalit (formerly untouchable) leader, Ram Nath Kovind.
He is being challenged by opposition candidate and India's first woman speaker Meira Kumar who is also a Dalit.
Indian presidents are not elected directly by the people but by an electoral college made up of members of parliament and state assemblies.
The results of the poll are expected to be announced on 20 July.
The winner will replace Pranab Mukherjee, a political veteran of the main opposition Congress party, who has held the post from 2012.
Polling began in parliament in the capital, Delhi, and state capitals, at 1000 (04:30GMT). Voting is expected to end at 1700 hours.
A total of 4,896 lawmakers - parliamentarians and legislators - are expected to vote in Monday's election.
Mr Kovind, 71, a trained lawyer, has been a two-time BJP MP and governor of the Bihar state. If elected he will be India's second Dalit president.
Congress veteran Meira Kumar, 72, a former lawyer and diplomat, is also from the Dalit community. She has been elected to parliament five times and holds a seat in the state of Bihar.
She is the daughter of the late Babu Jagjivan Ram, a prominent Dalit leader and former deputy prime minister of India.
The Indian president's position is largely ceremonial, but presidents do play decisive roles in in determining who forms the government when national elections do not produce clear results.
Voting is being held in India to elect a new president.