A payment can be linked to donations, orders or both. Donations can be offline (e.g. payment taken in person at an event) and therefore there will not be a linked payment.

The payment object is designed to expose specific information about the processed payment, not the intent of that payment (e.g. what appeal the donation was for or what products were purchased). Please refer to the corresponding APIs for that information.