I didn't find much info about it.

PaymentID: it's just and ID to proof that a certain transaction is actually done by the sender: It is optional and visible to everybody on the blockchain.

ViewKey: it is a 2nd private key that can only see the transactions without the ability of to spend funds.

Thanks