What you need are reference transactions on the account, and then you will add a variable to your initial SetExpressCheckout call:
L_BILLINGTYPE0=MerchantInitiatedBilling
When the customer completes checkout, you will receive a BAID that you can then reference in the future with CreateReferenceTransaction.
In order to use reference transactions in the live environment, your business must be approved (contact your account manager or PayPal business support). In order to do your development in the test environment, reference transactions must be enabled on your sandbox Business account that will be receiving payments. Contact www.paypal.com/mts for this, and send them the email address of the sandbox Business account you've created.