Hello,
We have a few FAMILY_SHARED subscriptions which received a DID_RENEW notification, with all the cancellation fields completed, the expiration date in the future and no pending_renewal_info array in it.
We are not sure why did we get the DID_RENEW notification with the cancelation details, shouldn't we get a REVOKE notification?
We found this in the Apple documentation: The pending_renewal_info array is returned only for app receipts that contain auto-renewable subscriptions. If customers voluntarily cancel a subscription renewal while in the grace period, the App Store pauses billing retry, and removes the transaction from pending_renewal_info. The subscription is in the grace period if the key grace_period_expires_date_ms is present and the expiration date hasn't passed.
We do not handle any cancelation related logic for the DID_RENEW notification. Should we adjust the logic for this scenario or there should be a different notification type sent out.
This is how the latest element looks like from the lattest_recipt_info:
"auto_renew_status": "true",
"unified_receipt": {
"status": 0,
"environment": "Production",
"latest_receipt_info": [{
"quantity": "1",
"product_id": "product_id",
"transaction_id": "transaction_id",
"purchase_date": "2023-11-07 23:01:41 Etc/GMT",
"purchase_date_ms": "1699398101000",
"purchase_date_pst": "2023-11-07 15:01:41 America/Los_Angeles",
"original_purchase_date": "2021-10-07 22:01:42 Etc/GMT",
"original_purchase_date_ms": "1633644102000",
"original_purchase_date_pst": "2021-10-07 15:01:42 America/Los_Angeles",
"expires_date": "2024-11-07 23:01:41 Etc/GMT",
"expires_date_ms": "1731020501000",
"expires_date_pst": "2024-11-07 15:01:41 America/Los_Angeles",
"web_order_line_item_id": "web_order_line_item_id",
"is_trial_period": "false",
"is_in_intro_offer_period": "false",
"original_transaction_id": "original_transaction_id",
"cancellation_date": "2023-11-07 15:37:03 Etc/GMT",
"cancellation_date_ms": "1699371423020",
"cancellation_date_pst": "2023-11-07 07:37:03 America/Los_Angeles",
"cancellation_reason": "0",
"in_app_ownership_type": "FAMILY_SHARED",
"subscription_group_identifier": "subscription_group_identifier"
}