how to do address callbacks?
If you rely on bitcoind and JSON-RPC API you could try launching daemon with -walletnotify option.

bitcoind -daemon -waletnotify="process-txn.sh %s"


This will call process-txn.sh with transaction id on the input. Then you can query the daemon for transaction details.