The White House broke the law by withholding aid to Ukraine that had been approved by the US Congress, a government watchdog has said.
The Government Accountability Office (GAO) ruling comes as President Donald Trump faces an impeachment trial in the Senate related to the withheld aid.
He is accused of freezing aid to pressure Ukraine to investigate a political rival.
Ukraine has opened a probe on separate allegations linked to the impeachment.
Why was the aid freeze illegal?
"Faithful execution of the law does not permit the President to substitute his own policy priorities for those that Congress has enacted into law," the decision by the GAO said.
The White House Office of Management and Budget (OMB) "withheld funds for a policy reason, which is not permitted under the Impoundment Control Act (ICA)", the ruling continued.
The 1974 Impoundment Control Act says it is illegal for the White House to withhold aid appropriated by Congress. It also says the White House must first alert Congress before it delays or blocked funds, which the Trump administration did not do.
No penalties come with a violation of the ICA. Multiple presidents have been found by the GAO to have violated US laws.
The act does allow the agency to sue to have the blocked or delayed funds released, but that has only happened once in history.
The aid to Ukraine was released in September 2019, more than two months after it was first blocked.
The White House said it disagreed with the GAO's opinion, accusing the agency of trying to "insert themselves into the media's controversy of the day".
Democrats welcomed the ruling, saying it undercuts Republicans claim that the president committed no crime.
In a news conference on Thursday morning, House of Representatives Speaker Nancy Pelosi said the White House "broke the law".
What led to Ukraine's investigation?
The ruling comes as Ukrainian authorities began a criminal investigation into whether Mr Trump's supporters were spying on the former US Ambassador to Ukraine, Marie Yovanovitch.
The former envoy's movements were being monitored, according to letters, phone records, notes and flash drives obtained from Lev Parnas, a Ukrainian-American businessman.
Mr Parnas is an aide to Mr Trump's personal lawyer Rudy Giuliani.
Some of the materials - which House Democrats are presenting as evidence in the impeachment inquiry - show Mr Parnas and Mr Giuliani discussing the removal of Ms Yovanovitch, who was fired last May for reasons that remain unclear.
Several text messages from a Republican congressional candidate, Robert Hyde, to Mr Parnas appear to suggest the ambassador was being tracked in the capital Kyiv.
Mr Parnas was given apparent updates from Mr Hyde on the ambassador's location and mobile phone.
But Mr Parnas told MSNBC on Wednesday that he did not think Mr Hyde's surveillance talk was credible.
"He was either drunk," said Mr Parnas, "or he was trying to make himself bigger than it was, so I didn't take it seriously".
Mr Parnas said Ms Yovanovitch was removed because she was in the way of a Trump-approved plan to prod Ukraine to announce an investigation into former Vice-President Joe Biden.
Mr Biden is a potential Democratic rival to Mr Trump in the White House election this November.
Ms Yovanovitch has called for an investigation into the messages, which her lawyer called "disturbing".
What else did Lev Parnas say?
Mr Parnas told NBC that he was in Ukraine to put pressure on officials to investigate Mr Biden and his son, Hunter, on behalf of Mr Trump and Mr Giuliani.
He said that President Trump "knew exactly what was going on".
"I wouldn't do anything without the consent of Rudy Giuliani or the president. Why would [Ukrainian] President Zelensky's inner circle or [Interior] Minister [Arsen] Avakov or all these people or [former] President [Petro] Poroshenko meet with me?
"Who am I? They were told to meet with me. And that's the secret that they're trying to keep. I was on the ground doing their work," he added.
Documents show that Mr Parnas was in regular contact with Mr Giuliani as well as Ukrainian officials.
The files also indicate Mr Parnas was directly involved in trying to have President Zelensky announce an investigation into Mr Biden.
One handwritten note from Mr Parnas states: "Get Zalensky [sic] to Annonce [sic] that the Biden case will be investigated."
There is also a screenshot of a previously undisclosed letter from Mr Giuliani to Mr Zelensky, in which he asks to arrange a meeting.
Mr Parnas said President Trump "decided to" withhold military aid to increase pressure on Ukraine to investigate the Bidens' activities.
Mr Parnas also said he told a Ukrainian official that US Vice-President Mike Pence would not attend President Zelensky's inauguration unless there was an investigation into the Bidens.
Mr Trump has said he does not know Mr Parnas. Referring to photos of himself with Mr Parnas and another Giuliani associate, he said: "It's possible I have a picture with them because I have a picture with everybody."
Mr Trump's has touted unsubstantiated corruption allegations against Mr Biden and his son, Hunter, who held a lucrative board position with Ukrainian gas firm Burisma while his father was US vice-president overseeing American-Ukrainian relations.
The matter will be examined in Mr Trump's impeachment trial, which is due to begin in earnest next week in the US Senate.
He is accused of abuse of power and obstruction of Congress but denies any wrongdoing.
Trump gets his Ukraine investigation... sort of
Analysis by Jonah Fischer, BBC News, Kyiv
After months of pressure from the Trump administration, Ukraine has at last launched an investigation. Unfortunately for President Trump it's not the one he's long demanded.
This interior ministry inquiry will not look into the son of former Vice-President Joe Biden or Burisma, the Ukrainian gas company Hunter Biden once lucratively worked for.
It's aimed rather closer to the White House.
Incredibly, Ukraine is looking into whether Trump supporters were involved in illegally surveilling Marie Yovanovitch when she was US ambassador in Kyiv.
At the time Ms Yovanovitch was the subject of a public campaign by President Trump's lawyer Rudy Giuliani and his associates to have her removed.
In May 2019 they were successful, with Ms Yovanovitch later testifying to Congress she was recalled at short notice because of an unspecified threat to her security.
There's been no suggestion that President Trump was aware of any plans to monitor Ms Yovanovitch.
But in his July phone call with President Zelensky he said she was "bad news" and that she was "going to go through some things."
Want to find out more?
- A SIMPLE GUIDE: If you want a basic take, this one's for you
- GO DEEPER: Here's a 100, 300 and 800-word summary of the story
- A STATE DIVIDED: What New Hampshire makes of it
- YOUR QUESTIONS: Will Trump really testify?
- HISTORY: Can an impeached president remain popular?
- CASE FOR & AGAINST: What legal scholars say about Trump conduct
- WHAT'S IMPEACHMENT? A political process to remove a president