US oil giant Chevron has agreed to pay 310 million reales (NZ $176 million)) to Brazil for an oil spill last year that fouled beaches in Rio de Janeiro.
Government news service Agencia Brasil said 90 million reales would be used exclusively for environmental cleanup and 220 million reales would serve for measures to prevent future spills.
Federal prosecutor Gisele Porto said that the fine should send a message to all oil producers that "it is better to invest in preventive measures than to pay a fine for polluting".
An official from Chevron Brazil, Rafael Jaen Williamson, said the company admitted guilt for the disaster and made the payment to show that it was prepared to make amends.
"We are prepared to invest our recourses in social development projects and environmental, preventative and compensatory measures," he said.
The November 2011 spill saw some 3000 barrels of crude soil the waters of the Atlantic near the Frade oil field, located some 370 kilometres northwest of Rio.
As a precaution, Chevron voluntarily interrupted its Brazilian activities in March, after detecting another leak three kilometres from the first.
In August, a Brazilian court gave Chevron and offshore drilling firm Transocean 30 days to halt all drilling and shipping activities.
A report released in July by Brazil's National Petroleum Agency accused Chevron of negligence and said the company could have avoided the spill.