We have implemented an API service in .NET that sends background notifications to Apple Wallet to update its balance, which in turn calls below to APIs of our service:
webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier?passesUpdatedSince=tag
webServiceURLversion/passes/passTypeIdentifier/serialNumber
Service sends a push notification to api.push.apple.com:443
using HTTP/2 protocol and uses Pass Type ID with NFC Certificate for auth, with success every time and the wallet invokes the above two APIs hence balance gets updated.
However around 30% of the time, pass update happens with a delay; and the delay keeps on increasing like 1 min, 2 mins, 10 mins, 1 hour, and so on, and gets reset.
I tried to add a header apns-expiration
with the value UtcNow + 5 mins in epoch format in the push notification request, but it did not work.