App Store & Play Store Development

Apple Consumption API 동의: Apple이 실제로 요구하는 것

Apple의 CONSUMPTION_REQUEST는 고객이 동의했는지 알려주지 않지만, 유효한 동의 없이는 소비 데이터를 전송할 수 없습니다. Apple이 요구하는 사항과 동의가 어디에 존재해야 하는지 알아보세요.

5 min read
Apple Consumption API 동의: Apple이 실제로 요구하는 것

빠른 답변: CONSUMPTION_REQUEST에 대한 응답으로 Apple에 소비 데이터를 전송하기 전에, 고객으로부터 유효한 동의를 받아야 하며 customerConsented를 true로 설정해야 합니다. Apple의 알림은 동의가 존재하는지 알려주지 않으며, 이는 의도된 설계로, Apple은 서버가 아니라 앱에서 동의를 수집할 것을 기대합니다. 그리고 사용자로부터 수집한 데이터를 공유하는 주체가 바로 개발자이기 때문에, 그 동의에 대한 법적 책임은 Apple이 아니라 전적으로 개발자에게 있습니다. 이를 잘못 처리하면 단순히 API 호출이 거부되는 것이 아니라 개인정보 보호법 문제가 됩니다.

대부분의 개발자가 놓치는 빈틈

환불 자동화 가이드들은 12시간의 제한 시간과 소비 데이터 필드에 대해 이야기하기를 좋아합니다. 하지만 개발자를 가장 곤경에 빠뜨릴 가능성이 높은 세부 사항, 즉 CONSUMPTION_REQUEST 알림에 동의에 대한 표시가 전혀 없다는 점을 짚고 넘어가는 경우는 거의 없습니다.

이 사실은 많은 사람을 놀라게 합니다. Apple이 데이터를 요청한다면 그 데이터를 공유할 권한도 이미 Apple이 처리했을 거라고 합리적으로 생각할 수 있습니다. 하지만 그렇지 않습니다. Apple의 입장은 정반대입니다. 전송하는 데이터는 개발자가 개발자의 사용자로부터 수집한 데이터이므로, 이를 공유할 권한을 확보할 책임은 개발자에게 있습니다. Apple은 단지 customerConsented를 true로 설정하여 이를 확인(attest)하도록 요구하며, 그렇지 않으면 제출을 거부합니다. 이것이 바로 Apple Consumption API 동의 요건의 핵심입니다.

즉, 이 필드는 API를 만족시키기 위해 그냥 켜두는 체크박스가 아닙니다. 이는 법적 확인(attestation)입니다. 실제로 동의를 받지 않은 상태에서 이를 true로 설정하는 것은 단순한 기술적 디테일이 아니라, 언젠가 드러날 컴플라이언스 위반입니다.

동의가 개발자의 책임인 이유

각자 어떤 역할을 맡는지 생각해 보세요. Apple은 스토어를 운영하고 환불 결정을 내립니다. 하지만 ConsumptionRequest에 담는 계정 가입 기간, 이용 시간, 배송 상태, 이용 내역 등은 개발자의 개인정보 보호정책에 따라 수집된, 개발자의 사용자에 대한 개발자의 기록입니다. 이를 Apple에 전송하는 순간, 개발자는 제3자에게 개인정보를 공개하는 것입니다.

적용되는 개인정보 보호 법제 하에서 이러한 공개는 적절한 법적 근거가 필요합니다. Apple의 API 문서는 Consumption Information API를 통해 개인정보를 공유하기 전에 유효한 동의를 요구하며, 정확한 법적 요건은 사용자의 관할 지역에 따라 달라집니다. Apple은 개발자가 해당 법률 준수 여부를 판단할 책임이 있다고 명시하고 있습니다.

바로 이런 이유로 그 부담은 개발자에게 돌아갑니다. 규제 기관이 사용자의 데이터를 공유할 권한을 어떻게 확보했는지 물었을 때 "Apple이 요청했다"는 답변은 방어 수단이 되지 못합니다. apple 환불 동의 워크플로에서 중요한 것은 데이터가 공유되기 전에 동의가 존재해야 한다는 점입니다.

동의를 수집해야 하는 위치

실질적으로 중요한 부분은 이것입니다. 동의는 환불 플로우가 시작되기 전, 앱 내에서 수집해야 하며, 알림이 도착했을 때 서버에서 추론해서는 안 됩니다.

CONSUMPTION_REQUEST가 서버에 도착할 시점에는 이미 동의를 요청하기에 너무 늦습니다. 사용자는 그 자리에 없고, 약 12시간의 제한 시간만 있습니다. 동의는 앱의 온보딩 과정과 데이터 처리 방침 고지 과정에서 미리 수집되어 이미 존재해야 하며, 그래야 요청이 도착했을 때 customerConsented를 true로 진실하게 설정할 수 있습니다.

실제로 이는 앱의 이용약관, 개인정보 보호정책, 그리고 구매 또는 온보딩 플로우에서 환불 요청 처리를 위해 소비 데이터가 Apple과 공유될 수 있다는 점을 명확히 고지하고, 스스로 당당히 설명할 수 있는 방식으로 동의를 받아야 한다는 의미입니다. 모호하거나, 다른 항목에 묶여 있거나, 눈에 잘 보이지 않는 곳에 숨겨진 동의는 현대 개인정보 보호법이 정확히 배척하려는 대상입니다. 이는 apple 환불 개인정보 측면에서도 핵심적인데, Apple이 소비 데이터를 공유하기 전에 명시적으로 유효한 동의를 요구하기 때문입니다.

이것이 GDPR 및 DPDP와 연결되는 방식

사용자 중 일부가 EU/영국(GDPR), 인도(DPDP), 캘리포니아(CCPA), 또는 점점 늘어나고 있는 다른 관할 지역에 있다면, 소비 데이터 공유는 해당 법적 프레임워크의 적용 범위에 명확히 포함됩니다. 공통적으로 적용되는 몇 가지 원칙은 다음과 같습니다.

  • 동의는 고지되고 구체적이어야 합니다. 사용자는 긴 법률 문구 더미에 그냥 동의하는 것이 아니라, 환불 관련 데이터가 Apple과 공유될 수 있다는 사실을 이해해야 합니다.

  • 동의는 분리 가능해야 합니다. 데이터 공유 동의를 관련 없는 다른 약관과 하나의 필수 체크박스에 묶는 것은 널리 알려진 안티패턴입니다.

  • 이를 증명할 수 있어야 합니다. 문제가 제기될 경우 "동의를 받았다"는 주장은 입증 가능해야 하며, 이는 동의 수집 과정이 추정이 아니라 기록으로 남아 있어야 한다는 의미입니다.

  • 개인정보 보호정책에 실제로 명시되어 있어야 합니다. 정책에서 환불을 위해 소비 데이터를 Apple과 공유한다는 내용을 고지하지 않았다면, 그에 대한 동의는 근거가 불안정합니다.

gdpr 소비 데이터 요건을 검토하는 팀의 경우, 중요한 점은 Apple 자체가 이 API에 대해 유효한 동의를 요구하는 동시에, 정확한 법적 요건과 법적 근거는 관할 지역에 따라 달라질 수 있다는 것입니다. Apple의 가이드에 따르면 동의는 자유롭게 주어지고, 구체적이며, 고지되고, 명확해야 하며, 적용 법률 준수 여부를 판단할 책임은 개발자에게 있습니다.

인도 시장을 대상으로 하는 앱의 경우에도, Apple의 API 요건만으로 모든 개인정보 보호 의무가 해결된다고 가정하지 말고 dpdp 앱 환불 동의를 해당 요건에 비추어 검토해야 합니다.

이는 법률 자문이 아니며, 구체적인 의무는 사용자와 관할 지역에 따라 달라지지만, 방향성은 명확합니다. customerConsented 필드 뒤에 있는 동의는 실제적이고, 고지되었으며, 문서로 기록되어 있어야 합니다.

규정을 준수하는 설정의 모습

종합해 보면, 방어 가능한 설정은 환불이 발생하기 전에 미리 작동해야 하는 세 가지 요소로 구성됩니다.

  1. 고지: 개인정보 보호정책과 이용약관에서 환불 요청 처리를 위해 소비/이용 데이터가 Apple과 공유될 수 있다는 점을 명확히 명시합니다.

  2. 수집: 앱이 사용자의 고지되고 분리 가능한 동의를 받고 이를 기록합니다.

  3. 확인(Attestation): CONSUMPTION_REQUEST가 도착하면, 응답에서 기록된 동의 내용을 customerConsented에 정직하게 반영합니다.

RefundSensor는 이러한 동의 체인을 염두에 두고 설계되었습니다. 이 플랫폼은 자동화된 플로우의 일환으로 환불 응답과 customerConsented 확인(attestation)을 처리하며, GDPR, DPDP, CCPA에 맞춘 개인정보 보호정책, 이용약관, DPA, 쿠키 및 환불 정책을 포함한 전체 컴플라이언스 문서 세트를 공개했습니다. 이를 통해 고지 및 처리 측면은 즉흥적으로 대응하는 것이 아니라 체계적으로 다뤄집니다. 앱 내 동의 수집은 당연히 개발자의 몫으로 남지만, 그 이후의 모든 과정은 처리됩니다.

환불 컴플라이언스 소프트웨어나 Apple 환불 자동화 도구를 검토하는 팀이라면 이러한 구분이 중요합니다. 자동화는 기술적 응답을 처리할 수 있지만, 고객 동의를 임의로 만들어내거나 추정해서는 안 됩니다.

가장 흔한 실수

  • customerConsented를 기본값으로 true로 설정하는 것. 환불 기능을 컴플라이언스 위험 요소로 바꾸는 가장 빠른 방법입니다.

  • Apple이 동의를 처리한다고 가정하는 것. Apple은 그렇게 하지 않으며, 명시적으로 그렇다고 밝히고 있습니다.

  • 환불 시점에 동의를 수집하려는 것. 그 시점에는 사용자도 없고 시간적 여유도 없으므로, 동의는 사전에 이미 존재해야 합니다.

  • 개인정보 보호정책에 아무것도 고지하지 않는 것. 정책이 Apple과의 데이터 공유에 대해 아무 언급도 하지 않는다면, 그 뒤에 있는 동의는 방어하기 어렵습니다.

  • 하나의 필수 체크박스에 묶는 것. 분리 가능한 동의가 표준이며, 묶는 방식은 이를 훼손합니다.

  • App Tracking Transparency를 동의 메커니즘으로 사용하는 것. Apple의 문서는 Consumption Information API에 필요한 동의가 App Tracking Transparency와는 별개라고 명확히 밝히고 있습니다.

공식 자료

요건과 규정은 모두 변경될 수 있으므로, 다음 자료를 최종 기준으로 참고하시기 바랍니다.

동의 체인을 존중하는 환불 자동화. RefundSensor는 자동화된 플로우의 일환으로 환불 응답과 customerConsented 확인(attestation)을 처리하며, GDPR/DPDP/CCPA에 맞춘 전체 컴플라이언스 문서 세트가 이를 뒷받침합니다. 앱 환불 자동화를 찾는 팀이라면, 동의 체인은 구현 과정의 일부로 남아 있습니다. 무료로 시작하기

자주 묻는 질문

네. 유효하고 고지된 동의를 받아야 하며 customerConsented를 true로 설정해야 합니다. Apple은 이러한 확인(attestation)을 요구하며 이것이 없으면 응답을 거부합니다. 또한 동의를 받았는지에 대한 법적 책임은 개발자에게 있습니다.

환불 플로우 이전, 즉 앱 내에서 수집해야 합니다. CONSUMPTION_REQUEST가 서버에 도착할 때는 사용자가 없고 약 12시간의 제한 시간만 있으므로, 동의는 이미 존재하고 기록되어 있어야 합니다.

아니요. 해당 알림에는 동의 여부에 대한 표시가 전혀 없습니다. Apple은 개발자의 앱이 이미 동의를 수집했을 것으로 기대하며, 응답에서 이를 확인(attest)하도록 요구합니다.

동의 체인이 제대로 구성되어 있다면 준수할 수 있습니다. 즉, 정책에서의 명확한 고지, 앱 내에서 수집되고 기록되는 고지된 분리형 동의, 그리고 API 응답에서의 정직한 확인(attestation)이 갖춰져야 합니다. 자동화는 응답을 처리하지만, 앱 내 동의 수집은 개발자의 책임입니다.

Apple은 소비 데이터를 처리하지 않으므로, 해당 환불 결정에 영향을 줄 기회를 잃게 됩니다. 올바른 방법은 동의 없이 데이터를 보내는 것이 아니라 사전에 실제 동의를 받는 것입니다.

#consumption api consent#customerConsented#apple refund consent#gdpr consumption data#dpdp app refund#apple refund privacy
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers