You’ve got two main options: use the MassPay API or Adaptive Payments API.
Note: Adaptive Payments is not available for new integrations.
PayPal provides documentation to only support existing integrations
The Adaptive Payments option gives you a lot more control over the payment and is the future direction of the Paypal APIs. It supports SOAP, NVP, JSON and plain XML. MassPay has both a SOAP and NVP interface.
IPNs are a totally different subject: https://www.paypal.com/ipn