Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways. Added support for PayPal recurring payment with the SOAP API.
I have successfully created a profile_id and when i try to use bill_outstanding_amount(profile_id, :amount => 10, :currency => "USD") i get a response.message that says "Profile ID is missing from the request"
However, the profile_id exists and is a valid and active one, I tested it with get_profile_details(profile_id)
It seems like some time after the comments on your blog post, SetExpressCheckout has begun functioning properly for PayPal Recurring payments. I was able to comment out the versions of setup_agreement and build_setup_request which use SetCustomerBillingAgreement, and uncomment the versions which use SetExpressCheckout, and it worked first try.
I'm not completely fluent in PayPal Express, but the winning difference for me is that SetExpressCheckout takes the NoShipping parameter, which excludes the shipping address section of the confirmation page.
Is it time to switch to SetExpressCheckout, or should there be some sort of option?