Apple이 이제 구독을 회사 전체에 좌석 단위로 판매합니다. 멀티시트 구독 환불은 방식이 다릅니다
Apple은 2026년 10월 22일 기업과 학교를 위한 멀티시트 구독을 기본 활성화 상태로 시작했습니다. 이제 한 번의 구매가 여러 사람을 포함하고, 좌석 제거는 REVOKE 알림으로 도착하며, 환불 증거 엔드포인트는 할당된 좌석을 거부합니다. 무엇이 바뀌었고 비용이 얼마나 드는지 정리합니다.

핵심 요약
- 2026년 10월 22일부터 Apple Business 또는 Apple School Manager를 사용하는 조직은 한 번의 Apple 앱 내 구입으로 앱의 자동 갱신 구독을 대량 구매하고, 기기 관리 도구로 좌석을 할당하며, 언제든 좌석을 추가하거나 제거할 수 있습니다.
- Apple은 App Store Connect에서 멀티시트 구매를 기본으로 활성화했습니다. 2026년 9월 14일 이전에 생성되었고 StoreKit 2를 사용하지 않거나 가족 공유가 켜져 있는 구독은 처음부터 제외 상태이며, 맞춤형 앱의 구독은 제외를 선택할 수 없습니다.
- 멀티시트 구매에서는 Apple 거래 페이로드의 quantity 필드가 좌석 수를 나타내고, 좌석을 받은 각 사람은 inAppOwnershipType이 ASSIGNED인 거래를 받습니다.
- 조직이 누군가에게 할당한 구독을 회수하면 Apple은 REVOKE 알림을 보내고, 해당 거래의 revocationType은 ASSIGNMENT_REVOKE가 됩니다. 이 값은 2026년 10월 23일 프로덕션에서 사용할 수 있게 되었습니다.
- CONSUMPTION_REQUEST에 답하는 Apple의 Send Consumption Information 엔드포인트는 할당된 거래로 호출하면 InvalidAssignedTransactionNotSupportedError를 반환합니다. 따라서 환불 증거는 구매자의 거래에 대해서만 보낼 수 있습니다.
- Apple의 revocationType 필드는 REFUND_FULL과 REFUND_PRORATED를 구분하고, revocationPercentage는 환불 비율을 밀리 단위로 보고합니다. 즉 40000은 40%입니다.
- 한 명의 App Store 고객이 여러 좌석을 구매하고 다른 사람을 초대할 수 있는 Group Purchases(그룹 구매)는 2026년 11월부터 샌드박스에서 테스트할 수 있으며, 올겨울 App Store에 출시됩니다.
Apple은 2026년 10월 22일부터 앱 구독을 조직에 좌석 단위로 판매하기 시작했고, 대부분의 개발자에게 묻지 않고 이 옵션을 켰습니다. Apple Business 또는 Apple School Manager를 사용하는 기업과 학교는 이제 한 번의 앱 내 구입으로 여러분의 자동 갱신 구독을 대량 구매할 수 있습니다. 이로 인해 서버에서 멀티시트 구독 환불이 보이는 모습이 달라집니다. 이제 거래 하나가 수십 명의 비용을 낼 수 있습니다. 좌석은 환불 없이 사라질 수 있습니다. 그리고 환불 건에서 소명하는 데 쓰는 엔드포인트는 실제로 앱을 쓰는 사람들에 대해서는 받아주지 않습니다.
Apple이 무엇을 켰고, 어디서 발표했나
이번 출시는 "Offer your subscriptions to businesses and schools"라는 제목의 짧은 Apple Developer 뉴스로 공지되었습니다. 조직은 한 번의 앱 내 구입으로 필요한 좌석을 구매하고, 기존 기기 관리 도구로 좌석을 할당하고 관리하며, 언제든 좌석을 추가하거나 제거할 수 있다고 합니다. 같은 글에서 설정을 이미 바꾸지 않았다면 App Store Connect에서 멀티시트 구매가 기본으로 활성화된다고도 밝혔습니다.
기반 변경 사항은 무대가 아니라 지난 한 달 동안 변경 로그를 통해 도착했습니다. 9월 28일자 App Store Server API 1.22는 좌석 필드와 그룹 엔드포인트를 샌드박스에서만 추가했습니다. 10월 23일에는 한 줄짜리 서버 업데이트로 그룹 엔드포인트와 ASSIGNMENT_REVOKE 값이 프로덕션으로 옮겨졌습니다. 알림 핸들러를 여름 이후로 바꾸지 않았다면, 처리하도록 만들어지지 않은 데이터를 이미 받고 있는 셈입니다.
| 날짜 | 변경 내용 | Apple의 발표 경로 |
|---|---|---|
| 2026년 6월 | WWDC26에서 멀티시트 구독 발표 | Session 391, Offer subscriptions to groups and organizations |
| 2026년 9월 16일 | App Store Connect에서 멀티시트 구매 기본 활성화 | Apple Developer 뉴스 |
| 2026년 9월 28일 | quantity가 좌석 수를 보고, ASSIGNED와 ASSIGNMENT_REVOKE 추가, 샌드박스 전용 | App Store Server API 변경 로그, 버전 1.22 |
| 2026년 10월 22일 | Apple Business와 Apple School Manager에 Volume Purchasing(대량 구매) 출시 | Apple Developer 뉴스 |
| 2026년 10월 23일 | ASSIGNMENT_REVOKE와 그룹 엔드포인트 프로덕션 출시 | Server API 및 Server Notifications 변경 로그 |
| 2026년 11월 | 샌드박스에서 Group Purchases 테스트 가능 | Apple Developer 뉴스 |
| 올겨울 | App Store에 Group Purchases 출시 | Apple Developer 뉴스 |
기본으로 참여 상태인 대상
거의 모두입니다. Apple의 App Store Connect 도움말 페이지에 따르면, 2026년 9월 14일 이전에 생성된 구독이 처음부터 제외 상태가 되는 것은 StoreKit 2를 사용하지 않거나 가족 공유가 켜져 있을 때뿐입니다. 맞춤형 앱의 구독은 자동으로 Apple Business와 Apple School Manager에 제공되며 제외할 수 없습니다. 설정을 바꾸려면 계정 소유자, 관리자 또는 앱 관리자 역할이 필요하고, 승인된 구독에서 Apple Business 또는 Apple School Manager를 제거하려면 계정 소유자가 필요합니다.
멀티시트 구매가 서버에 나타나는 방식
이제 같은 구독에 두 종류의 거래가 있습니다. 조직의 구매는 하나의 거래이며, 그 quantity 필드가 구매한 좌석 수를 보고합니다. 좌석을 받은 각 사람은 자신만의 거래를 받는데, Apple의 WWDC 세션은 이를 App Store가 구성원마다 거래를 할당하는 것으로 설명합니다. 이러한 구성원 거래의 inAppOwnershipType은 ASSIGNED이며, 이미 처리하고 있을 수 있는 PURCHASED, FAMILY_SHARED 값과 나란히 존재합니다.
어떤 기록이 접근 권한을 결정하는지에 대해 Apple의 입장은 확고합니다. Get Customer Groups 문서에 따르면 그룹 멤버십은 이용 권한과 별개이며, 콘텐츠를 잠금 해제하려면 그룹 멤버십에 의존하지 말고 고객의 거래를 읽어야 합니다. 접근 권한은 거래를 기준으로 부여하세요. 그룹 엔드포인트는 관리자 화면 같은 기능에만 사용하세요.
| 필드 또는 값 | 의미 | 추가 시점 |
|---|---|---|
| quantity | 멀티시트 구매의 좌석 수 | 2026년 9월 28일 |
| inAppOwnershipType = ASSIGNED | 이 사람은 조직이나 그룹을 통해 접근 권한을 가짐 | 2026년 9월 28일 |
| revocationType = ASSIGNMENT_REVOKE | 구매자가 이 사람에게서 구독을 회수함 | 2026년 9월 28일, 프로덕션 10월 23일 |
| revocationType = REFUND_FULL 또는 REFUND_PRORATED | 거래가 전액 또는 일부 환불됨 | 2025년 12월 10일 |
| revocationPercentage | 환불 비율, 밀리 단위(40000 = 40%) | 2025년 12월 10일 |
좌석 제거는 환불이 아니다
대부분의 핸들러가 틀리는 부분이 바로 여기입니다. 조직이 직원의 좌석을 회수하면 Apple은 REVOKE 알림을 보냅니다. 가족 공유 구매자가 공유를 중단할 때 쓰는 것과 같은 유형입니다. 거래의 revocationType은 ASSIGNMENT_REVOKE이고, Apple의 지침은 분명합니다. 해당 거래가 제공하는 콘텐츠에 대한 고객의 접근 권한을 회수하라는 것입니다.
이 이벤트에는 돈이 오갔다는 내용이 전혀 없습니다. 코드가 모든 회수를 환불로 처리하면, 환불률과 순매출, 그리고 그 위에 만든 모든 알림이 일상적인 인력 변동을 매출 손실로 집계하게 됩니다. 먼저 revocationType으로 분기하세요.
- ASSIGNMENT_REVOKE: 이 사람의 접근 권한을 종료합니다. 환불로 기록하지 않습니다.
- FAMILY_REVOKE: 가족 구성원의 접근 권한을 종료합니다. 환불로 기록하지 않습니다.
- REFUND_FULL: 접근 권한을 종료하고 거래 전체를 환불로 기록합니다.
- REFUND_PRORATED: revocationPercentage의 비율만큼 기록한 뒤, 어떤 접근 권한을 남길지 결정합니다.

할당된 좌석의 환불을 소명할 수 없는 이유
App Store 환불은 여전히 모두 Apple이 결정합니다. 고객이 환불을 요청하면 Apple은 CONSUMPTION_REQUEST를 보내고, Send Consumption Information으로 답할 시간 12시간을 줍니다. 멀티시트에서는 앱을 쓰는 사람과 돈을 낸 사람이 서로 다르며, Apple의 API는 이제 둘 사이에 분명한 선을 긋습니다.
Send Consumption Information은 할당된 거래를 거부한다
할당된 거래로 Send Consumption Information, 그 V1 버전 또는 Set App Account Token을 호출하면 Apple은 InvalidAssignedTransactionNotSupportedError를 반환합니다. Apple은 호출 전에 inAppOwnershipType이 ASSIGNED인지 확인하라고 권고합니다. 실제로 증거는 구매자의 거래에 보내거나, 아니면 보낼 곳이 없습니다. 그래도 앱이 구성원 계정에 대해 기록하는 사용 데이터는 보관할 가치가 있습니다. 좌석이 실제로 사용되었는지 알 수 있는 유일한 방법이기 때문입니다.
비례 환불은 어떤 모습인가
Apple은 2025년 12월에 REFUND_PRORATED와 revocationPercentage를 추가했습니다. 소비 정보 요청에서 refundPreference를 GRANT_PRORATED로 지정해 이 결과를 요청할 수 있습니다. 자동 갱신 구독의 경우 Apple이 비율을 직접 계산하므로 GRANT_PRORATED와 함께 consumptionPercentage를 보내지 말라고 안내합니다. 환불이 나중에 철회되면 revocationPercentage는 거래에서 사라집니다.
보상 차원에서 직원 한 명의 구독을 연장할 수 있나요?
아니요. 할당된 구독에 대해 Extend a Subscription Renewal Date는 AssignedSubscriptionExtensionIneligibleError를 반환합니다. Apple의 설명에 따르면 할당된 구독은 구매자가 산 구독과 같은 일정으로 갱신되므로, 구성원 한 명만 따로 옮길 수 없습니다.
멀티시트 구독 환불의 비용
새로운 위험은 규모입니다. Apple의 WWDC 세션은 최대 다섯 개 가격 구간을 쓰는 대량 가격 책정을 소개합니다. 예시에서는 20석까지 좌석당 월 $19.99, 21석부터 40석까지 $13.99, 41석부터 $10.99입니다. 이 숫자로 계산하면 50석 주문은 월 $789.50, 좌석당 약 $15.79가 청구됩니다. 이 거래 하나에 REFUND_FULL이 발생하면 구독 하나의 가격이 아니라 $789.50 전액이 돌아갑니다.
서비스 비용도 같은 방식으로 커집니다. 50석은 50명이 여러분의 서버에서 세션을 실행하고, 기능을 위해 비용을 내는 서드파티 API를 호출하며, 요금이 부과되는 스토리지를 채운다는 뜻입니다. 핸들러가 구매자의 거래만 확인해서 환불된 주문의 좌석 보유자들이 접근 권한을 유지한다면, 그 모두의 비용을 계속 내게 됩니다. ASSIGNMENT_REVOKE를 놓치는 손실은 작지만 더 자주 일어납니다. 구매는 더 이상 그 사람을 포함하지 않으며, 그 사람의 모든 요청은 매출 없이 발생하는 비용입니다.
| 이벤트 | 오가는 돈 | 종료할 접근 권한 | 보낼 수 있는 증거 |
|---|---|---|---|
| 구성원에 대한 ASSIGNMENT_REVOKE | 보고되지 않음 | 해당 구성원 | 해당 없음 |
| 멀티시트 구매에 대한 REFUND_FULL | 거래 전체, 포함된 모든 좌석 | 구매자와 모든 좌석 보유자 | 구매자의 거래만, CONSUMPTION_REQUEST 후 12시간 이내 |
| 멀티시트 구매에 대한 REFUND_PRORATED | revocationPercentage 비율 | 환불 범위에 따라 다름 | 구매자의 거래만 |
| 할당된 거래에 대한 소비 정보 응답 | 받아들여지지 않음 | 해당 없음 | InvalidAssignedTransactionNotSupportedError로 거부 |
개발자의 입장을 묻는 환불 절차는 무엇인가
멀티시트는 이 짧은 목록을 바꾸지 않습니다. 개발자에게 증거를 요청하는 환불 절차는 두 가지뿐입니다. 12시간 이내에 Send Consumption Information으로 답하는 Apple의 CONSUMPTION_REQUEST, 그리고 24시간 이내에 orders.reviewrefund로 답하는 Google Play의 지불 거절(차지백) 검토입니다. 나머지는 모두 여러분 없이 결정됩니다. 2026년 8월 3일 이후 접수된 Google Play 주문의 경우, 지불 거절이 발생하면 개발자는 Play 서비스 수수료를 뺀 구매 가격에 은행의 지불 거절 수수료까지 부담합니다. RefundHalt는 여러분이 이미 수집하는 사용 데이터를 활용해 12시간 안에 Apple의 소비 정보 요청에 답합니다.
이번 주 App Store 핸들러에서 바꿀 것
- 모든 구독 거래에서 quantity를 읽고 구매 정보와 함께 저장합니다.
- inAppOwnershipType을 저장하고, ASSIGNED를 PURCHASED, FAMILY_SHARED와 나란히 별도의 경우로 처리합니다.
- REVOKE 처리를 revocationType으로 분기해, ASSIGNMENT_REVOKE는 환불을 기록하지 않고 접근 권한만 종료하도록 합니다.
- REFUND_PRORATED는 전액 환불이 아니라 revocationPercentage 비율로 기록합니다.
- Send Consumption Information, Set App Account Token, Extend a Subscription Renewal Date를 호출하기 전에 ASSIGNED인지 확인합니다.
- 어느 조직이 50석을 사기 전에, 애초에 조직에 판매할지를 App Store Connect에서 결정합니다.
자주 묻는 질문
- 내 앱에 Apple 멀티시트 구독이 켜져 있나요?
- 아마 그렇습니다. Apple은 App Store Connect에서 멀티시트 구매를 기본으로 활성화했습니다. 2026년 9월 14일 이전에 생성된 구독이 처음부터 제외 상태가 되는 것은 StoreKit 2를 사용하지 않거나 가족 공유가 켜져 있을 때뿐이며, 맞춤형 앱의 구독은 제외할 수 없습니다. 각 구독 페이지의 구매 옵션에서 확인할 수 있습니다.
- ASSIGNMENT_REVOKE가 담긴 REVOKE 알림은 돈을 잃었다는 뜻인가요?
- 아니요. ASSIGNMENT_REVOKE는 조직이나 그룹 구매자가 한 사람에게서 구독을 회수했다는 뜻입니다. Apple은 그 사람의 접근 권한을 종료하라고 안내하지만, 이 이벤트는 환불을 보고하지 않습니다. 환불은 REFUND_FULL 또는 REFUND_PRORATED일 때만 기록하세요.
- 할당된 좌석을 쓰는 직원에 대해 소비 정보를 보낼 수 있나요?
- 아니요. 조직이나 그룹이 고객에게 할당한 거래에 대해 Apple의 Send Consumption Information 엔드포인트는 InvalidAssignedTransactionNotSupportedError를 반환합니다. 먼저 inAppOwnershipType이 ASSIGNED인지 확인하고, 증거는 구매자의 거래에 보내세요.
- Apple이 멀티시트 구매 중 얼마를 환불했는지 어떻게 알 수 있나요?
- 거래의 revocationType과 revocationPercentage를 읽으세요. REFUND_FULL은 거래 전체가 환불되었다는 뜻입니다. REFUND_PRORATED에는 밀리 단위의 revocationPercentage가 함께 오며, 40000은 거래 금액의 40%를 뜻합니다.
- Apple의 Group Purchases는 언제 출시되나요?
- Apple에 따르면 한 명의 App Store 고객이 여러 좌석을 구매하고 다른 사람을 초대할 수 있는 Group Purchases는 2026년 11월부터 샌드박스에서 설정하고 테스트할 수 있으며, 올겨울 App Store에서 제공됩니다. 기업과 학교를 위한 Volume Purchasing은 2026년 10월 22일에 출시되었습니다.
출처 및 추가 자료
- Apple Developer News: Offer your subscriptions to businesses and schools (October 22, 2026)
- App Store Connect Help: Manage purchase options for an auto-renewable subscription
- WWDC26 Session 391: Offer subscriptions to groups and organizations
- App Store Server Notifications changelog
- App Store Server API: revocationType
- App Store Server API: revocationPercentage
- App Store Server API: InvalidAssignedTransactionNotSupportedError
- App Store Server API: ConsumptionRequest
RefundHalt
App Store와 Google Play 환불 자동 처리
계속 읽기
과도한 환불 요청은 환불액보다 더 큰 손실을 부릅니다. 두 앱 스토어 모두 이를 품질 신호로 보기 때문입니다
Apple 가이드라인 5.6.4는 과도한 환불 요청을 앱이 품질 기준에 미달한다는 징후로 꼽고, Google의 개발자 배포 계약은 환불률을 근거로 신규 개발자의 앱을 삭제할 수 있게 합니다. 각 스토어가 무엇이라고 규정하는지, 삭제되면 무엇을 잃는지, 위험을 어떻게 피하는지 정리했습니다.
환불을 처리하기 전에 App Store 서버 알림을 검증하세요. 누구나 웹훅 URL로 요청을 보낼 수 있습니다
환불 알림은 서명을 확인하기 전까지는 하나의 HTTPS 요청에 불과합니다. App Store 서버 알림과 Google Play RTDN 메시지를 검증하는 방법, 각 스토어가 무엇에 서명하는지, 그리고 위조된 환불이나 잘못 거부된 환불이 어떤 비용을 초래하는지 설명합니다.