If this is not the correct repository to submit this issue, could you please direct me to the appropriate one as I couldn't find any repository specifically for the REST API (where issues can be posted).
Issue Overview:
My client is encountering a bug with the PayPal REST API, specifically with the subscriptions v1 API. While most functionality works as expected, there is an intermittent issue where the BILLING.SUBSCRIPTION.CANCELLED webhook event is not sent by PayPal, resulting in mismatched subscription statuses between PayPal's records and my client’s database.
Details of the Issue:
Users subscribe to the product, and payments are processed correctly at the defined frequency (weekly, monthly or yearly).
Client's server processes the webhook events received from PayPal (BILLING.SUBSCRIPTION.ACTIVATED, PAYMENT.SALE.COMPLETED, ...) and updates the customers' account accordingly.
Once in a while, a user cancels the subscription which triggers the BILLING.SUBSCRIPTION.CANCELLED webhook event. However, in some cases (12 instances out of 145 cancellations, ~8%), the BILLING.SUBSCRIPTION.CANCELLED event is not received.
Steps to Investigate:
Validated Subscription Status on PayPal:
In the PayPal dashboard, all affected subscriptions are correctly marked as CANCELLED.
Checked Subscription Details via REST API:
Used the Show subscription details endpoint to verify the status of subscriptions where the BILLING.SUBSCRIPTION.CANCELLED event was not received.
The API response confirms the status as CANCELLED for all affected subscriptions.
Check for events delivery using the list event notifications Endpoint:
Queried webhook events using the Webhooks managementlist event notifications endpoint for all BILLING.SUBSCRIPTION.CANCELLED events in the past 30 days.
The returned list contained only the BILLING.SUBSCRIPTION.CANCELLED events that were successfully processed by the client but excluded the missing events.
Conclusion:
Based on the above, it appears that the BILLING.SUBSCRIPTION.CANCELLED events for the affected subscriptions were not generated / sent by PayPal. This suggests a low-frequency bug in the PayPal REST API.
Let me know if you’d like additional details or further testing from our side. Thank you for looking into this issue!
If this is not the correct repository to submit this issue, could you please direct me to the appropriate one as I couldn't find any repository specifically for the REST API (where issues can be posted).
Issue Overview:
My client is encountering a bug with the PayPal REST API, specifically with the
subscriptions v1
API. While most functionality works as expected, there is an intermittent issue where theBILLING.SUBSCRIPTION.CANCELLED
webhook event is not sent by PayPal, resulting in mismatched subscription statuses between PayPal's records and my client’s database.Details of the Issue:
BILLING.SUBSCRIPTION.ACTIVATED
,PAYMENT.SALE.COMPLETED
, ...) and updates the customers' account accordingly.BILLING.SUBSCRIPTION.CANCELLED
webhook event. However, in some cases (12 instances out of 145 cancellations, ~8%), theBILLING.SUBSCRIPTION.CANCELLED
event is not received.Steps to Investigate:
Validated Subscription Status on PayPal:
CANCELLED
.Checked Subscription Details via REST API:
Show subscription details
endpoint to verify the status of subscriptions where theBILLING.SUBSCRIPTION.CANCELLED
event was not received.CANCELLED
for all affected subscriptions.Example Request:
Example Response:
Check for events delivery using the
list event notifications
Endpoint:Queried webhook events using the
Webhooks management
list event notifications
endpoint for allBILLING.SUBSCRIPTION.CANCELLED
events in the past 30 days.Example Request:
The returned list contained only the
BILLING.SUBSCRIPTION.CANCELLED
events that were successfully processed by the client but excluded the missing events.Example Response (Truncated):
Conclusion:
Based on the above, it appears that the
BILLING.SUBSCRIPTION.CANCELLED
events for the affected subscriptions were not generated / sent by PayPal. This suggests a low-frequency bug in the PayPal REST API.Let me know if you’d like additional details or further testing from our side. Thank you for looking into this issue!