The court voted for an injunction to suspend any further payments to firms that had not suffered losses as a result of the disaster.
BP had argued that the settlement deal it agreed last year was being misinterpreted, allowing firms that had not suffered harm to claim losses.
The court voted 2-1 for the injunction.
In its ruling it said that “the district court erred” by not properly taking into account the question of whether losses were caused by the spill.
The ruling means that payments to any business that cannot directly trace its losses back to the spill, will now be suspended temporarily.