Notifications to watch only addresses in bitcoind
You can use the importaddress RPC to add addresses without associated private key to the wallet. The wallet code will now list transactions involve such addresses, and include them in balance calculations (though you may need to add an extra argument for includeWatchOnly to some RPC calls).

If you import an address that has existing confirmed transactions, you'll need to rescan, which is a lengthy and slow process. If you make sure you're importing before giving out the address anywhere (for example, because they're being generated on an offline treasure machine which you control), it's perfect though.

You'll get notifications in all the normal ways for these addresses, including using -walletnotify (with a shell script executed for each received or confirmed transaction), and ZMQ (if compiled and enabled).