Perhaps a better translation would be "I have it". German uses gendered pronouns to refer to inanimate objects, unlike English. So you could have the following exchange:
Hast du den Schlüssel? ("Do you have the key?")
Ja, ich habe ihn ("Yes, I have it")
To use es here would probably be a little confusing to a native-speaker, and would likely give you away as a foreigner in much the same way that someone saying "I have him" in English would.
A driver or someone with a passenger, someone on a phone or otherwise in contact, in the sights/reach/grasp of a weapon, a host at an establishment. "Do you have my husband?" ~ "Yes, when do you want him back by?" I've heard it all. The main problem there is Americans with their dirty minds. Dirty minds should not constitute a language . . .