I am not sure why the answer is accepted above, as it is incorrect.
An application can update a pass without push notification, provided that it has permission for the passTypeIdentifier and the missing serial number is known.
You must create and subscribe to the server outside your application, but as soon as your application receives a new .pkpass package, it can update the pass using the replacePassWithPass method of the PKPassLibrary class.
From the document above.
Your application downloads a new pass from your server and uses the replacePassWithPass: PKPassLibrary class method to install it.
source share