The most common reason for discrepancy in spend is not including all of the placements where the ad was served when you collect stats (PUBLISHER_NETWORK refers to running ads on Twitter Audience Platform (https://business.twitter.com/en/help/campaign-setup/twitter-audience-platform.html)
I would recommend to limit check to a single Ad Group and see if you can work your way back upwards from there, checking 1 day first then multiple days. If you cannot solve the issue feel free to post again but we are not tracking any issues around this and UI and API are powered by the same backend so it should be possible to get the numbers to line up.
Thanks,
John