A government watchdog says the White House broke the law by withholding aid to Ukraine that had been approved by the US Congress.
The ruling from the Government Accountability Office (GAO) is a blow to President Donald Trump as he faces an impeachment trial in the Senate.
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.
"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 White House said it disagreed with the GAO's opinion, accusing the agency of an effort to "insert themselves into the media's controversy of the day".
Democrats welcomed the ruling. Maryland Senator Chris Van Hollen, who requested the GAO investigation, said on Twitter: "The public evidence shows that the president himself ordered this illegal act."
The ruling comes as Ukrainian authorities began a criminal investigation into whether the former US Ambassador to Ukraine, Marie Yovanovitch, was being spied on.
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.
Several text messages appear to suggest she was being tracked in the capital Kyiv. Mr Parnas was apparently given updates on the ambassador's location and mobile phone.
Source: BBC