Just helping everyone read the post above since it lacks formatting (formatted using gen AI):
Overview
We have been using this API call to set the In-App Provisioning capability for 2+ years, and it just recently started returning errors.
Previously Working Setup
To set the In-App Provisioning capability, we had been using the App Store Connect API directly:
curl "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities" \
-X POST \
--header "Authorization: Bearer #{appleApiToken}" \
--header "Content-Type: application/json" \
-d '{
"data": {
"type": "bundleIdCapabilities",
"attributes": {
"capabilityType": "IN_APP_PASS_PROVISIONING"
},
"relationships": {
"bundleId": {
"data": {
"id": "#{appStoreBundleIdentifier}",
"type": "bundleIds"
}
}
}
}
}'
The IN_APP_PASS_PROVISIONING capability type is shown when retrieving the bundle ID capabilities, if In-App Provisioning is set on a bundle ID:
curl "https://api.appstoreconnect.apple.com/v1/bundleIds/#{appStoreBundleIdentifier}/bundleIdCapabilities" \
--header "Authorization: Bearer #{appleApiToken}"
Example Response (after manual setup via the Developer Portal)
After manually setting the In-App Provisioning capability via the Apple Developer Portal, you'll see:
{
"type": "bundleIdCapabilities",
"id": "##########_IN_APP_PASS_PROVISIONING",
"attributes": {
"settings": null,
"capabilityType": "IN_APP_PASS_PROVISIONING"
},
"relationships": {
"bundleId": {
"links": {
"self": "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities/##########_IN_APP_PASS_PROVISIONING/relationships/bundleId",
"related": "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities/##########_IN_APP_PASS_PROVISIONING/bundleId"
}
}
},
"links": {
"self": "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities/##########_IN_APP_PASS_PROVISIONING"
}
}
Current Issue
Apple has recently (within the last week) removed support for setting the IN_APP_PASS_PROVISIONING capability via the bundleIdCapabilities API endpoint.
Here’s the error returned:
{
"errors": [
{
"id": "c6644913-d1c5-4eda-9faa-7766adf25c39",
"status": "409",
"code": "ENTITY_ERROR.ATTRIBUTE.TYPE",
"title": "An attribute in the provided entity has the wrong type",
"detail": "'IN_APP_PASS_PROVISIONING' is not a valid value for the attribute 'capabilityType'. Expected one of: 'ICLOUD', 'IN_APP_PURCHASE', 'GAME_CENTER', 'PUSH_NOTIFICATIONS', 'WALLET', 'INTER_APP_AUDIO', 'MAPS', 'ASSOCIATED_DOMAINS', 'PERSONAL_VPN', 'APP_GROUPS', 'HEALTHKIT', 'HOMEKIT', 'WIRELESS_ACCESSORY_CONFIGURATION', 'APPLE_PAY', 'DATA_PROTECTION', 'SIRIKIT', 'NETWORK_EXTENSIONS', 'MULTIPATH', 'HOT_SPOT', 'NFC_TAG_READING', 'CLASSKIT', 'AUTOFILL_CREDENTIAL_PROVIDER', 'ACCESS_WIFI_INFORMATION', 'NETWORK_CUSTOM_PROTOCOL', 'COREMEDIA_HLS_LOW_LATENCY', 'SYSTEM_EXTENSION_INSTALL', 'USER_MANAGEMENT', 'APPLE_ID_AUTH'",
"source": {
"pointer": "/data/attributes/capabilityType"
}
}
]
}
Question
How do we set the In-App Provisioning (IN_APP_PASS_PROVISIONING) capability type via the Apple API on bundle IDs that have been approved by Wallet Entitlements?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect API