SDK 2.10.7에서 requestNotificationAgreement가 templateCode와 무관하게 "잘못된 요청입니다"로 실패합니다

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

환경

  • 개발 환경: WebView
  • SDK: @apps-in-toss/web-framework 2.10.7
  • 테스트 환경: 샌드박스 앱, intoss-private 딥링크 (둘 다 동일 증상)
  • 미니앱: 게임 카테고리, 출시 완료

증상
알림 동의 화면이 뜨지 않고 onError로 "잘못된 요청입니다."만 반환됩니다.

templateCode에 아래 6가지를 넣어봤는데 전부 같은 메시지로 실패했습니다.

  1. 스마트발송 기능성 템플릿(NORMAL) 코드
  2. 서버발송 템플릿(SERVER) 그룹 코드 = 템플릿셋 코드
  3. 서버발송 템플릿(SERVER) 템플릿셋 코드
  4. 알림동의문 stdConsentCode
  5. subscriptionTemplateId
  6. agreementId

문자열 코드와 숫자처럼 형식이 전혀 다른 값도 동일한 에러라, 값 문제가 아니라 요청 자체가 거부되는 것으로 보입니다.

배제한 원인

  • 앱 버전: isMinVersionSupported(android/ios 5.255.0)가 true이고, 에러도 UNSUPPORTED_APP_VERSION이 아닙니다.
  • 콘솔 설정: 알림동의문 등록 완료, 연결된 스마트발송 템플릿 모두 검수 APPROVED.
  • 서버 발송 API(send-message)는 정상 동작하며 TERMS_DISAGREED_MEMBER를 반환합니다. 인증서, 템플릿, x-anon-key는 유효하고 사용자 동의 단계만 막힌 상태입니다.

질문
3.0.0 타입 정의를 보니 requestNotificationAgreement가 @deprecated이고 Notification.requestAgreement 사용을 권장하고 있었습니다.
2.10.7에는 없는 isSupported / MIN_TOSS_APP_VERSION이 3.0.0에는 붙어 있어 구현이 달라 보입니다.

  1. 알림 동의를 받으려면 3.x의 Notification.requestAgreement가 필수인가요?
  2. 2.10.x에서도 동작해야 한다면 templateCode에 어떤 값을 넣어야 하나요?
    그 외 빠진 전제 조건이 있는지도 알고 싶습니다.

3.x 마이그레이션은 롤백이 불가능하다고 안내되어 있어 원인을 확인한 뒤 진행하려 합니다.

appName (선택)

jusikwang

안녕하세요 :slight_smile:

  1. 2.x 에서도 requestNotificationAgreement 를 통해 알림 동의를 받을 수 있습니다.
  2. 기능성 메시지의 발송 코드를 넣어 주시면 됩니다!

알림동의문을 먼저 생성해서 해당 알림 동의문을 연결해주신게 맞을까요 ?

확인해보니, 현재 특정 발송 조건일때 받는 알림동의문만 생성되어 있어서 토스에게 발송 요청하기 방법으로 템플릿 생성을 위해선 정기발송 알림동의문이 필요합니다!

이미지와 같이 알림동의문 생성 후 연결 > 테스트 부탁드립니다 :man_bowing:
가이드도 보강해두겠습니다.