What is the difference between "zahlen" and "bezhalen"
The difference is on first look indeed quite subtle. But it's not that different from English. Just that we prefix where you post- and preposition or also prefix.
- Zahlen (to pay)
simply describes the transaction of money from one person to another.
- Bezahlen (to pay for)
doing such a transaction as a byproduct or consequence of another transaction like goods or services. The adjective (bezahlt) implies that the good or service was indeed or already paid for.
- Auszahlen: (to pay out)
transaction of money from some sort of obligation (like an insurance case, a savings account, investment etc.)
- Einzahlen: (to pay in)
opposite direction of Auszahlen
- Anzahlen: (to do a down payment)
to start the entire transaction first with a partial one
- Abzahlen: (to acquit, pay off/up?)
to finish the entire already started transaction
- Zurückzahlen (to repay)
to revert the transaction with an equal transaction
- Heimzahlen (to pay back)
a transaction of revenge…
These verbs can be used interchangeably. This is not so for "antworten" and "beantworten" - the former is intransitive and the latter transitive. So you can "beantworten eine Frage" but you have to "antworten auf eine Frage". The prefix "be" is a common prefix to convert an intransitive verb to a transitive although, having said that, I can't think of any other examples at the moment.
''zahlen'' often has no object and ''bezahlen'' frequently does:
zahlen Sie getrennt oder zusammen? = are you paying separately or together?
ich bezahle den Wein! = I'll pay for the wine
Zahlen expresses the handing over of money and is used for fees, taxes, subscriptions etc.
bitte zahlen Sie an der Kasse. = please pay at the register
Bezahlen is used when the object is a person, but zahlen can be used if what is paid for is mentioned, but then the personal object takes the dat.
ich habe ihn schon bezahlt = I have already paid him
ich habe ihm 4000 Euro gezahlt/bezahlt = I paid him 4000 euros
While you are right about bezahlen often wanting for an object you would use "bezahlen" for fees and subscriptions as well (and it might often be more appropriate)
Bezahlen is a money-transaction with something attached to it, that you are paying for. So it's quite alright to say:
- "Kannst du den Handwerker bitte bezahlen?"
- "Kann ich das Abo auch per Überweisung bezahlen?"
- "Hast du die Rundfunkgebühren bereits bezahlt?"
The only reason the GEZ used to prefer "zahlen" in a participle form here, is because they could brand it better: "Schon GEZahlt?"