The difference is simple.
It's a common occurrence to hear people misuse the words "Latinx," "Hispanic" and "Spanish." Although the phrase can sometimes be interchangeable, in many cases they aren't so we broke the terms down for you.
Latinx is a gender-neutral term that is used as an alternative to Latino/a. It refers to people whose origin or ancestry is in Latin America and excludes Spain. Geographic location is what separates this term from Hispanic or Spanish. Additionally, the usage of the "x" instead of the "o" or the "an" at the end of the word "Latinx" is important as it's inclusive of those in the Latin community who are gender non-conforming, gender queer, gender fluid, etc.
The word Hispanic refers to people of Spanish-speaking descent. This encompasses countries from Latin America and Spain but excludes Brazil because their national language is Portuguese.
Spanish describes someone who comes from Spain. Although Spanish is a language, it is also a nationality so just because someone speaks this language it doesn't mean that they are from this European country.
Individuals should be cognizant of the words they use to address others. Even though some are understanding of the miscategorization, there are some that may take offence and since the differences are so simple, take the time to note them to address others correctly. Also if you identify with one of these three terms or any word in general, correct people when they acknowledge you incorrectly! That's the only way to educate the misinformed.