Validate a payment using bitcoind and json rpc
I would start by looking at the mempool. See getrawmempool, getrawtransaction, decoderawtransaction api calls.  Once you see the transaction your looking for in the mempool you could consider that status #1

Once this transaction is confirmed in a block it will show up as part of the getbalance for that account and other RPC calls like listunspent etc..  You could consider that status #2

Then it's up to you how many confirmations you want for the payment to be considered confirmed.