I have read on the English learning websites that "Thank you. You shouldn't have." and "Thank you. I owe you one." can both be used to show thanks to someone. I wonder if there is any difference between them in addition to their literal meanings. Thank you for your help.
The first means that the gift, act, etc. was not necessary, and that it wasn't expected.
The second means that the friendship is based on keeping score. The implication is that you would be indebted to the other person if they did anything for you, or gave you something.
But be aware that phrases like this have different social meanings in different English societies and subcultures. To some, they might mean nothing but "Thank you". In other cases, the implications may be more literal.
(not a teacher, just a language lover)
I don't feel the same way about "I owe you one" as Ray. I feel it's more like "and hey, you know you can count on me for a favor too, you know." I don't see it as keeping score. But tone of voice matters too.
Now *I* owe YOU one - feels like keeping score.
Hey, Joe, thanks. I owe ya one, bro - feels like "I got your back like you had mine."
I'm not a teacher, but I write for a living. Please don't ask me about 2nd conditionals, but I'm a safe bet for what reads well in (American) English.