El Salvador's Congress on Wednesday night approved a law to investigate and punish crimes committed during the country's 1980-1992 civil war, but President Nayib Bukele said he would veto it.
Bukele considered it a "disguised amnesty" that does not guarantee the principles of "truth, reparation and justice," according to a statement from the presidency.
The Special Law on Transitional Justice Reparation and National Reconciliation was narrowly approved with the votes of 44 of the 84 deputies.
It was ordered by the supreme court in 2016 after it declared a post-war amnesty unconstitutional.
The deputies had until February 28 to pass the law.
The legislation will be applicable to any person who "committed crimes against humanity and war crimes constituting serious violations of international humanitarian law" during the armed conflict from January 1, 1980 to January 16, 1992.
But lawmaker Juan Jose Martel of the minority Democratic Change party (CD) said the legislation "has no teeth" and described it as "a fake reconciliation law."
Civil society organizations also disagreed with the law because it gives judges the power to reduce the sentence of a person accused of war crimes or crimes against humanity just because he accepts his participation in these crimes and asks the victims for forgiveness.
"This shows it is not justice that is wanted, but impunity," said former human rights attorney David Morales.
Julio Fabian of the opposition right-wing Nationalist Republican Alliance (ARENA) defended the law and said "victims of human rights violations need to find justice."
The Salvadoran civil war left more than 75,000 dead and more than 7,000 missing.