---
title: "Enable a capability on a bundle ID"
method: POST
path: "/appsec/7.0/apple/bundle-ids/{id}/capabilities"
tags: ["Bundle IDs"]
---

# Enable a capability on a bundle ID

`POST /appsec/7.0/apple/bundle-ids/{id}/capabilities`

`id` is Apple's bundle-id resource id (not the reverse-DNS string). Use capabilityType PUSH_NOTIFICATIONS to enable push.

## Path parameters

- `id` string, required

## Request body

- CapabilityRequest
  - `capabilityType` string, required — e.g. PUSH_NOTIFICATIONS or APP_GROUPS.
  - `appGroupIds` string[], nullable — Apple App Group resource ids to associate when capabilityType is APP_GROUPS.

## Response `204`

Capability enabled

## Other responses

- `400` — Missing or invalid parameters (plain-text reason in the body).
- `403` — Caller is anonymous / not authenticated.
- `404` — Apple no longer has the object -- it was deleted in the Developer portal. A reconcile brings us back in step.
- `409` — The account's App Store Connect API key is missing, was rejected by Apple (revoked, or the Key ID / Issuer ID do not match the .p8), or lacks the access this call needs. The developer has to fix the stored key -- retrying will not clear it. The body is a plain-text explanation written for them.
- `422` — The stored key is fine but Apple refused this particular request (for example "You already have a current Distribution certificate"). The body is a plain-text explanation, carrying Apple's own wording where Apple supplied it.
- `429` — Apple is rate-limiting App Store Connect requests for this team. Retrying after a pause is correct.
- `502` — App Store Connect is down or unreachable, so the call could not be completed. This is the only genuinely upstream failure and the only one worth retrying automatically; anything the developer must act on comes back as 409 or 422 instead.

## Changes

- **2026-08-19** `f0b48d0af96f` — 3 info
  - added the non-success response with the status `404`
  - added the non-success response with the status `422`
  - added the non-success response with the status `429`
- **2026-07-13** `e1a39e5da408` — 1 info
  - added the new optional request property `appGroupIds`
- **2026-07-06** `745ddb8c0d15` — 1 warning
  - removed the request property `appGroupIds`

[Change history](https://skmtc.dev/codenameone/apis/codename-one-apple-signing-service/changes/appsec/7.0/apple/bundle-ids/:id/capabilities/post.md)

---

[API](https://skmtc.dev/codenameone/apis/codename-one-apple-signing-service.md) · [All operations](https://skmtc.dev/codenameone/apis/codename-one-apple-signing-service/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/codenameone/codename-one-apple-signing-service/revisions/f0b48d0af96f/schema)
