"A decision has been made that Sergei Lavrov will represent Russia at the G20 summit," Kremlin spokesman Dmitry Peskov told reporters.
Yulia Tomskaya, chief of protocol at Russia's embassy in Jakarta said that Putin could participate "virtually."
"President Putin's program is still being worked out," she told AFP.
A trip to the summit in Bali would have put Putin in the same room as US President Joe Biden for the first time since the Russian leader sent troops to Ukraine on February 24.
Biden has fiercely criticized Putin and ruled out meeting him in Bali if he went, unless they discussed the release of Americans held in Russia.
Observers say the Kremlin is seeking to shield the 70-year-old leader from Western condemnation over the Ukraine offensive, in which Russian forces are suffering setbacks against a Ukrainian counter-offensive.
In 2014, Putin cut short his attendance at the Group of 20 summit in Brisbane where he got a chilly reception and faced intense pressure from the West over Moscow's support for insurgents in Ukraine. That same year, Russia took Crimea forcibly from Ukraine.
Indonesia pursues a neutral foreign policy and has rebuffed Western calls to disinvite Russia from the G20 summit it is hosting this year.
Indonesian President Joko Widodo had invited Putin despite the Ukraine assault, prompting a flurry of Western criticism. In August, he said Putin had accepted that invitation.
Ukrainian President Volodymyr Zelensky is expected to attend virtually. He had threatened to boycott the summit if Putin attended.