Ukraine’s President Petro Poroshenko says an agreement has been reached with Moscow to free a detained Ukrainian pilot in exchange for two Russian nationals held by Ukraine.

"I initiated a conversation with Putin yesterday (Monday), and on the basis of preliminary developments, it seemed to me that we managed to agree on a certain algorithm of freeing Nadezhda (Savchenko)," Poroshenko said at a press conference on Tuesday, referring to the Ukrainian pilot.

In March, a Russian court found Savchenko guilty of involvement in the fatal 2014 shelling of an area in eastern Ukraine that killed two Russian journalists and several civilians. She denies the charges.

Poroshenko also referred to a recent conviction of two Russian nationals, which Ukraine says are Russian soldiers, and said the court ruling “gives opportunities to launch the mechanism of a swap.”

Moscow says the due were formerly serving in the Russian military and were no more on duty when they were arrested in eastern Ukraine, where they had traveled to of their own will.

On Monday, the Ukrainian court sentenced Alexander Alexandrov and Yevgeny Yerofeyev, captured last May, to 14 years in prison for involvement in the conflict in eastern Ukraine.

A lawyer for one of the Russian soldiers told Interfax news agency that the two would not appeal the verdict.

The Ukrainian president did not say when the prisoners swap would take place but said he had told Russian President Vladimir Putin in a telephone conversation on Monday that he was ready to send a private jet to Russia to transfer Savchenko home.

Russian nationals Aleksander Aleksandrov (R) and Yevgeny Yerofeyev (L) speak during a court hearing in Kiev on April 18, 2016. ©AFP

"After yesterday’s conversation (with Putin), certain shifts are also possible in the issue of freeing other Ukrainian citizens," Poroshenko added.

Moscow-Kiev ties have been in tatters since the Crimean Peninsula rejoined Russia in a referendum in March 2014 and Kiev commenced a military crackdown on pro-Russia forces fighting for greater autonomy in the Russian-speaking Luhansk and Donetsk regions in the east of the country.

According to the United Nations, over 9,000 people have lost their lives and some 20,000 have been injured in the conflict since April 2014.