<!--
{
  "availability" : [
    "App Store Server API: 1.23.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppStoreServerAPI",
  "identifier" : "/documentation/AppStoreServerAPI/Claim-Seat",
  "metadataVersion" : "0.1.0",
  "role" : "Web Service Endpoint",
  "symbol" : {
    "kind" : "Web Service Endpoint",
    "modules" : [
      "App Store Server API"
    ],
    "preciseIdentifier" : "rest:app_store_server_api:post:groups-v1-transactions-{}-seats"
  },
  "title" : "Claim Seat"
}
-->

# Claim Seat

Claim a seat for a customer in a group subscription that uses developer-hosted invitations.

## Discussion

> Important:
> This endpoint is only available in the sandbox environment.

Call this endpoint only for an active group subscription that uses developer-hosted invitations, where the [`invitationManagement`](/documentation/AppStoreServerAPI/invitationManagement) value in the purchaser’s transaction is `DEVELOPER`. Members of these groups don’t receive transactions, so your server keeps the record of who has access. Claim a seat for each member other than the purchaser to tell the App Store that the seat is occupied.

When a customer accepts an invitation to join a group in your app, call this endpoint with a [`ClaimSeatRequest`](/documentation/AppStoreServerAPI/ClaimSeatRequest). The response, [`ClaimSeatResponse`](/documentation/AppStoreServerAPI/ClaimSeatResponse), contains a [`seatClaimId`](/documentation/AppStoreServerAPI/seatClaimId) that identifies the seat claim. Store the `seatClaimId` with your record of the member. You need it to unclaim or associate the seat, and the App Store uses it to identify seats that it unclaims.

### Make claims safe to repeat

The `requestIdentifier` in the request makes the claim safe to repeat. Generate a new `requestIdentifier` for each claim, and save it before you call this endpoint. If a request fails or times out, call the endpoint again with the same `requestIdentifier`. If the original request claimed a seat, the App Store returns that `seatClaimId`, rather than claiming another seat. A request with a new `requestIdentifier` claims a new seat.

### Associate the customer with the seat

If you know the [`appTransactionId`](/documentation/AppStoreServerAPI/appTransactionId) of the customer who occupies the seat when you claim it, include it in the request. The App Store associates the customer with the seat as part of the claim. If you learn the `appTransactionId` after you claim the seat, call the [`Associate Seat`](/documentation/AppStoreServerAPI/Associate-Seat) endpoint instead.

### Claim seats only when seats are available

You can claim a seat only when the subscription has a seat available. If it doesn’t, the endpoint returns a [`NoAvailableSeatsError`](/documentation/AppStoreServerAPI/NoAvailableSeatsError). To get the number of available seats, call the [`Get Seat Info`](/documentation/AppStoreServerAPI/Get-Seat-Info) endpoint.

If the group purchaser reduces the number of seats, the App Store doesn’t unclaim any seats when the subscription renews, so the number of claimed seats can exceed the number of seats in the subscription. Call the [`Unclaim Seat`](/documentation/AppStoreServerAPI/Unclaim-Seat) endpoint to release seats until the number of claimed seats is lower than the number of seats in the subscription, and then claim new seats.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)