The race is one of five events whose contracts ran out this year, and there was a growing belief that it would lose it slot.
F1 owners Liberty Media have been clear that the calendar would likely remain at 21 races next season and the addition of new grands prix in the Netherlands and Vietnam meant two current races would lose out.
With Italian officials having said earlier this year that they had sorted financial matters with F1, and Britain having announced a new deal, it was thought that Mexico would beat Spain and Germany to taking the final available slot.
While the situation did not look positive for Spain, it is understood that discussions have moved on and a plan is being put in place for a single-year extension.
This would then give track chiefs extra breathing space to try to negotiate a longer-term contract from 2021 onwards, which is especially important considering uncertainty over the government that may not be resolved until later this year.
To help move things forward, it is understood the government has offered a guarantee of the race hosting fee as a short-term measure.
Should the talks get across the line and the 2020 deal signed, then the next issue to sort will be when the race slots in to the calendar.
It had previously been expected that the European season would kick off with the Dutch GP, but that has not been set in stone.
The 2020 F1 season will begin in Australia on March 15, with Bahrain expected to follow two weeks later.
A fortnight after that Vietnam and China are set to run as back-to-backs. That would then leave the first European race set for a May 3 date.
With the Netherlands facing a tight deadline to get its circuit and infrastructure modifications sorted, there have been suggestions that the event could be moved back – and Spain retakes its traditional spot as the first European race.
The Dutch GP could still be slotted in for a provisional May 10 slot, which would then give Liberty extra freedom for it be shuffled back further if the circuit needed more time.
One other scenario is the Netherlands gets the May 3 slot and Spain is moved back to much later in the season, although this is something that race organisers have previously said they were not especially eager for.
Barcelona circuit president Vicenc Aguilera told Motorsport.com earlier this year: “September is not good, that will be absolutely not acceptable for us, because we have typical rain here.
“It’s a crazy thing, and we’d have a big mess – it would be a disaster. And why should you pay for a disaster? July is too hot. It should be May. But I will not discuss dates until we have a contract.”
Additional reporting by Adam Cooper