In the US both senders and receivers are charged, generally. Each party pays their provider for the service of carrying messages from and to them across that provider's network.
Note that this makes each party responsible for the part of the complete message transport that they have some control over, and only that part.
So, for example, if you send me a message today, and another message tomorrow, you will pay the same amount both times even if today I'm at home and tomorrow I'm traveling to some remote area where message fees are much higher. I'm the one who pays the higher costs that are incurred due to my travel.
How would this be handled in a place where the sender pays for the whole thing? How do you find out how much it will cost you to send me a message?
For calls, though, the caller pays local rates, but you will pay your share of the roaming charges. Some carriers on pre-paid plans charge you a national long distance fee per call too.
even companies are using whatsapp for notifications.
By the way, In India most plans have some quota for free sms, which almost always go unused. Anyone who uses whatsapp doesn't even bother about sms.