For anyone who can help, we were able to find the solution.
The problem occurred because we have a field called 0PRICE.CURRENCY and the command was misinterpreting it.
We added a ` before and after the field name and it solved it.
# Carregar a tabela Delta
delta_table = DeltaTable.forPath(spark, abfss_path_target)
# Construir a condição de correspondência
condicao_correspondencia = " AND ".join([f"t.{chave} = s.{chave}" for chave in chave_unica])
# Usar o comando MERGE para atualizar ou inserir dados
delta_table.alias("t").merge(
novos_registros.alias("s"),
condicao_correspondencia # Usar a condição de correspondência construída
).whenMatchedUpdate(set={f"`{col}`": f"s.`{col}`" for col in lista_campos}
).whenNotMatchedInsert(values={f"`{col}`": f"s.`{col}`" for col in lista_campos}
).execute()