Live updates: follow the latest news on Russia-Ukraine
Western countries will need Russian bank accounts to pay for fossil fuel imports starting on Friday, President Vladimir Putin has said, but a Kremlin decree indicated they could still transfer the money in euros or dollars.
Mr Putin's announcement appeared to back down from the threat that gas supplies would be cut off if Europe did not raise the money in roubles.
Instead, the decree published on Thursday said the foreign currency would be deposited with a Gazprombank account, one of the few major banks not sanctioned by the West, and then converted to roubles.
European leaders suggested little would change after what Germany described as a failed attempt by Mr Putin to divide western powers on the sensitive issue of energy.
The new mechanism applies to what Moscow deems "unfriendly states", including all 27 members of the European Union who have imposed sanctions on Russia over the invasion of Ukraine.
Any failure to pay means existing contracts would be stopped, said Mr Putin, who said that "nobody sells anything for free... and we are not going to do charity work either".
It came after Germany and Italy said they had received assurances from the Kremlin that they would not have to pay in Russian currency upfront.
That prospect had prompted Germany to invoke emergency regulations and tell the public to use less energy in case Russia cut off gas exports. France also said it was preparing in case deliveries were stopped.
But German Chancellor Olaf Scholz said on Thursday that the country would keep paying for energy in euros or dollars as set out in delivery contracts.
Italian Prime Minister Mario Draghi said energy supplies were "not in danger" and suggested a "process of reflection" had led Russia to back down from the suggestion that only roubles would do.
The Group of Seven industrialised nations had refused to cave in to that demand and Mr Draghi, one of the G7 leaders, said his understanding was that the conversion into roubles was now an internal matter for Russia.
The call comes a week after Mr Putin first made the demand that countries start paying for natural gas in his country's currency, in what was seen as an attempt to get around western sanctions that had sharply devalued the rouble.
The move had prompted European companies to prop up his currency which fell after sanctions were placed on the Russian economy. Gas prices surged after the announcement.
Mr Putin said on Thursday made no sense for Russia to trade in dollars and euros when assets in those currencies were being frozen under the western sanctions. He said that meant Russia had effectively been providing energy for free.
But German Economy Minister Robert Habeck described the move as a failed attempt to divide the West and said allies would not be blackmailed by Russia. More than 50 per cent of Russia’s long-term contracts are settled in euros.
Europe gets about 40 per cent of its gas from Russia and is already dealing with fall-out from record prices this winter. EU leaders last week joined the G7 in rejecting the call for rouble payments.