But when I created the deal like that the person_id given to the “add a deal” interface will only connect the person as participant but not as deal contact:
I just tested the same method as you did and the Person was added as the contact of the Deal (and as a Follower).
Did you try more than once with this same result and do you have any triggers, automations, etc that may be doing this? You could look at the Changelog inside the Deal to see if there’s automatic changes happening once the Deal is created.
I found my error: I was using BASE + “/deals/”+dealId+"/participants?"; to add a person to a deal and didn’t notice that this was the participant interface and not the contact person interface.