How to tell if a customer subscribed as a guest or a paypal member
I am currently trying to set up a system on my website where a current subscriber can either upgrade or downgrade their subscription. As per PayPal Documentation:
Subscriptions using PayPal require the user to login and re-consent to the change using the approve HATEOS URL returned in the response. If re-consent is not done or if it fails, the subscription continues to be billed on the existing plan. Subscriptions using direct card payment do not need re-consent.
According to this if a subscriber used their credit card/debit card as a guest, I do not need their re-consent to upgrade/downgrade the subscription. I can use the REST API to handle everything. If they paid using the paypal account, they have to consent to the changes first.
Question: When my customer goes to their billing page how can I tell if they had subscribed as a guest or if they logged in to their paypal account so I will know if I have to show paypal buttons on the site (for paypal logged members), or if I can just send the subscription revise api to handle the upgrade/downgrade (for guest subscribers)?
I did find this in my search:
You can tell if a customer subscribed as a guest or logged into their PayPal account to pay for the subscription by checking the transaction details. If the customer subscribed as a guest, the transaction details will show that the payment was made by “PayPal Guest Checkout” or “PayPal Guest Payment.” If the customer logged into their PayPal account, the transaction details will show that the payment was made by their PayPal account name
I have looked in the PayPal Docs and found this REST API for subscriptions to get the subscription details: List transactions for subscription. But the payload in which it returns does not show anything about PayPal Guest Checkout or PayPal Guest Payment. The payload has an array for Transactions which contains: status, id, amount with breakdown, payer name, payer email and time of the transaction. I have also looked at the Show subscription details from the PayPal Docs and there is nothing in the return payload that i can discern if the subscriber paid as a guest or logged into paypal to pay for the subscription.
I have this exact same issue. I just need to know if a subscription was paid via a PayPal account or Guest Checkout (i.e. w/ a credit card and no PayPal account).
It seems like this should be a very simple question, but I've spent 2 weeks working a trouble ticket with PayPal just to be told it's not possible to know this detail about a subscription. But... I don't believe this, I am sure there's a way.
I've tried comparing the data on a sub paid via a PayPal account to one paid via Guest Checkout using the 'api.paypal.com/v1/billing/subscriptions/[SUB ID]' call, but I am unable to see anything there. I wonder if it's in the original webhook that came in when the sub was started? That's where I'll look next, but I doubt that's the answer.
Have you figured out how to do this yet?
The only hint I get from comparing the webhooks on a sub paid via Guest Checkout to a sub paid via a PayPal account is the HTTP_PAYPAL_TRANSMISSION_SIG line looks smaller when someone uses Guest Checkout. But it's probably nothing. Thus, I don't see anything in the webhook that indicates "this sub was paid via Guest Checkout".
Please let me know if you discover anything. I'll do the same.
Haven't Found your Answer?
It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.