The Zurich based bank, which lost its chief executive Oswald Gruebel over the trading debacle, managed to reduce an original fine of £42.4m the Financial Services Authority handed it by settling early.
The FSA also said a £16m audit by KPMG paid for by UBS and £34m the bank clawed back from staff involved in the trading scandal – including taking back bonuses and withholding 50 per cent of deferred pay – had been mitigating factors.
Adoboli was given a seven-year sentence last week for $2.3bn (£1.4bn) of losses he racked up making bad trades.
The fine is the third largest by the FSA in its history, following a £59.5m fine for Barclays over Libor and a £33.3m for JP Morgan for failing to segregate client money properly.
The FSA said UBS’s controls were “seriously defective”.
Separately, the Swiss financial regulator Finma said it may call on UBS to increase capital to back its operational risks.