Apple Pay In-App Provisioning fails at eligibility step with HTTP 500 before Terms & Conditions in production TestFlight build

Hi,

We’re testing Apple Pay In-App Provisioning in the production environment using a TestFlight build, and the provisioning flow fails before the Terms & Conditions screen is shown.

From the device logs, the failure happens during the eligibility step:

ProvisioningOperationComposer: Step 'eligibility' failed eligibility request failure Received HTTP 500 PKPaymentWebServiceErrorDomain

We submitted a Feedback Assistant report with the sysdiagnose and all requested private details.

Feedback ID: FB22911853

We also verified the exported IPA:

It is signed with Store provisioning profiles. get-task-allow is false. ProvisionedDevices is absent. com.apple.developer.payment-pass-provisioning is present in both the app signature entitlements and the embedded provisioning profile entitlements.

Could you please advise what we should check next? We’re trying to understand whether this points to a client payload issue, Apple Pay production configuration issue, allowlist issue, or payment network configuration issue.

Thanks

Update: we found the root cause and the issue is now resolved.

In our case, the WSD key identifier was configured incorrectly. The identifier had to include the .1 suffix, but our initial configuration used the value without this suffix.

We changed the value in our system from something like 123456 to 123456.1, and Apple Pay In-App Provisioning started working correctly.

It looks like Apple validates the MBPAC / MBPAD payload structure during provisioning, so an incorrect WSD key identifier can cause the eligibility step to fail with HTTP 500 before Terms & Conditions.

Thank you for the post and filling a bug. Let's make sure this is a bug instead of an issue on your end.

However if the provisioning flow is failing at the eligibility step with an HTTP 500. Because this is a 500-level error and if Visa has confirmed they are not receiving the request, this looks like a failure on on the backend when attempting to process the request or route it to the payment network in the Production environment.

On your bug, have you uploaded all the logs showing that?

You can see the status of your feedback in Feedback Assistant. There, you can track if the report is still being investigated, has a potential identifiable fix, or has been resolved in another way. The status appears beside the label "Resolution." We're unable to share any updates on specific reports on the forums.

For more details on when you'll see updates to your report, please see What to expect after submission.

Albert
  Worldwide Developer Relations.

Accepted Answer

Update: we found the root cause and the issue is now resolved.

In our case, the WSD key identifier was configured incorrectly. The identifier had to include the .1 suffix, but our initial configuration used the value without this suffix.

We changed the value in our system from something like 123456 to 123456.1, and Apple Pay In-App Provisioning started working correctly.

It looks like Apple validates the MBPAC / MBPAD payload structure during provisioning, so an incorrect WSD key identifier can cause the eligibility step to fail with HTTP 500 before Terms & Conditions.

Apple Pay In-App Provisioning fails at eligibility step with HTTP 500 before Terms & Conditions in production TestFlight build
 
 
Q