Check the blockchain.info page on blockchain forks. You'll see one-block-deep forks happen all the time. Your application needs to be able to undo a 'successful payment' because reorgs occur.
Should a certain someone
have his signature malleator running, a transaction with TXID A that confirmed in block A might have a different TXID if block B replaces block A.
So you have to be able to totally undo a successful transaction if the tip changes and orphans any block you have that includes a payment.