Payments can be verified using payment ID, wallet address and private view key of the wallet.
The steps to verify payments using the RPC JSON API are:
1. Pass payment ID to “/get_transaction_hashes_by_payment_id” to get list of transaction hashes
2. Get current block height using “/getinfo”
3. Iterate through transaction hashes with “/get_transaction_details_by_hashes” to check which transactions have at least 10 confirmations
4. Check that the blocks containing the transactions are not orphaned using block hashes from step 3 and “/get_blocks_details_by_hashes”
5. Using “/get_amounts_for_account” check that the transactions contain enough outputs to the wallet, you need transaction hash, wallet address and private view key