Details of the agreement will be made public after a briefing by Volodymyr Zelenskyy and German Chancellor Olaf Scholz. The briefing will take place at around 12:45 in Berlin (13:45 in Kyiv).
Later, Scholz announced the signing of the agreement. Germany became the second country to sign a security agreement with Ukraine, after the UK was the first to do so in January.
"As long as it takes. Zelenskyy and I signed an agreement today on our long-term security commitments. A historic step. Germany will continue to support Ukraine against the Russian aggressor war," he assured.
Earlier, the President's Office announced the start of talks between the two leaders. Zelenskyy and Scholz planned to discuss further support for Ukraine in the defence, political and financial spheres.
"Following the talks, it is planned to sign an agreement on security cooperation between Ukraine and the Federal Republic of Germany," the statement said.