By delaying the signing since Congress passed the joint bill last week, Trump allowed some unemployment benefits to lapse, meaning millions of people may lose out on cash amid the economic hardships caused by the pandemic, Deutsche press agency (dpa) reported.
Trump called the bill a "disgrace" last week, demanding that various spending provisions, including some foreign aid, be ripped from the budget. He had also insisted that the direct stimulus payments to people be increased from the 600 dollars in the bill to 2,000.
Trump's demand came as something of a shock, as his own White House had included the foreign spending in its budget proposal and his negotiators in the stimulus talks never demanded the 2,000 dollar figure.
The president did not immediately indicate why he decided to sign. Hours before he did, he said on Twitter to expect "good news."