The reciprocity principle is that, when an emitted wave gets scattered on an object, the scattering transition amplitude does not change if we interchange the source and the detector -in other words, if incoming waves are interchanged with appropriate outgoing ones. Reciprocity is sometimes confused with time reversal invariance, or with invariance under the rotation that interchanges the location of the source and the location of the detector. Actually, reciprocity covers the former as a special case, and is fundamentally different from -but can be usefully combined with -the latter. Reciprocity can be proved as a theorem in many situations and is found violated in other cases. The paper presents a general treatment of reciprocity, discusses important examples, shows applications in the field of photon (Mössbauer) scattering, and establishes a fruitful connection with a recently developing area of mathematics.