What are the difference between beliefern and liefern? I know that both mean to deliver but are they interchangeable?
"liefern" requires info on what is being delivered, optionally to whom it gets delivered to.
"beliefern" is the other way round. You must define who gets it, but it's optional to state what gets delivered.
Note Hans Peter's examples and add the example
Wir liefern Tomaten.
for clarity of the usage.