Currently, we store agreements in our own database. The best workaround I can see so far to not intercept the agreement credentials is the use of the following webhooks: a call to create the billing agreement is made, with the previously created billing attribute being delivered. If successful, the reply object contains the URL to which the user should be redirected to PayPal. The URL approval_url is extracted, and the user should now be redirected to that location. That`s pretty much the heart of it, create a billing plan, and then assign a user to a particular plan (called a billing agreement) if you press them for payment. Let`s dive a little deeper into these functions and see how each room works. Somewhere in PayPal user dashboard, there is a list of all the billing agreements, so they have the data somewhere. It would be nice if they could access it. If you save the contract details after receiving a response to the “Execute Agreement” call and each of your agreements incurs an initial setup fee, you must also subscribe to PAYMENT.SALE.COMPLETED if the agreement changes from “Forward” to “Active”. Source: PayPal technical support Direct Carrier Billing, Direct Mobile Billing and Premium SMS payment methods, all available through this mobile payments API of PencePay.com All mobile billing flows are supported: PIN, Redirect-to-Operator, Premium SMS and SMS Handshake.