I understand that they’re all question tags. Is there any difference between them, in particular in relation to how formal and how common they are?
The translation for each would be
- pas vrai - no way (when being astonished, not very formal) or right (common)
- c'est ça - is that it (common)
- n'est-il pas - isn't it (formal)
"Hein" doesn't really have a translation, it's widely used for a lot of things.
But to answer you, there's is no real word to use, they all depend on the context in which you're using them.
For instance, c'est pas vrai ? would be used to confirm something you have a hard time believing in, whereas c'est ça ? and n'est-ce pas ? would rather be used to confirm something you just remembered, or something that has just been told to you.
"hein?" is a very informal sound-word. It is used a bit like the Canadian "eh?" at the end of sentences. It can also be used like the English "what?" to mark surprise, disbelief.
-On se voit à quinze heures, hein?
-C'est possible que l'univers soit un hologramme.
"pas vrai?" is an informal way of asking for confirmation of a previous assertion. It is very commonly used in most friendly discussions. You usually won't find it in writing (unless they are trying to immitate speech).
-Les baleines ne pondent pas d'oeufs, pas vrai?
-C'est juste. / T'as raison.
The second way it can be used is to express surprise, as well as ask for confirmation:
-Devine quoi! Corrine s'est fiancée!
-Non! C'est pas vrai? / Ah bon?!
"Ah bon" can be used in the same manner here.
"c'est ça?" is as informal as "pas vrai". It is informal because the normal (one shown in dictionnaries) use of this phrase is as an statement. You are basically just asking for a confirmation. That is why it has an unconciously positive bias. Whereas for "pas vrai" you half expect a contradiction or clarification of the person you are speaking with.
It can also be used ironically, when it is a confirmation.
-T'as 43 ans, c'est ça?
-C'est ça. /C'est juste.
"n'est-ce pas" is the most formal version of this type of interjection. It is not widely used in conversations outside settings where formal speech is expected.Larousse description for examples of its use.
"Pas vrai ?" and "c'est ça, hein ?" are informal, but "c'est ça, hein ?" less so than "pas vrai ?"; "n’est-ce pas ?" belongs to the current language register but in the spoken language it is not used much nowadays and tends to be formal, although it can't be said that only the well educated use it.
"Pas vrai ?" is used only by certain persons, that is to say there are people that banish that locution from their idiolect; the same thing can be said of "c'est ça, hein ?". They resort simply to unambiguous questions (C'est vrai ? — c'est ça ?) when they think it necessary to know where the interlocutor stands. In French tags are much less used than in English.
The effect of these locutions on the listener is that of a lesser or greater insistence on a positive return, on an understated demand for confirmation, and depending on how they are uttered they can amount to a rather explicit demand; when this message of an explicit demand doesn't come through to the listener the speaker can at times repeat the tag so as to make that clear; the second is often shortened to "c'est ça ?" in a repetition and is really a question then. This way of using the tags is more common with "pas vrai ?", less with the second and still less with "n'est-ce pas ?". It can be said that the nature of these three locutions ranges from that of perfect tag to that of simple question.
The use of "n'est-ce pas" is quite complicated; in particular, one should know, specially when one's cultural background is founded on English, that there is not the simple correspondance between "to be" and "not to be" (as is always the case in English); in French "n'est-ce pas ?" is used often where in English the tag needed is "haven't you?, "wouldn't you?" or about any of the tags used in that language. There is seemingly an illogicality, with which to become familiar, but it is only apparent, the pronoun "ce" being the key in dispelling this notion.
- "N'est-ce pas ?" and "Pas vrai ?" are very similar in meaning, you seek validation for the affirmation you made before whilst being relatively sure about your affirmation. As others noted, "N'est-ce pas ?" isn't used much nowadays, even in formal speech. Translating "Pas vrai ?" would give "Is that right ?" if that can help
- "C'est ça ?" also signifies that you seek validation but it doesn't denote sureness, especially compared to "Pas vrai ?" unless you say "C'est bien ça ?" which is now closer to "Pas vrai ?"
- Finally, "Hein ?" is a generic interjection, used for surprise, or to signify that you couldn't understand well what the person was saying. Remember that whilst commonly used, it is informal
"Hein" means " what? " or " n'est-ce pas?"
Three uses of " hein" ( all very informal , even overfamiliar or rude)
(1) what did you say? can you repeat? I did not hear/ understand what you said ( rude, over familiar )
(2) what? is this possible? ( is the thing you say possible? or, sometimes : is it possible you to talk to me in this way? ) --> " hein? c'est pas vrai! j'y crois pas!"
(3) n'est-ce pas? isn't it the case? " j'ai bien travaillé, hein Papa?" or, very very incorrect " hein que c'est Pierre le menteur? pas vrai? "