I don't know much about the English term »firm«, but I do know exactly what »Firma« means in Austria, and I guess it is the same as in Germany. (»Firma« is a juristic term, and because of Germany and Austria having their own specific laws, you have to read the laws of both countries to make sure if the same term really means the same thing.)
A »Firma« is (at least in Austria) just the name of a registered enterprise. It is not the company itself, but just its name. All such registrations are collected in the »Firmenbuch«. This is not a real book (maybe it was a real book a long time ago), but a database at the »Handelsgericht« (commercial court). So a Firma is nothing, that an enterprise can be, but it is something, that an enterprise can have.
But there are also fully legal enterprises that are not registered in the Firmenbuch. Such an enterprise has no Firma, i.e. is has no registered name. This is possible, if the sales of an enterprise are lower than one million euro per year and if it is owned by only one person. In this case, the name of that enterprise used on documents (on bills or shop signs for example) must contain the surname and the first name of the owner of that enterprise (for example: »Hans Müller Wurstwaren«, »Café Lisa Stein« or »Änderungsschneiderei Irene Bayer«).
An enterprise, that has no Firma, can have employees, and they can have more than one branch. They just have to keep their sales below 1 million euro per year.
There are even companies (enterprises with two or more owners) that are not registered in the Firmenbuch and therefore have no Firma (»Gesellschaft bürgerlichen Rechts« = company of civil law). These companies per definition have partners, and they also can have employees.
In colloquial talk you often can hear sentences like this:
Ich arbeite seit Februar bei einer neuen Firma, sie heißt »Blaue Orange«.
Gerda hat gestern einen Tisch bei der Firma Gerwisch gekauft.
Mir reicht es jetzt, ich werde meinen Vertrag mit der Firma Sauber-Wisch kündigen!
Herr Fink ist jetzt auch Partner der Firma Schlössler.
But juridically it is wrong to talk about a Firma in these cases because the Firma is not the company or enterprise, but just it's registered name. But there are other terms (like Unternehmen, see next section), that can be used instead, and their usage is also correct in a juridical manner.
So, theoretically, you should replace »Firma« by »Unternehmen« in all examples above, but nobody does. When "normal" people (others than jurists) talk with each other, they use the term »Firma« not for the name of the enterprise, but for the enterprise itself. So, for non-jurists, it is absolutely ok to uses the sentences quoted above.
- Ich arbeite bei der Firma Hellwig & Co.
- Ich arbeite in der Firma Hellwig & Co.
Both versions are correct and usual. But for my personal flavour I would prefer #1 (bei), because in has a connotation of »being inside the companies building« while bei has more the meaning of »being a member of the team«. But as just said: This is my personal point of view, maybe other people have other opinions.
- Ich bin Partner bei der Firma Hellwig & Co.
- Ich bin Partner in der Firma Hellwig & Co.
- Ich bin Partner der Firma Hellwig & Co.
Here I would prefer the version without preposition (3) (in English: being partner of that enterprise) over #1 (bei) (being partner at that enterprise), and this again over #2 (in) (being partner in that enterprise).
This is an enterprise. In its smallest form a Unternehmen has just one owner, no partners and no employees.
Take my own enterprise as an example: I produce websites and do other IT-related jobs. To be allowed to do this, I needed to register a Gewerbe (business), and now I am the owner of an Unternehmen (enterprise). I have no partners and no employees. I didn't have to register a Firma, but I did voluntarily. The Firma of my Unternehmen is »SHAPP - Schölnast Hubert Applications e.U.« (»e.U.« stands for »eingetragenes Unternehmen« = registered enterprise)
But an enterprise can have any size. It can have any number of partners and any number of employees. The biggest Unternehmen in Austria is a Bank: »Erste Group«, maybe the best known Austrian Unternehmen is Red Bull.
This is a company, and Gesellschaften are a subset of Unternehmen (every Gesellschaft is an Unternehmen, but there are Unternehmen that are not a Gesellschaft).
A Gesellschaft has at least two owners (Unternehmen doesn't have this restriction), and the term Gesellschaft is the umbrella term for a bundle of different kinds of how a Gesellschaft can juridically be realised:
- Gesellschaft mit beschränkter Haftung (GmbH)
- Aktiengesellschaft (AG)
- Offene Gesellschaft (OG)
- Kommanditgesellschaft (KG)
- Gesellschaft bürgerlichen Rechts (GesbR)
- Stille Gesellschaft (stG)
- Erwerbs- und Wirtschaftsgenossenschaft (Gen)
I think Germany has similar types of Gesellschaften. (Sorry, I don't want to describe them in detail.)
But beside this commercial Gesellschaften, there are also non-commercial groups that can have employees:
This is an association. In Germany it is called »eingetragener Verein« (registered association), in Austria just »Verein«. Almost all sports clubs and most cultural clubs are not registered as an Unternehmen but as a Verein. Also, motor clubs like ÖAMTC and ARBÖ in Austria or ADAC in Germany are no Unternehmen. They are Vereine with thousands of employees and hundreds of branches.
What I've said about Firma in Austrian laws seems to be true also for German laws. Also in Germany a »Firma« is in the written laws not an enterprise, but just it's name.
Quote from German Handelsgesetzbuch:
§ 17 (1) Die Firma eines Kaufmanns ist der Name, unter dem er seine Geschäfte betreibt und die Unterschrift abgibt.
(My translation: The "Firma" of a merchant is the name under which he operates his business and that he uses as signature.)
But as said above: In colloquial speech you use the word Firma also in Germany as if it would mean »enterprise«.