The government believes the amnesty can bring in 165 trillion rupiah ($12.4 billion) of additional revenue this year by offering low rates to those who come forward to declare untaxed wealth.
Wealthy Indonesians have long chosen to stash billions of dollars abroad, particularly in neighbouring city-state Singapore, to keep it out of reach of the taxman.
All but one of the 10 political parties in the legislature backed the controversial measure, which has been repeatedly delayed due to months of wrangling between lawmakers.
Repatriated capital would "enter Indonesia's financial system and boost economic growth", he added.
Also Read
President Joko Widodo is desperate for extra money to fund infrastructure projects as investment falls due to a slowing global economy, and the government believes improving its historically poor tax revenues will help.
Only 30 million Indonesians are registered taxpayers out of 90 million registered workers, and the country collects less tax as a proportion of GDP than many countries in Southeast Asia.
"The tax amnesty bill is extraordinarily offensive to our sense of justice - it turns criminals into good guys," lawmaker Yandri Susanto of National Mandate Party told parliament.
His party eventually backed the bill. The Prosperous Justice Party, an Islamist party, was the only one in parliament that did not support the measure.
People who come forward with their untaxed wealth at home and abroad will be offered a rate of between two percent and 10 per cent, far below the 30 per cent top income tax rate for individuals.