Hello @yon1,
Yes, I did it with 2 steps 
The main thing is that I learned how to connect with PayPal without having to login, just with a basic auth:
So, here’s how it goes:
Step 1 (Admin) - Create Billing Plans
Create every single billing plan you might use. My SaaS, for example, has 10 billing plans, each one with a different name, description and value. Here’s how you create a billing plan:
The Body JSON is:
{
"name": "<Plan Name>",
"description": "<Plan Description>",
"type": "INFINITE",
"payment_definitions": [
{
"name": "<Nome Def. Pgto>",
"type": "REGULAR",
"frequency": "MONTH",
"frequency_interval": "1",
"amount": {
"value": "<Plan Amount>",
"currency": "USD"
},
"cycles": "0"
}
],
"merchant_preferences": {
"setup_fee": {
"value": "<Setup Fee Amount>",
"currency": "USD"
},
"return_url": "https://yourapp.com/api/1.1/oauth_redirect",
"cancel_url": "https://yourapp.com/api/1.1/oauth_redirect",
"auto_bill_amount": "YES",
"initial_fail_amount_action": "CANCEL",
"max_fail_attempts": "0"
}
}
(That’s the way I setup the JSON. You can do it differently, just check out PayPal API Documentation with the full code, and change it however you like. I recommend using Postman to analyze if the code is correct)
Step 2 (Admin) - Activate Billing Plan
Change state to ACTIVE:
Ok, everything is set up for the user to subscribe to a plan now:
Step 1 (User) - Choose Plan and Approve
When the user clicks the button below, the app will “Create a Billing Agreement” and redirect the user to the Approval URL (I already showed how in the previous post).
This will redirect him to PayPal to choose how he’s going to pay.
Step 2 (User) - Confirm
When he gets back from the PayPal Approval Page, he will have a “token” parameter automatically set up by PayPal. Just “Execute Agreement” with this token, and show a Success Screen to the user.
So, basically, the user just has to click once to go to PayPal and choose payment method, and then click again to confirm when he gets back to the page.
It was possible by learning how to request APIs using BASIC (not Oauth), and by redesigning UX.
FYI, It’s already live and working in my app.
Hope I could help.
Cheers!
Renato