It's actually pretty complicated, here's a link to a good write up
https://www.lawfareblog.com/role-omb-withholding-ukrainian-aid. This one certainly implies that the administration may have engaged in wrong doing.
In summary, before Nixon, Presidents had a broad authority to simply not spend funds. The SC effectively ended that, and Congress passed a law crystallizing that, as the power had effectively come to be an unreviewable veto by the President who could simply refuse to spend funds on programs they didn't want to implement.
That older process was replaced by a process where essentially the President has to ask permission of Congress to not spend money by way of recession, which both houses have to
approve for the recession to take effect.
Of course that's not the whole story, Congress may specifically designate funds for specific purposes or provide them in a general manner, which impacts the ability of the President to choose how or if to spend them. There are other laws that allow the President to repurpose funds in certain circumstances.
Congress also frequently puts mandatory conditions on the release of funds. In this case as Lloyd Perna notes the Secretary of Defense and State each had to sign off on portions of the aid, which they did. However, Congress previously imposed yet another step that requires that the OMB conduct oversight of all executive spending and sign off. That's where this got interesting, as the OMB didn't sign off in the typical time period, nor did they take any of the typical actions that indicate they won't sign off.
The question of course is whether the OMB had a legal reason to delay (they certainly may have, even if they haven't shared it) or not. The fact is that Trump's OMB has - in most years - tried to delay a chunk of foreign aid and other amounts they deem wasteful and submit them as a recession request to Congress. Congress doesn't approve it and the aid (among other things) is required to be spent. In other words more than just Ukrainian aid has been caught up.
There seems to be a pattern of the OMB trying to time this recession request to run into the September 30th "deadline" that would effectively "expire" unspent aid, even though the GAO has determined that's not a legitimate thing to do. This is one of those "technicalities" games associated with trying to cut the budget over Congresses objections by playing games.
It doesn't sound right to me. Reminds me a lot of "Hilary's Server" and the way it played on technicalities and violated the spirit and in my view the letter of the law. That said, it seems like it would be bad faith to criticize this if you've argued that Hillary did nothing wrong.