<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[공지] 자주 묻는 질문]]></title><description><![CDATA[<h2>연동가이드 FAQ를 먼저 확인해 주세요</h2>
<p dir="auto">문의 전에 <a href="https://docs.tossplace.com/faq.html" rel="nofollow ugc">연동가이드 FAQ</a>에서 관련 내용을 먼저 확인해 주세요. 개발·테스트·검수·배포와 제품별 주요 질문을 모아 두었어요.</p>
<p dir="auto">FAQ에서 답을 찾지 못했다면 포럼에 문의를 남겨 주세요.</p>
<hr />
<h2><strong>1. 연동 수단 고르기</strong></h2>
<h4>Q. 프론트 플러그인과 토스 POS를 함께 쓸 수 있나요?</h4>
<p dir="auto"><strong>A.</strong> <strong>동시 연결은 지원하지 않아요.</strong> 프론트 플러그인 모드는 외부 POS 또는 솔루션사 시스템과 토스 프론트를 연동하기 위한 모드예요.</p>
<p dir="auto">토스 POS와 프론트를 함께 사용하신다면 <strong>프론트는 일반 연결 모드로 동작</strong>하고, 플러그인을 개발해 프론트 화면을 직접 구성하는 방식은 사용할 수 없어요. 이 구성에서 확장이 필요하면 POS 플러그인 SDK 또는 Open API를 검토해 주세요.</p>
<h4>Q. 그럼 어떤 구성에 어떤 수단을 써야 하나요?</h4>
<p dir="auto"><strong>A.</strong> 쓰려는 구성에 따라 갈려요.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>내 구성</th>
<th>쓸 수 있는 수단</th>
</tr>
</thead>
<tbody>
<tr>
<td>토스 POS + 프론트</td>
<td>프론트는 일반 연결 모드. 확장은 <strong>POS 플러그인 SDK</strong> 또는 <strong>Open API</strong></td>
</tr>
<tr>
<td>자체 POS·키오스크 + 프론트 (토스 POS 없음)</td>
<td><strong>프론트 플러그인 SDK</strong></td>
</tr>
<tr>
<td>외부 Windows POS에 결제만 추가</td>
<td><strong>프론트 Windows DLL</strong> (제한적 지원, 사전 확인 필요)</td>
</tr>
<tr>
<td>서버에서 주문·결제 데이터만 조회</td>
<td><strong>Open API</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">어떤 수단이 적합한지는 각 수단의 지원 범위를 연동 가이드에서 확인하신 후 판단해 주세요. 개발자센터에서는 수단별 지원 범위를 안내드리며, 서비스 요건에 맞는 구현 설계는 상담해 드리지 않아요.</p>
<h4>Q. 외부 POS에서 토스 프론트를 결제 단말기로만 쓸 수 있나요?</h4>
<p dir="auto"><strong>A.</strong> 가능해요. 외부 시스템에서 주문 금액을 확정하고, 토스 프론트가 결제 승인과 취소를 수행하는 구조로 연동할 수 있어요. 결제 결과는 Payment API 응답으로 받아 솔루션사 서버에 저장해 주세요.</p>
<hr />
<h2><strong>2. 서비스 이용료와 계약</strong></h2>
<h4>Q. 이용료가 얼마인가요?</h4>
<p dir="auto"><strong>A.</strong> 제품별 이용료는 아래 가이드에서 확인해 주세요.</p>
<p dir="auto"><img src="https://forum.tossplace.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f449.png?v=f235e17a2a1" class="not-responsive emoji emoji-android emoji--point_right" style="height:1.4em;width:auto;vertical-align:middle" title="👉" alt="👉" /> 플러그인 서비스 이용료</p>
<h4>Q. 과금은 언제부터 시작되나요?</h4>
<p dir="auto"><strong>A.</strong> <strong>라이브 가맹점이 연결되는 시점</strong>부터예요. 개발 단계에서는 이용료가 발생하지 않아요. 테스트 가맹점 연결이나 개발 배포만으로는 과금되지 않아요.</p>
<h4>Q. 자체 매장 전용 플러그인도 과금되나요?</h4>
<p dir="auto"><strong>A.</strong> 네. 솔루션사 여부와 관계없이 동일한 정책이 적용돼요. 자사 매장 내부 보고 목적으로 Open API를 연동하는 경우에도 같은 기준(연결 매장 10개 이하 무료)이 적용돼요.</p>
<h4>Q. 결제 수단이나 계좌는 어디서 등록하나요?</h4>
<p dir="auto">지금은 등록하실 것이 없어요. 2026년 12월 31일까지는 이용료가 발생하지 않아서 결제 수단이나 계좌를 등록하는 절차를 운영하지 않고 있어요. 과금 시점이 정해지면 등록 방법을 미리 안내드릴게요.</p>
<hr />
<h2><strong>3. 개발·테스트 중 플러그인이 단말기에 보이지 않을 때</strong></h2>
<h4>Q. 개발 배포했는데 단말기에 반영되지 않아요.</h4>
<p dir="auto"><strong>A.</strong> 순서대로 확인해 주세요.</p>
<ol>
<li>해당 단말기가 <strong>테스트 단말기로 등록</strong>되어 있는지 확인해 주세요. 개발 배포는 테스트 단말기(최대 5대)에만 적용돼요.</li>
<li><strong>등록만으로는 적용되지 않아요.</strong> 등록한 뒤 로그아웃하고 테스트 가맹점 계정으로 <strong>재온보딩</strong>해야 적용돼요.</li>
<li>프론트는 <code>설정 &gt; 7055 &gt; 토스 프론트 재시작</code>, POS는 새로고침 또는 종료 후 재실행해 주세요.</li>
</ol>
<h4>Q. 테스트 단말기 등록 목록이 비어 있어요.</h4>
<p dir="auto"><strong>A.</strong> 등록은 <strong>프론트 단말기가 테스트 가맹점에 정상 로그인된 뒤에</strong> 가능해요. 최초 1회 순서는 아래와 같아요.</p>
<ol>
<li>테스트 가맹점 정보(매장고유번호·사업자번호·휴대폰번호)로 프론트 온보딩</li>
<li>개발자센터 <code>내 애플리케이션 &gt; 단말기 등록</code>에서 해당 단말기 등록</li>
<li>로그아웃 후 같은 정보로 재온보딩</li>
</ol>
<p dir="auto">목록이 계속 비어 있다면 온보딩 시 입력한 값이 개발자센터의 테스트 가맹점 상세에 표시된 값과 일치하는지 확인해 주세요.</p>
<p dir="auto">::: tip 테스트 가맹점 관리의 ON은 다른 설정이에요<br />
테스트 가맹점 관리에서 플러그인 <strong>사용 여부 ON</strong>은 <em>가맹점과 플러그인</em>을 연결하는 설정이에요. 단말기 등록 목록은 <em>단말기와 테스트 가맹점</em>의 로그인 상태를 기준으로 표시돼요. ON만으로 단말기가 목록에 나타나지는 않아요.<br />
:::</p>
<h4>Q. 설정 화면(7055)에 플러그인 메뉴가 보이지 않아요.</h4>
<p dir="auto"><strong>A.</strong> 설정 화면의 플러그인 메뉴는 <strong>해당 단말기에 플러그인이 정상적으로 로드된 경우에만</strong> 나타나요. 메뉴가 없다면 플러그인이 아직 적용되지 않은 상태이고, 그 메뉴에서 플러그인을 최초 설치할 수는 없어요. 로그아웃 후 테스트 가맹점 계정으로 재온보딩해 주세요.</p>
<h4>Q. POS 탭에 플러그인이 안 보여요.</h4>
<p dir="auto"><strong>A.</strong> 토스 POS <strong>1.22.9 버전 이상</strong>에서 탭 진입점이 GNB에서 <strong>LNB로 이동</strong>했어요. LNB에서 먼저 확인해 주세요. LNB에서도 보이지 않을 때 재온보딩이나 매니페스트 파일을 확인해 주세요.</p>
<hr />
<h2><strong>4. 운영 매장에서 플러그인이 보이지 않을 때</strong></h2>
<h4>Q. 대리점에 요청해서 ON 했는데 단말기에 나타나지 않아요.</h4>
<p dir="auto"><strong>A.</strong> 이 순서로 확인해 주세요. 1번이 가장 흔한 원인이에요.</p>
<ol>
<li><strong>해당 단말기가 테스트 단말기로 등록되어 있지 않은지 확인해 주세요.</strong> 테스트 단말기에는 <strong>라이브 버전이 적용되지 않아요.</strong> 등록되어 있다면 개발자센터에서 테스트 단말기 등록을 해제해 주세요.</li>
<li>VAN 대리점이 토스플레이스 파트너스에서 해당 매장 또는 단말기에 플러그인 앱을 활성화(<code>ON</code>)했는지 확인해 주세요.</li>
<li>프론트 앱을 재시작해 주세요. <code>설정 &gt; 7055 &gt; 토스 프론트 재시작</code></li>
<li>로그아웃 후 재온보딩해 주세요.</li>
<li>ACL 등록값을 확인해 주세요. <code>https://</code>, <code>http://</code>, <code>wss://</code>처럼 <strong>프로토콜까지</strong> 실제 호출 URL과 일치해야 해요.</li>
</ol>
<h4>Q. 라이브 배포 후에도 대기화면이 나오지 않아요.</h4>
<p dir="auto"><strong>A.</strong> 위 1번(테스트 단말기 등록 해제)과 3번(프론트 재시작)을 먼저 확인해 주세요. 라이브 검수 통과 후에도 <strong>VAN 대리점의 활성화가 완료되어야</strong> 매장에 노출돼요.</p>
<h4>Q. 라이브로 전환한 매장을 다시 테스트로 되돌릴 수 있나요?</h4>
<p dir="auto"><strong>A.</strong> 가능해요. 테스트와 라이브는 양방향으로 전환할 수 있고 재온보딩으로 처리돼요.</p>
<ol>
<li>VAN 대리점이 토스플레이스 파트너스에서 라이브 앱을 OFF (안정성을 위해 권장)</li>
<li>단말기 초기화 또는 로그아웃</li>
<li>테스트 매장으로 재온보딩</li>
<li>개발자센터에서 테스트 단말기 등록</li>
</ol>
<hr />
<h2><strong>5. merchantId 확인과 앱 연결</strong></h2>
<h4>Q. 운영 매장의 merchantId는 어디서 확인하나요?</h4>
<p dir="auto"><strong>A.</strong> <strong>앱 설치 웹훅 이벤트(<code>app.installation.created.v1</code>)를 수신해서 확인</strong>하는 것이 공식 방법이에요. 내 앱이 어떤 매장에 설치되었는지는 이 이벤트로 확인할 수 있어요.</p>
<p dir="auto">이벤트 payload에 <strong>매장 ID와 사업자등록번호가 함께</strong> 들어 있어서, 사업자등록번호를 기준으로 내부 시스템과 매핑할 수 있어요. 매장명·주소·영업시간도 같이 전달돼요.</p>
<p dir="auto">json</p>
<pre><code class="language-json">{  "type": "app.installation.created.v1",  "merchantId": 42,  "data": {    "merchant": {      "id": 42,      "name": "플레이스 베이커리",      "businessNumber": "0000000000"    }  }}
</code></pre>
<p dir="auto">웹훅 수신 주소는 개발자센터 <code>내 애플리케이션 &gt; 웹훅</code>에서 등록해 주세요. <strong>앱을 연결하기 전에 미리 등록</strong>해 두시면 연결 시점에 바로 매장 ID를 받을 수 있어요.</p>
<h4>Q. 매장 조회 API로 먼저 찾을 수는 없나요?</h4>
<p dir="auto"><strong>A.</strong> 매장 정보 조회 API는 <code>merchantId</code>를 이미 알고 있어야 호출할 수 있어요. 그리고 <strong>앱이 설치되지 않은 매장은 API를 호출할 수 없어요.</strong> 순서는 앱 연결 → 웹훅으로 매장 ID 확인 → 그 ID로 조회예요.</p>
<hr />
<h2><strong>6. 라이브 검수</strong></h2>
<h4>Q. 검수 전에 무엇을 준비해야 하나요?</h4>
<p dir="auto"><strong>A.</strong> 별도로 정해진 필수 제출 서류 양식은 없어요. 개발자센터에서 <strong>라이브 배포</strong> 트랙에 플러그인 ZIP을 업로드한 뒤 <code>[검수 요청]</code> 버튼을 누르면 접수돼요. 추가로 필요한 자료가 있으면 검수 중에 개별적으로 요청드려요.</p>
<p dir="auto">접수 전에 아래 세 가지는 직접 확인해 주세요.</p>
<ol>
<li>모든 기능이 테스트 환경에서 정상 동작하는지</li>
<li>프론트 플러그인이라면 모든 화면이 <strong>Template API</strong>로 구성되어 있는지</li>
<li>개인정보 처리와 보안 정책을 준수하는지</li>
</ol>
<h4>Q. 통과 기준이 무엇인가요?</h4>
<p dir="auto"><strong>A.</strong> 공통 4개 항목과, 프론트 플러그인에 추가되는 2개 항목을 확인해요.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>항목</th>
<th>확인 내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>기능 검수</td>
<td>모든 기능이 명세대로 동작하는지</td>
</tr>
<tr>
<td>성능 검수</td>
<td>응답 속도와 안정성</td>
</tr>
<tr>
<td>보안 검수</td>
<td>개인정보·보안 문제</td>
</tr>
<tr>
<td>사용성 검수</td>
<td>사용자 경험이 적절한지</td>
</tr>
<tr>
<td><strong>디자인 검수</strong> (프론트 추가)</td>
<td>Template API 사용 여부와 UI/UX 가이드라인 준수</td>
</tr>
<tr>
<td><strong>제품 기능 검수</strong> (프론트 추가)</td>
<td>결제·하드웨어 연동 등 핵심 기능 동작</td>
</tr>
</tbody>
</table>
<p dir="auto">프론트 플러그인에서 가장 자주 걸리는 항목은 <strong>디자인 검수</strong>예요. HTML·CSS를 직접 작성하거나 Template 바깥에 임의 텍스트·레이아웃을 추가하면 통과하지 못해요.</p>
<h4>Q. 검수는 얼마나 걸리나요?</h4>
<p dir="auto"><strong>A.</strong> 두 가지를 함께 보셔야 해요.</p>
<ul>
<li><strong>검수를 진행하는 날</strong>: 매주 월·목요일(근무일 기준)이에요. 접수하신 시점 이후 가장 가까운 검수일에 들어가요.</li>
<li><strong>검수 소요 시간</strong>: 검수가 시작된 뒤 평균 1-2일이에요. 결과는 이메일로 알려드려요.</li>
</ul>
<p dir="auto">접수 요일에 따라 전체 대기 기간이 달라져요. 오픈 일정이 정해져 있다면 <strong>라이브 검수 전에 개발 배포 트랙으로 먼저 검증</strong>해 주세요. 검수 승인 후에 수정하면 재검수로 일정이 밀려요.</p>
<h4>Q. 패키지를 바꾸지 않고 설정값만 바꿔도 다시 검수받아야 하나요?</h4>
<p dir="auto"><strong>A.</strong> 검수는 라이브 배포 트랙에 <strong>패키지를 새로 업로드하고 검수 요청을 누를 때</strong> 진행돼요. 패키지 파일이 바뀌지 않으면 재검수는 발생하지 않아요.</p>
<p dir="auto">문구나 설정값이 어디에 있느냐에 따라 갈려요.</p>
<ul>
<li>솔루션사 서버에서 런타임에 내려오는 값이라면 → 서버만 수정, 재검수 불필요</li>
<li>플러그인 파일 안에 직접 작성되어 있다면 → 파일이 바뀌므로 재업로드 + 재검수 필요</li>
</ul>
<h4>Q. 자사 매장 1곳에서만 쓰는 플러그인도 검수를 받아야 하나요?</h4>
<p dir="auto"><strong>A.</strong> 네, 절차는 같아요. 매장 수나 솔루션사 여부에 따른 예외는 없어요.</p>
<hr />
<h2><strong>7. 새 매장에 배포할 때</strong></h2>
<h4>Q. 라이브 검수를 한 번 통과하면 모든 매장에 적용되나요?</h4>
<p dir="auto"><strong>A.</strong> 아니요. 두 가지를 구분해서 보셔야 해요.</p>
<ul>
<li><strong>검수</strong>는 플러그인 버전 단위예요. 한 번 승인되면 그 버전은 다시 검수받지 않아요.</li>
<li><strong>매장 활성화</strong>는 매장 단위예요. <strong>새 매장마다 활성화가 필요해요.</strong></li>
</ul>
<p dir="auto">프론트 플러그인은 매장마다 <strong>VAN 대리점이 토스플레이스 파트너스에서 플러그인을 활성화</strong>해야 해요. 검수를 통과했다고 해서 자동으로 모든 매장에 노출되지는 않아요.</p>
<h4>Q. 연동 방식마다 다른가요?</h4>
<p dir="auto"><strong>A.</strong> 네, 다릅니다.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>연동 방식</th>
<th>새 매장 설치 방법</th>
<th>VAN 대리점</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>프론트 플러그인</strong></td>
<td>VAN 대리점이 토스플레이스 파트너스에서 매장에 활성화</td>
<td><strong>필요</strong></td>
</tr>
<tr>
<td><strong>POS 플러그인</strong></td>
<td>서비스 코드를 가맹점에 전달 → 가맹점이 토스 POS에서 직접 설치</td>
<td>불필요</td>
</tr>
<tr>
<td><strong>Open API</strong></td>
<td>서비스 코드를 가맹점에 전달 → 가맹점이 직접 연결</td>
<td>불필요</td>
</tr>
</tbody>
</table>
<p dir="auto">단, <strong>프론트 플러그인과 Open API를 함께 쓰는 구성이라면 결국 VAN 대리점을 거쳐야 해요.</strong> 두 가지를 같이 쓰실 계획이라면 새 매장마다 VAN 대리점 활성화가 필요한 것으로 보고 일정을 잡아 주세요.</p>
<h4>Q. 테스트 환경에서도 VAN 대리점이 필요한가요?</h4>
<p dir="auto"><strong>A.</strong> 아니요. 테스트 가맹점은 개발자센터에서 직접 ON/OFF할 수 있어요.</p>
<hr />
<h2><strong>8. 403 · 4010 권한 오류</strong></h2>
<h4>Q. 서버 호출에 403이 반환돼요. 응답이 JSON이 아니고 HTML이에요.</h4>
<p dir="auto"><strong>A.</strong> 응답 본문이 HTML이고 <code>x-toss-event-id</code> 헤더가 없다면, 요청이 <strong>애플리케이션 단계에 도달하지 못한 상태</strong>예요. 인증키 문제라면 JSON 오류 응답이 반환돼요.</p>
<p dir="auto">먼저 <strong><code>User-Agent</code> 헤더를 추가</strong>해서 재시도해 주세요. 기존 인증 헤더(<code>x-access-key</code>, <code>x-secret-key</code>)와 함께, 호출하는 서비스를 식별할 수 있는 값으로 지정해 주세요.</p>
<pre><code>GET /api-public/openapi/v1/merchants/{merchantId}
x-access-key: ...
x-secret-key: ...
User-Agent: my-service/1.0
</code></pre>
<p dir="auto"><code>User-Agent</code>가 없는 요청은 차단될 수 있고, 그 상태로 요청이 반복되면 <strong>해당 출구 IP가 차단 목록에 등록</strong>될 수 있어요. 재시도·헬스체크·배치 등 <strong>모든 호출 경로</strong>에 <code>User-Agent</code>가 들어가는지 확인해 주세요.</p>
<p dir="auto">::: warning 해외 리전에서 호출하는 경우<br />
응답의 <code>CF-Ray</code> 값 끝이 <code>ICN</code>이 아니라면 해외 엣지를 경유한 호출이에요. 재시도 후에도 403이 계속되면 <strong>호출 서버의 공개 출구 IP</strong>와 함께 문의해 주세요. 이 값이 있어야 차단 이력과 대조할 수 있어요. 클라우드 환경에서는 출구 IP가 여러 개일 수 있으니 전체를 알려주세요.<br />
:::</p>
<h4>Q. 403 또는 4010 오류가 계속돼요.</h4>
<p dir="auto"><strong>A.</strong> 아래 두 가지를 먼저 확인해 주세요.</p>
<ol>
<li>요청 헤더의 <code>x-access-key</code>, <code>x-secret-key</code> 값</li>
<li><strong>대상 매장에 앱이 설치되어 있는지</strong> — 앱을 설치하지 않은 매장에는 API를 호출할 수 없어요</li>
</ol>
<p dir="auto">계속 오류가 발생하면 아래 정보와 함께 문의해 주세요.</p>
<ul>
<li>응답 본문의 <code>errorCode</code>와 <code>reason</code></li>
<li>응답 헤더의 <code>x-toss-event-id</code></li>
<li>호출 시각(KST, 초 단위)과 도메인을 포함한 전체 호출 URL</li>
<li>호출 서버의 공개 출구 IP</li>
</ul>
<h4>Q. 테스트 환경에서는 되는데 운영에서만 실패해요.</h4>
<p dir="auto"><strong>A.</strong> 두 환경의 차이를 확인해 주세요.</p>
<ul>
<li>운영 매장에 앱이 설치되어 있는지 (테스트 가맹점 설치와 별개예요)</li>
<li>호출 서버가 바뀌면서 출구 IP가 달라졌는지</li>
<li>운영 호출 경로에 <code>User-Agent</code>가 빠져 있지 않은지</li>
</ul>
]]></description><link>https://forum.tossplace.com/topic/46/공지-자주-묻는-질문</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 16:28:00 GMT</lastBuildDate><atom:link href="https://forum.tossplace.com/topic/46.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2026 03:37:43 GMT</pubDate><ttl>60</ttl></channel></rss>