For anyone else struggling with this, I was using query parameters for routing non critical routes in my project (e.g. mysite.com/index.php?route=viber), one of them being the viber API webhook URL.
Seems viber ignores query parameters in the set webhook command and kept getting an error 404 from viber.
Once I wrote a rewrite rule (new URL being my site.com/viber) it worked fine.