It's definitely not a mistake. You should say like that, because there is an auxiliary verb - "do" which should give you a hint. In this case, saying: "yes, I do" is 100% correct. "Yes, I have" would be misleading here.
What you said, "Yes I do" is right and what your friend who said," Yes I have" is somewhat confusing. So, you can use, "yes I do". It is not wrong at all.