콘텐츠로 건너뛰기
  • 5 게시물
    9k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 후불형 매장의 현황 탭 설정과 Open API 주문의 결제 처리 범위를 안내 드립니다. 1. 현황 탭 활성화 말씀하신 순서가 맞습니다. 메뉴(☰) > 설정 > 현황 설정에서 ‘현황 기능 사용’을 켠 뒤, 현황 > 주문표시에서 해당 Open API 앱을 선택해 주세요. 2. 미결제 주문의 결제 처리 후불형 매장에서는 Open API로 생성한 OPENED 주문을 현황 화면에서 결제하는 경로를 제공하지 않습니다. 현황 기능을 켜더라도 해당 주문이 후불 테이블 주문에 자동으로 연결되거나 결제 버튼이 제공되는 것은 아닙니다. 테이블 기반 후불 주문과 POS 결제를 연계하려면 POS 플러그인 방식을 검토해 주세요. 앞서 안내한 현황 탭 설정은 주문을 표시하기 위한 설정이며, 후불 주문의 결제 연동과는 별개입니다. 3. 설정 전에 생성한 주문 현황 기능을 켜기 전에 생성한 당일 주문도 현재 주문 표시 조건에 맞으면 조회 대상입니다. 주문을 다시 생성할 필요는 없습니다. 해당 앱의 주문 표시 선택 여부와 당일 주문인지 먼저 확인해 주세요. 주문 생성·표시 가이드와 앞서 안내한 앱 선택·업종 확인 내용을 함께 참고해 주세요.
  • 2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 테스트로 만든 앱을 정리하기 어려우신 점과 삭제 기능에 대한 개선 요청을 확인했습니다. 현재 개발자센터에서는 생성한 애플리케이션을 직접 삭제하는 기능을 제공하지 않습니다. 앱 이름이나 설명을 정리하려면 ‘내 애플리케이션 > 해당 앱 > 정보 수정’에서 변경하실 수 있습니다. 같은 문의에 안내한 애플리케이션 삭제 관련 기존 답변도 함께 참고해 주세요. 기능 추가 여부나 제공 시점은 확정해 안내 드리기 어려운 점 양해 부탁 드립니다.
  • 2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 배달 주문 구분과 테스트 주문 생성 방법을 안내 드립니다. 1. 배달앱 구분값 주문 조회 응답의 필드명은 source이며, sources는 주문 목록을 조회할 때 사용하는 채널 필터입니다. POS·TERMINAL_POS·PARTNER_APP 외에 배달 연동 경로별 값도 사용됩니다. 현재 배달 플러그인 연동에서 사용하는 값은 다음과 같습니다. 배달의민족: PLUGIN_BAEMIN 또는 PLUGIN_BAEMINSCRAPING 쿠팡이츠: PLUGIN_COUPANGEATS 요기요: PLUGIN_YOGIYO 기존 연동 경로의 주문에는 BAEMIN 계열, COUPANG_EATS, YOGIYO 계열 등 다른 값이 남아 있을 수 있습니다. 처음에는 sources 필터 없이 조회해 해당 매장의 실제 source 값을 확인한 뒤 구분해 주세요. POS에서 직접 만든 시험 주문은 배달앱 주문으로 분류되지 않습니다. 주문 조회 가이드 2. 결제 불가 테스트 매장에서 시험 주문 만들기 주문 조회용 내역은 토스 POS에서 현금 결제·현금영수증 미발급으로 생성해 확인하실 수 있습니다. 이 방식은 VAN 카드 승인이나 현금영수증 발급 없이 POS에 내역을 기록하는 방식입니다. 카드 승인·현금영수증 발급 테스트와는 구분해 주세요. 토스플레이스 홈페이지의 ‘포스 다운로드’에서 Windows PC에 설치한 뒤, 개발자센터에 표시된 테스트 매장 로그인 정보로 접속해 주세요. 상품을 담고 현금 결제 시 현금영수증을 발급하지 않는 방식으로 진행하면 됩니다. 자진발급 설정이 켜져 있지 않은지도 확인해 주세요. Open API 앱은 같은 테스트 매장에 사용 설정되어 있어야 합니다. 로그인 방법은 테스트 가맹점 연결 가이드를 참고해 주세요.
  • 2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 탭 화면과 웹 워커 구성, 결제 후 화면 복귀 방법을 안내 드립니다. 1. 패키지와 앱 등록 현재 개발자센터에서는 실행 환경을 탭 화면 또는 웹 워커로 구분해 등록합니다. 탭 화면 앱과 웹 워커 앱을 각각 등록·배포하고, 같은 매장에 활성화하는 방식으로 구성해 주세요. ‘함께 사용하는 구조’는 두 역할을 연계한다는 의미이며, 파일을 한 ZIP에 넣는 것만으로 두 실행 환경이 함께 활성화되는 것은 아닙니다. 탭 화면 ZIP은 최상위에 iframe-manifest.json과 화면 파일을, 웹 워커 ZIP은 최상위에 main.js를 포함합니다. 각 탭 화면 가이드와 웹 워커 가이드의 샘플로 각각 빌드해 주세요. 2. 앱 간 데이터 전달 서로 다른 앱의 Storage는 공유되지 않습니다. 실행 중인 앱 간에는 Plugin Unicast API를 사용할 수 있으며, send(message, to)의 to에는 수신할 앱의 앱 ID(packageName)를 넣습니다. 탭이 닫힌 동안의 메시지를 나중에 자동으로 받는 구조로 의존하지 말고, 결제 결과는 서버에 저장해 탭을 다시 열 때 조회하도록 구성해 주세요. 3. 이동할 탭 지정 navigation.navigate('plugin-tab', packageName)의 packageName도 이동할 탭 앱의 앱 ID입니다. 해당 탭 앱에서 조회한 plugin.getPluginInfo().name과 같은 값이며, 화면에 표시되는 탭 제목이나 숫자 App ID가 아닙니다. 워커에서 조회한 name은 워커 자신의 ID이므로 그대로 넣지 않도록 주의해 주세요. 4. 결제 후 복귀 웹 워커에서 payment.on('paid')를 수신한 뒤, 해당 서비스의 주문인지와 전체 결제 완료 여부를 확인하고 탭 앱으로 이동해 주세요. 분할결제는 결제 건마다 이벤트가 발생하므로, 주문의 paymentPrice.paymentUnpaidValue가 0인지 확인하는 과정이 필요합니다. 같은 흐름을 안내한 기존 결제 이벤트 답변과 화면 자동 이동 공지를 함께 참고해 주세요. 개발 배포가 적용되지 않은 원인은 패키지에 main.js가 있다는 사실만으로 확정하기 어렵습니다. 해당 앱 ID, 개발 배포 버전 번호, POS 시리얼번호를 개발자센터 메일로 전달 부탁 드립니다. 발생 시간은 글에 남겨주신 10월 24일 11:50~12:10 KST 기준으로 확인하겠습니다.
  • [프론트 플러그인] FacePass API 관련 문의

    자유 문의 프론트 플러그인
    2
    2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    페이스패스는 별도 이용 신청이 필요합니다. 페이스패스 파트너스 : https://facepass-partners.toss.im/ 위 사이트를 참고해주세요. 감사합니다.
  • api 권한문제

    자유 문의 pos 플러그인
    2
    2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 주문 생성 API 권한 검토를 위해 필요한 신청 정보를 안내 드립니다. 주문 생성 API는 별도 승인을 받은 앱에서 사용할 수 있습니다. 아래 항목을 작성해 개발자센터 메일로 전달 부탁 드립니다. 개발자센터 계정 이메일 앱 정보: 앱 이름 및 앱 ID 이용 매장 정보: 설치·이용 매장명 및 merchantId 상세 사용 목적: 매장에 제공하려는 서비스와 주문 생성 API가 필요한 이유를 작성해 주세요. 태블릿에서 주문을 접수한 뒤 토스 POS에 주문을 생성하고 매장에서 처리하기까지의 전체 흐름, 결제를 어디에서 언제 진행하는지도 함께 설명 부탁 드립니다. 매장 인지 여부: 매장 운영자에게 위 사용 목적과 외부 서비스에서 토스 POS에 주문을 생성하는 기능을 안내했는지, 매장 측이 해당 기능 사용을 인지하고 있는지 명시해 주세요. 4030 오류 확인을 위해 오류 발생 날짜·시각(한국 시간) 및 개발·운영 환경도 함께 전달 부탁 드립니다. API Key나 토큰은 보내지 않으셔도 됩니다. 전달해 주신 내용을 검토한 뒤 권한 부여 여부를 안내 드리겠습니다. 신청 항목은 주문 생성 API 가이드를 참고 부탁 드립니다.
  • 2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 문의 주신 알림음 재생 중 다른 앱의 소리를 조절하는 기능에 대해, 현재 지원 범위를 안내 드립니다. 1. Sound API 지원 범위 현재 Sound API에는 다른 앱의 소리를 자동으로 줄이거나 일시 정지한 뒤 복원하는 옵션이 없습니다. volume은 플러그인에서 재생하는 알림음 자체의 음량을 조절하는 값이므로, 100으로 설정해도 음악 앱의 소리는 줄어들지 않습니다. Sound API 가이드를 참고 부탁 드립니다. 2. 토스 POS 자체 알림음 현재 토스 POS 알림음 설정에서도 다른 앱의 음량을 자동 조절하는 설정은 제공하지 않습니다. 알림음 자체의 음량·반복 횟수 등을 설정하는 방식입니다. 3. 현재 가능한 대안 플러그인에서 애플뮤직·유튜브뮤직의 재생 상태나 음량을 제어하는 API는 제공하지 않습니다. 탭 화면의 audioSession 설정 역시 Sound API에서 제공하는 옵션이 아닙니다. 매장에서는 음악 재생 기기와 POS를 분리하거나, 음악 음량을 낮추고 알림음을 반복 재생하는 방식을 고려해 주세요. 다만 이는 알림 중에만 음악을 자동으로 줄이는 기능과는 다른 운영상 대안입니다. 요청해 주신 기능 추가 사항은 내부 검토 후 안내 드릴 예정입니다.
  • requestPayment() 오류 처리와 화면 제어

    자유 문의 프론트 플러그인
    2
    2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 문의 주신 결제 오류 발생 후 화면 동작과 재결제 처리 방식에 대해 안내 드립니다. 예외 반환 후 오류 화면이 유지되는 이유 결제 실패 결과를 플러그인에 전달하는 처리와 프론트 결제창을 닫는 처리는 별개입니다. 따라서 catch가 실행된 뒤에도 오류 안내 화면이 잠시 표시될 수 있습니다. 현재 구현상 해당 화면은 약 3초 뒤 자동으로 닫힙니다. ‘다른 수단으로 결제’ 버튼의 동작 해당 버튼은 현재 결제창을 닫고 플러그인 화면으로 돌아가는 기능입니다. 버튼을 누르는 것만으로 결제수단 선택이나 재결제가 자동으로 진행되지는 않습니다. 이미 실패로 종료된 requestPayment에는 이후 결제 결과가 추가로 전달되지 않습니다. 재결제하려면 새로운 paymentKey로 requestPayment를 다시 호출하고, 새 요청의 결과를 처리해 주세요. 결제 요청 가이드 Template API를 통한 화면 전환 catch에서 Template API로 플러그인 화면을 변경할 수 있지만, Template API 호출만으로 프론트의 결제 오류 화면이 닫히지는 않습니다. 변경한 플러그인 화면은 결제창이 닫힌 뒤 표시됩니다. 오류 화면을 즉시 닫아야 한다면, 프론트 앱 2.71 이상에서 canCancelPayment로 종료 가능 여부를 확인한 뒤 cancelPayment를 호출할 수 있습니다. canceled가 true인지 확인하고, 화면 전환은 오류 처리 흐름 한 곳에서만 실행해 중복 처리를 방지해 주세요. 여기서 cancelPayment는 결제창을 닫는 기능이며, 승인된 결제를 취소하는 기능과는 다릅니다. 결제창 닫기 가이드
  • 2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 통합결제창의 할부개월 설정과 선택 화면에 대해 안내 드립니다. installment의 의미 카드 결제에 사용할 초기 할부개월 값이며, 0은 일시불입니다. 결제수단을 미리 선택하는 값은 아니며, 통합결제창에서 카드 결제를 진행할 때 사용됩니다. 프론트에서 할부개월 선택 5만 원 이상 카드 결제 시 프론트의 서명 화면에서 할부개월을 선택할 수 있습니다. ‘할부’ 항목을 누르면 선택 화면이 열리고, 고객이 선택한 값으로 승인이 요청됩니다. 따라서 별도 할부 입력 화면을 개발하거나 표시 옵션을 추가할 필요는 없습니다. installment를 생략하거나 0으로 전달해도, 위 조건에서는 고객이 할부개월을 변경할 수 있습니다. 실제 할부 승인 가능 여부는 카드사·카드 조건에 따라 달라질 수 있습니다. 결제 API 가이드
  • 3 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. SDK 오류의 해석, 취소 결과 확인과 재시도 기준, 추가로 문의하신 테스트 승인 처리에 대해 안내 드립니다. 1. 오류 필드와 UNKNOWN·2666의 의미 TossFrontSDKError의 name은 오류 유형, invokeName은 호출한 기능명, code는 전달된 오류 코드, message는 오류 설명, raw는 원본 오류 데이터입니다. UNKNOWN은 전달된 오류 데이터에 code가 없을 때 SDK가 사용하는 기본값입니다. 전달해 주신 예시도 raw에 message만 있어 UNKNOWN으로 표시됩니다. message 안의 2666을 SDK가 별도 code 필드로 변환하지는 않습니다. API별 파라미터·응답 및 조회 오류는 Payment API 가이드를 참고해 주세요. 2666의 정확한 원인과 발생 단계는 실제 단말기 호출·응답 로그 확인이 필요합니다. 현재 글에는 대상 단말기와 발생 시각이 없어 해당 거래 로그를 확인하지 못했습니다. 앱 ID, 프론트 시리얼번호·앱 버전, 사용 VAN, 발생 일시(한국 시간)를 개발자센터 메일로 전달 부탁 드립니다. 카드번호·현금영수증 식별번호 등 개인정보는 보내지 않으셔도 됩니다. 2. 예외 발생 후 실제 거래 상태 확인 SDK 예외나 UNKNOWN만으로 실제 승인·취소 여부를 일괄 판단하지 마세요. getPayment와 getPaymentCancel은 VAN에 거래 상태를 다시 조회하는 API가 아니라, 요청한 단말기에 저장된 성공 응답을 복구하는 API입니다. getPaymentCancel의 PAYMENT_NOT_FOUND는 해당 paymentKey의 취소 성공 응답이 단말 캐시에 없다는 뜻이지, 실제 거래가 취소되지 않았다는 확정 결과는 아닙니다. 캐시는 성공 결과만 저장하며, 보관기간 만료나 저장 가능한 건수 제한 등의 영향도 받습니다. 먼저 취소를 요청한 동일 단말기에서 원래 paymentKey로 조회해 주세요. 결과를 복구하지 못하면 자동 재시도를 멈추고, 원승인번호·승인 시각·금액을 기준으로 VAN 대리점을 통해 실제 승인·취소 상태를 확인해 주세요. 승인 캐시와 취소 캐시는 별도이므로, getPayment에 승인 결과가 남아 있다는 이유만으로 미취소로 판단하지 않아야 합니다. 3. 동일 paymentKey로 재요청하는 경우 같은 paymentKey를 전달하는 것만으로 중복 거래가 자동 차단되지는 않습니다. 결과가 미확정인 상태에서는 자동으로 승인·취소를 반복하지 마세요. 취소 재요청은 원거래의 실제 상태를 먼저 확인하고 원승인 정보를 그대로 사용해야 합니다. 4. 테스트 현금영수증 승인 처리 실제 현금영수증을 발급한 테스트 건은 테스트 후 취소 처리해 주세요. 단순 화면·결제 흐름 확인이 목적이라면 현금 결제 > 현금영수증 미발급 방식으로 테스트하시는 것을 권장합니다. 자진발급 설정에 따라 실제 발급될 수 있으므로 응답의 cash.isCashReceipt도 확인해 주세요. 미취소 내역의 구체적인 처리 영향은 등록된 VAN·가맹점 조건에 따라 확인이 필요하므로, 해당 VAN 대리점에 확인 부탁 드립니다. 결제 테스트 가이드도 함께 참고해 주세요.
  • 2 게시물
    11k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 숫자 입력 화면의 초기값과 입력 방식에 대해 안내 드립니다. 1. 초기값과 초기화 파라미터 현재 SDK에서 숫자 입력 화면의 초기값은 빈 문자열이며, 0을 기본값으로 넣도록 구성되어 있지 않습니다. 전달해 주신 코드에 value 또는 defaultValue가 없어서 0이 표시되는 것은 아닙니다. 현재 공개된 파라미터에는 초기값을 지정하거나 입력값을 강제로 초기화하는 항목이 없습니다. value, defaultValue를 추가하는 방식은 지원하지 않습니다. 2. text 타입으로 변경하는 경우 최상위 type을 text로 변경하면 일반 문자 입력용 키보드를 사용하므로, 현재의 숫자 전용 키패드를 유지하는 방식은 아닙니다. 또한 이 변경만으로 문의하신 현상이 해결된다고 안내하기는 어렵습니다. 3. 현상 확인에 필요한 정보 현재 제공된 정보만으로는 간헐적인 0 표시의 원인이나 템플릿 수정 필요 여부를 확정할 수 없습니다. 실제 단말기 로그와 적용 버전을 확인할 수 있도록 앱 ID, 적용한 플러그인 버전, 프론트 시리얼번호·앱 버전, 최근 발생 일시(한국 시간)를 개발자센터 메일로 전달 부탁 드립니다. 공개 입력 항목은 입력화면 템플릿 가이드를 참고해 주세요.
  • 내 어플리케이션 삭제 방법

    자유 문의 개발자센터
    2
    2 게시물
    12k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 애플리케이션 삭제와 재등록 방법에 대해 안내 드립니다. 현재 개발자센터에서는 생성한 애플리케이션을 직접 삭제하는 기능을 제공하지 않습니다. 앱 이름이나 설명을 잘못 입력하신 경우에는 내 애플리케이션 > 해당 앱 > 정보 수정에서 변경하실 수 있습니다. 별도의 앱이 필요하다면 기존 앱과 다른 앱 ID로 새로 등록해 주세요. 기존 앱의 삭제나 동일한 앱 ID의 재사용이 필요한 경우에는 개발자센터 계정 이메일, 대상 앱 ID, 변경하려는 내용을 개발자센터 메일로 전달 부탁 드립니다. 해당 요청의 처리 가능 여부를 확인하겠습니다.
  • 1 게시물
    11k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 탭 화면 플러그인의 진입 위치가 변경되면서, 주문·현황 화면에서 결제한 뒤 플러그인을 다시 열기 번거롭다는 의견이 있었어요. 이런 흐름을 개선할 수 있도록 결제 이벤트와 Navigation API를 활용한 화면 이동 방식을 안내해요. 어떻게 활용하나요? 플러그인에서 예약·수령할 주문을 확인하고 POS에서 결제한 뒤, 지정한 플러그인 화면으로 자동 이동하도록 구성할 수 있어요. 플러그인에서 주문 확인 → POS에서 결제 → 플러그인 화면으로 이동 적용하려면 무엇이 필요한가요? 웹 워커 플러그인에서 결제 이벤트를 받고, Navigation API로 이동할 플러그인을 지정해 주세요. 탭 화면 플러그인만 사용 중이라면, 결제 화면에서도 이벤트를 받을 수 있도록 별도의 웹 워커 플러그인을 개발·등록하고 매장에 활성화해야 해요. 모든 결제에서 화면이 바뀌지 않도록, 해당 서비스의 주문인지와 전체 결제가 끝났는지 확인한 뒤 이동하도록 구현해 주세요. 분할결제는 결제할 때마다 이벤트가 발생해요. 확인해 주세요 이 기능은 플러그인 탭을 기존 상단 GNB에 다시 고정하는 기능이 아니에요. 결제 후 필요한 화면으로 이동하도록 솔루션사에서 직접 구현하는 방식이며, POS 설정만으로 자동 적용되지는 않아요. 자세한 구현 방법은 Navigation API 가이드와 결제 이벤트 가이드를 확인해 주세요.
  • 2 게시물
    12k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 현재 외부결제 내역에는 플러그인 앱 이름이 등록되며, 앱 이름과 별도로 결제수단명을 지정하는 기능은 제공하지 않습니다. 외부결제 등록: Payment API의 payment.add로 EXTERNAL 결제를 등록할 때는 앱 이름을 사용합니다. 별도의 결제수단명을 입력하는 필드는 제공되지 않습니다. 결제 화면의 표시명: PaymentMethod API의 paymentMethod.add에서는 data.paymentName으로 POS 결제 화면에 표시할 결제수단 이름을 지정할 수 있습니다. 다만, 이는 선택 화면의 표시명이며 결제내역에 등록되는 앱 이름을 변경하는 기능은 아닙니다. 위 동작은 WebSocket 사용 여부와 관계없이 동일합니다. 자세한 내용은 Payment API 가이드와 PaymentMethod API 가이드를 참고해 주세요.
  • 3 게시물
    13k 조회수
    C
    @토스플레이스-개발자센터 빠르게 답변해주셔서 감사합니다. 개발자센터 계정과 사업자번호 및 단말기 정보 메일은 금일 오전에 전달하였습니다.
  • [공지] 자주 묻는 질문

    고정됨 자유 문의 pos 플러그인 프론트 플러그인 open-api
    1
    1 게시물
    13k 조회수
    토스플레이스-개발자센터토
    연동가이드 FAQ를 먼저 확인해 주세요 문의 전에 연동가이드 FAQ에서 관련 내용을 먼저 확인해 주세요. 개발·테스트·검수·배포와 제품별 주요 질문을 모아 두었어요. FAQ에서 답을 찾지 못했다면 포럼에 문의를 남겨 주세요. 1. 연동 수단 고르기 Q. 프론트 플러그인과 토스 POS를 함께 쓸 수 있나요? A. 동시 연결은 지원하지 않아요. 프론트 플러그인 모드는 외부 POS 또는 솔루션사 시스템과 토스 프론트를 연동하기 위한 모드예요. 토스 POS와 프론트를 함께 사용하신다면 프론트는 일반 연결 모드로 동작하고, 플러그인을 개발해 프론트 화면을 직접 구성하는 방식은 사용할 수 없어요. 이 구성에서 확장이 필요하면 POS 플러그인 SDK 또는 Open API를 검토해 주세요. Q. 그럼 어떤 구성에 어떤 수단을 써야 하나요? A. 쓰려는 구성에 따라 갈려요. 내 구성 쓸 수 있는 수단 토스 POS + 프론트 프론트는 일반 연결 모드. 확장은 POS 플러그인 SDK 또는 Open API 자체 POS·키오스크 + 프론트 (토스 POS 없음) 프론트 플러그인 SDK 외부 Windows POS에 결제만 추가 프론트 Windows DLL (제한적 지원, 사전 확인 필요) 서버에서 주문·결제 데이터만 조회 Open API 어떤 수단이 적합한지는 각 수단의 지원 범위를 연동 가이드에서 확인하신 후 판단해 주세요. 개발자센터에서는 수단별 지원 범위를 안내드리며, 서비스 요건에 맞는 구현 설계는 상담해 드리지 않아요. Q. 외부 POS에서 토스 프론트를 결제 단말기로만 쓸 수 있나요? A. 가능해요. 외부 시스템에서 주문 금액을 확정하고, 토스 프론트가 결제 승인과 취소를 수행하는 구조로 연동할 수 있어요. 결제 결과는 Payment API 응답으로 받아 솔루션사 서버에 저장해 주세요. 2. 서비스 이용료와 계약 Q. 이용료가 얼마인가요? A. 제품별 이용료는 아래 가이드에서 확인해 주세요. 플러그인 서비스 이용료 Q. 과금은 언제부터 시작되나요? A. 라이브 가맹점이 연결되는 시점부터예요. 개발 단계에서는 이용료가 발생하지 않아요. 테스트 가맹점 연결이나 개발 배포만으로는 과금되지 않아요. Q. 자체 매장 전용 플러그인도 과금되나요? A. 네. 솔루션사 여부와 관계없이 동일한 정책이 적용돼요. 자사 매장 내부 보고 목적으로 Open API를 연동하는 경우에도 같은 기준(연결 매장 10개 이하 무료)이 적용돼요. Q. 결제 수단이나 계좌는 어디서 등록하나요? 지금은 등록하실 것이 없어요. 2026년 12월 31일까지는 이용료가 발생하지 않아서 결제 수단이나 계좌를 등록하는 절차를 운영하지 않고 있어요. 과금 시점이 정해지면 등록 방법을 미리 안내드릴게요. 3. 개발·테스트 중 플러그인이 단말기에 보이지 않을 때 Q. 개발 배포했는데 단말기에 반영되지 않아요. A. 순서대로 확인해 주세요. 해당 단말기가 테스트 단말기로 등록되어 있는지 확인해 주세요. 개발 배포는 테스트 단말기(최대 5대)에만 적용돼요. 등록만으로는 적용되지 않아요. 등록한 뒤 로그아웃하고 테스트 가맹점 계정으로 재온보딩해야 적용돼요. 프론트는 설정 > 7055 > 토스 프론트 재시작, POS는 새로고침 또는 종료 후 재실행해 주세요. Q. 테스트 단말기 등록 목록이 비어 있어요. A. 등록은 프론트 단말기가 테스트 가맹점에 정상 로그인된 뒤에 가능해요. 최초 1회 순서는 아래와 같아요. 테스트 가맹점 정보(매장고유번호·사업자번호·휴대폰번호)로 프론트 온보딩 개발자센터 내 애플리케이션 > 단말기 등록에서 해당 단말기 등록 로그아웃 후 같은 정보로 재온보딩 목록이 계속 비어 있다면 온보딩 시 입력한 값이 개발자센터의 테스트 가맹점 상세에 표시된 값과 일치하는지 확인해 주세요. ::: tip 테스트 가맹점 관리의 ON은 다른 설정이에요 테스트 가맹점 관리에서 플러그인 사용 여부 ON은 가맹점과 플러그인을 연결하는 설정이에요. 단말기 등록 목록은 단말기와 테스트 가맹점의 로그인 상태를 기준으로 표시돼요. ON만으로 단말기가 목록에 나타나지는 않아요. ::: Q. 설정 화면(7055)에 플러그인 메뉴가 보이지 않아요. A. 설정 화면의 플러그인 메뉴는 해당 단말기에 플러그인이 정상적으로 로드된 경우에만 나타나요. 메뉴가 없다면 플러그인이 아직 적용되지 않은 상태이고, 그 메뉴에서 플러그인을 최초 설치할 수는 없어요. 로그아웃 후 테스트 가맹점 계정으로 재온보딩해 주세요. Q. POS 탭에 플러그인이 안 보여요. A. 토스 POS 1.22.9 버전 이상에서 탭 진입점이 GNB에서 LNB로 이동했어요. LNB에서 먼저 확인해 주세요. LNB에서도 보이지 않을 때 재온보딩이나 매니페스트 파일을 확인해 주세요. 4. 운영 매장에서 플러그인이 보이지 않을 때 Q. 대리점에 요청해서 ON 했는데 단말기에 나타나지 않아요. A. 이 순서로 확인해 주세요. 1번이 가장 흔한 원인이에요. 해당 단말기가 테스트 단말기로 등록되어 있지 않은지 확인해 주세요. 테스트 단말기에는 라이브 버전이 적용되지 않아요. 등록되어 있다면 개발자센터에서 테스트 단말기 등록을 해제해 주세요. VAN 대리점이 토스플레이스 파트너스에서 해당 매장 또는 단말기에 플러그인 앱을 활성화(ON)했는지 확인해 주세요. 프론트 앱을 재시작해 주세요. 설정 > 7055 > 토스 프론트 재시작 로그아웃 후 재온보딩해 주세요. ACL 등록값을 확인해 주세요. https://, http://, wss://처럼 프로토콜까지 실제 호출 URL과 일치해야 해요. Q. 라이브 배포 후에도 대기화면이 나오지 않아요. A. 위 1번(테스트 단말기 등록 해제)과 3번(프론트 재시작)을 먼저 확인해 주세요. 라이브 검수 통과 후에도 VAN 대리점의 활성화가 완료되어야 매장에 노출돼요. Q. 라이브로 전환한 매장을 다시 테스트로 되돌릴 수 있나요? A. 가능해요. 테스트와 라이브는 양방향으로 전환할 수 있고 재온보딩으로 처리돼요. VAN 대리점이 토스플레이스 파트너스에서 라이브 앱을 OFF (안정성을 위해 권장) 단말기 초기화 또는 로그아웃 테스트 매장으로 재온보딩 개발자센터에서 테스트 단말기 등록 5. merchantId 확인과 앱 연결 Q. 운영 매장의 merchantId는 어디서 확인하나요? A. 앱 설치 웹훅 이벤트(app.installation.created.v1)를 수신해서 확인하는 것이 공식 방법이에요. 내 앱이 어떤 매장에 설치되었는지는 이 이벤트로 확인할 수 있어요. 이벤트 payload에 매장 ID와 사업자등록번호가 함께 들어 있어서, 사업자등록번호를 기준으로 내부 시스템과 매핑할 수 있어요. 매장명·주소·영업시간도 같이 전달돼요. json { "type": "app.installation.created.v1", "merchantId": 42, "data": { "merchant": { "id": 42, "name": "플레이스 베이커리", "businessNumber": "0000000000" } }} 웹훅 수신 주소는 개발자센터 내 애플리케이션 > 웹훅에서 등록해 주세요. 앱을 연결하기 전에 미리 등록해 두시면 연결 시점에 바로 매장 ID를 받을 수 있어요. Q. 매장 조회 API로 먼저 찾을 수는 없나요? A. 매장 정보 조회 API는 merchantId를 이미 알고 있어야 호출할 수 있어요. 그리고 앱이 설치되지 않은 매장은 API를 호출할 수 없어요. 순서는 앱 연결 → 웹훅으로 매장 ID 확인 → 그 ID로 조회예요. 6. 라이브 검수 Q. 검수 전에 무엇을 준비해야 하나요? A. 별도로 정해진 필수 제출 서류 양식은 없어요. 개발자센터에서 라이브 배포 트랙에 플러그인 ZIP을 업로드한 뒤 [검수 요청] 버튼을 누르면 접수돼요. 추가로 필요한 자료가 있으면 검수 중에 개별적으로 요청드려요. 접수 전에 아래 세 가지는 직접 확인해 주세요. 모든 기능이 테스트 환경에서 정상 동작하는지 프론트 플러그인이라면 모든 화면이 Template API로 구성되어 있는지 개인정보 처리와 보안 정책을 준수하는지 Q. 통과 기준이 무엇인가요? A. 공통 4개 항목과, 프론트 플러그인에 추가되는 2개 항목을 확인해요. 항목 확인 내용 기능 검수 모든 기능이 명세대로 동작하는지 성능 검수 응답 속도와 안정성 보안 검수 개인정보·보안 문제 사용성 검수 사용자 경험이 적절한지 디자인 검수 (프론트 추가) Template API 사용 여부와 UI/UX 가이드라인 준수 제품 기능 검수 (프론트 추가) 결제·하드웨어 연동 등 핵심 기능 동작 프론트 플러그인에서 가장 자주 걸리는 항목은 디자인 검수예요. HTML·CSS를 직접 작성하거나 Template 바깥에 임의 텍스트·레이아웃을 추가하면 통과하지 못해요. Q. 검수는 얼마나 걸리나요? A. 두 가지를 함께 보셔야 해요. 검수를 진행하는 날: 매주 월·목요일(근무일 기준)이에요. 접수하신 시점 이후 가장 가까운 검수일에 들어가요. 검수 소요 시간: 검수가 시작된 뒤 평균 1-2일이에요. 결과는 이메일로 알려드려요. 접수 요일에 따라 전체 대기 기간이 달라져요. 오픈 일정이 정해져 있다면 라이브 검수 전에 개발 배포 트랙으로 먼저 검증해 주세요. 검수 승인 후에 수정하면 재검수로 일정이 밀려요. Q. 패키지를 바꾸지 않고 설정값만 바꿔도 다시 검수받아야 하나요? A. 검수는 라이브 배포 트랙에 패키지를 새로 업로드하고 검수 요청을 누를 때 진행돼요. 패키지 파일이 바뀌지 않으면 재검수는 발생하지 않아요. 문구나 설정값이 어디에 있느냐에 따라 갈려요. 솔루션사 서버에서 런타임에 내려오는 값이라면 → 서버만 수정, 재검수 불필요 플러그인 파일 안에 직접 작성되어 있다면 → 파일이 바뀌므로 재업로드 + 재검수 필요 Q. 자사 매장 1곳에서만 쓰는 플러그인도 검수를 받아야 하나요? A. 네, 절차는 같아요. 매장 수나 솔루션사 여부에 따른 예외는 없어요. 7. 새 매장에 배포할 때 Q. 라이브 검수를 한 번 통과하면 모든 매장에 적용되나요? A. 아니요. 두 가지를 구분해서 보셔야 해요. 검수는 플러그인 버전 단위예요. 한 번 승인되면 그 버전은 다시 검수받지 않아요. 매장 활성화는 매장 단위예요. 새 매장마다 활성화가 필요해요. 프론트 플러그인은 매장마다 VAN 대리점이 토스플레이스 파트너스에서 플러그인을 활성화해야 해요. 검수를 통과했다고 해서 자동으로 모든 매장에 노출되지는 않아요. Q. 연동 방식마다 다른가요? A. 네, 다릅니다. 연동 방식 새 매장 설치 방법 VAN 대리점 프론트 플러그인 VAN 대리점이 토스플레이스 파트너스에서 매장에 활성화 필요 POS 플러그인 서비스 코드를 가맹점에 전달 → 가맹점이 토스 POS에서 직접 설치 불필요 Open API 서비스 코드를 가맹점에 전달 → 가맹점이 직접 연결 불필요 단, 프론트 플러그인과 Open API를 함께 쓰는 구성이라면 결국 VAN 대리점을 거쳐야 해요. 두 가지를 같이 쓰실 계획이라면 새 매장마다 VAN 대리점 활성화가 필요한 것으로 보고 일정을 잡아 주세요. Q. 테스트 환경에서도 VAN 대리점이 필요한가요? A. 아니요. 테스트 가맹점은 개발자센터에서 직접 ON/OFF할 수 있어요. 8. 403 · 4010 권한 오류 Q. 서버 호출에 403이 반환돼요. 응답이 JSON이 아니고 HTML이에요. A. 응답 본문이 HTML이고 x-toss-event-id 헤더가 없다면, 요청이 애플리케이션 단계에 도달하지 못한 상태예요. 인증키 문제라면 JSON 오류 응답이 반환돼요. 먼저 User-Agent 헤더를 추가해서 재시도해 주세요. 기존 인증 헤더(x-access-key, x-secret-key)와 함께, 호출하는 서비스를 식별할 수 있는 값으로 지정해 주세요. GET /api-public/openapi/v1/merchants/{merchantId} x-access-key: ... x-secret-key: ... User-Agent: my-service/1.0 User-Agent가 없는 요청은 차단될 수 있고, 그 상태로 요청이 반복되면 해당 출구 IP가 차단 목록에 등록될 수 있어요. 재시도·헬스체크·배치 등 모든 호출 경로에 User-Agent가 들어가는지 확인해 주세요. ::: warning 해외 리전에서 호출하는 경우 응답의 CF-Ray 값 끝이 ICN이 아니라면 해외 엣지를 경유한 호출이에요. 재시도 후에도 403이 계속되면 호출 서버의 공개 출구 IP와 함께 문의해 주세요. 이 값이 있어야 차단 이력과 대조할 수 있어요. 클라우드 환경에서는 출구 IP가 여러 개일 수 있으니 전체를 알려주세요. ::: Q. 403 또는 4010 오류가 계속돼요. A. 아래 두 가지를 먼저 확인해 주세요. 요청 헤더의 x-access-key, x-secret-key 값 대상 매장에 앱이 설치되어 있는지 — 앱을 설치하지 않은 매장에는 API를 호출할 수 없어요 계속 오류가 발생하면 아래 정보와 함께 문의해 주세요. 응답 본문의 errorCode와 reason 응답 헤더의 x-toss-event-id 호출 시각(KST, 초 단위)과 도메인을 포함한 전체 호출 URL 호출 서버의 공개 출구 IP Q. 테스트 환경에서는 되는데 운영에서만 실패해요. A. 두 환경의 차이를 확인해 주세요. 운영 매장에 앱이 설치되어 있는지 (테스트 가맹점 설치와 별개예요) 호출 서버가 바뀌면서 출구 IP가 달라졌는지 운영 호출 경로에 User-Agent가 빠져 있지 않은지
  • 2 게시물
    13k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 문의하신 내용은 Open API에서 제공하는 기능과 외부 단말 연동·가맹·정산 계약에 따라 확인해야 하는 사항으로 나눠 안내 드립니다. 1. 외부 단말 연동과 데이터 수집 · 문의 2번 프론트 플러그인 SDK와 DLL은 토스 프론트 연동용이며, 듀얼아이 등 외부 리더기의 직접 연동 규격과는 다릅니다. 외부 리더기는 단말 모델, 부스 운영체제, 결제 모듈과 VAN·PG에 맞는 연동 규격을 확인해야 합니다. 2. 주문·단말 식별 · 문의 3번 Open API 결제 조회와 결제 웹훅에서는 merchantId, orderId, 결제 ID를 확인할 수 있지만, 결제 단말의 TID·시리얼 번호는 제공하지 않습니다. 여러 단말의 거래를 구분하려면 자체 연동 단계에서 부스·단말·주문번호와 결제 결과의 연결 정보를 관리해야 합니다. 외부 단말에 전달한 자체 주문번호를 Open API로 구성 가능한지는 연동가이드 스펙 혹은 직접 테스트 해주시어 검토 부탁 드리겠습니다. Open API 결제 가이드 3. 결제 취소와 응답 유실 · 문의 4번 프론트 플러그인은 전액 취소만 지원하며, 무카드 취소는 NICE의 카드 결제에서 원거래의 vanTransactionKey를 사용하는 방식입니다. 이 조건을 외부 리더기에 동일하게 적용할 수는 없습니다. Open API에서는 취소된 결제의 기존 결제 ID를 유지하고 상태와 취소 시각을 갱신합니다. 다만 Open API의 결제 취소 기록 기능은 실제 카드 승인을 취소하는 기능이 아닙니다. 프론트 SDK는 같은 paymentKey로 getPayment·getPaymentCancel을 호출해 단말에 저장된 승인·취소 성공 결과를 다시 확인할 수 있습니다. 이는 실시간 VAN 거래 조회가 아니므로, 조회 결과가 없다는 이유만으로 거래 실패를 단정하면 안 됩니다. 외부 리더기의 응답 유실 확인 방법은 해당 결제 모듈의 규격을 따라야 합니다. 프론트 결제 API 가이드 · 결제 테스트 가이드 4. 승인시각·과거 내역·호출 한도 · 문의 5·7번 approvedAt은 결제 승인시각이며, 매장의 영업 마감일자가 아닙니다. 초·밀리초 단위의 숫자가 아니라 ISO 8601 문자열이며, 끝에 Z가 붙은 값은 UTC 기준입니다. POS의 영업일별 매출 집계 기준은 이 필드와 구분해야 합니다. 앱 설치 이전이라도 토스 서버에 저장된 해당 매장의 주문·결제 내역은 조회할 수 있습니다. 구체적인 보관기간은 조회 기능과 별도로 확인이 필요합니다. 주문 목록은 페이지당 최대 500건입니다. 호출 한도는 매장별로 토큰을 초당 10개 충전하고 최대 100개까지 보유하는 방식입니다. 대량 조회도 응답의 잔여 호출량과 429 응답을 확인해 속도를 조절해 주세요. Open API 공통 가이드 5. PG 구분과 정산 자료 · 문의 6·8·9번 settlementType의 PG는 결제수단이 아니라 정산 주체의 종류를 뜻합니다. settlementSubject는 정산 주체를 나타내는 문자열이며, 고정된 전체 값 목록은 제공중이지 않습니다. PG 상세에는 토스페이먼츠가 포함될 수 있고, 값이 제공되는 경우 pgDetails의 provider와 transactionId로 PG사와 거래 ID를 확인할 수 있습니다. 두 서비스의 거래 ID가 동일하다는 의미는 아닙니다. 현재 Open API는 결제 건별 실제 차감 수수료, 입금 예정일·예정액, 실제 입금 내역을 제공하지 않습니다. 따라서 실제 수수료를 반영한 점포별 정산에는 별도의 정산 자료가 필요합니다. Open API 결제 가이드 아래 토스페이먼츠 PG 거래에 관한 아래 항목은 토스페이먼츠 계약·도입 담당자에게 문의 부탁 드립니다. 매장별·결제 건별 실제 수수료와 정산 자료 제공 범위 및 제공 방식 정산금의 입금 단위·일정·통장 적요와 매장별 구분 방법 토스플레이스 결제 내역과 페이먼츠 정산 자료의 중복 집계 여부 및 거래 대조 기준 토스페이먼츠에는 별도의 정산 조회 API가 있습니다. 다만 이번 외부 단말 결제에도 해당 API를 적용할 수 있는지는 페이먼츠 측에 확인해 주세요. 카드사에서 직접 정산받는 거래는 해당 카드사·VAN 또는 대리점에 확인해야 합니다. 토스페이 거래도 페이먼츠 PG를 경유하는지에 따라 확인 창구가 달라지므로, 모든 토스페이 정산을 토스페이먼츠 정산과 동일하게 보시면 안 됩니다. 6. 매장 개설·단말 제공·계약 조건 · 문의 1·10·11번 토스페이먼츠 오프라인 결제 도입을 검토 중이라면 아래 사항은 페이먼츠 계약·도입 담당자에게 먼저 문의 부탁 드립니다. 해당 도입 상품의 대형가맹점 판정 기준, 온라인 카드 매출 합산 여부 및 단말 구매·임대 조건 회사 명의 단말을 다른 사업자가 운영하는 점포에 설치하고, 결제대금을 가맹점주에게 정산하는 구조의 허용 여부와 심사 조건·필요 서류 토스페이먼츠의 사업자 정보·정산 계좌 변경 절차 및 계약 해지·이용 정지에 따른 영향 또한 두 서비스 간 정보 변경의 자동 반영 여부와 계약의 상호 영향은 토스플레이스와 토스페이먼츠 각각의 계약 기준으로 확인해야 합니다. 특히 회사 명의로 결제받은 금액을 가맹점주에게 정산하는 구조는 기술 연동 가능 여부와 별도로 사전 확인이 필요합니다.
  • 4 게시물
    13k 조회수
    김
    넵 감사합니다
  • 2 게시물
    13k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 1. getHalls 반환 형식 가이드상 반환값은 홀 목록 배열(PluginHall[])입니다. 각 항목에는 id(홀 ID), title(홀 이름), order(정렬 순서)가 포함됩니다. Table API 가이드를 참고해 주세요. 2. SDK 지원 버전 getHalls는 SDK 0.0.19에서 추가되었으며, 사용 중인 0.0.27에도 포함되어 있습니다. SDK 변경 이력을 참고해 주세요. 3. 라이브 환경 로그 확인 운영 웹 워커는 운영 문제 해결 가이드에 따라 Sentry 등으로 수집한 로그를 기반으로 확인해 주세요. 이번 문의에서는 getHalls 호출 직후의 반환값 자료형, 배열 여부, 배열인 경우 항목 수, 검증에 실패한 지점과 오류 메시지를 확인 부탁 드립니다. 오류 로그만으로는 정상 완료된 호출의 반환값을 확인하기 어려울 수 있으므로, 해당 정보가 기록되어 있지 않다면 호출 결과를 직접 로그로 남기도록 구성해 주세요.
  • 2 게시물
    13k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. Open API 앱을 활성화하기 이전의 주문·결제 데이터도 조회할 수 있습니다. 데이터가 토스플레이스 서버에 저장되어 있으므로, 앱 설치 이후에 발생한 데이터만 조회되는 구조는 아닙니다. 1. 과거 데이터 조회 범위 앱이 연결된 매장의 서버 저장 데이터를 조회할 수 있으며, 앱 설치 시점이나 최근 몇 개월을 기준으로 조회기간을 제한하지 않습니다. 2. 한 번에 지정할 수 있는 기간 from~to 사이의 기간에 별도의 최대 일수 제한은 없습니다. 다만 두 값은 주문 생성 시각이 아니라 결제 내역이 변동된 시각을 기준으로 조회합니다. 주문 조회 가이드를 참고해 주세요. 3. 과거 주문을 여러 페이지로 조회할 때 한 페이지는 기본 100건, 최대 500건입니다. 호출량은 토큰이 최대 100개까지 충전되고 초당 10개씩 보충되는 방식으로 제한됩니다. 요청마다 토큰 1개를 사용하며, 한도를 초과하면 HTTP 429가 반환됩니다. 응답 헤더의 x-ratelimit-remaining과 x-ratelimit-reset을 확인해 호출 속도를 조정해 주세요. 호출량 제한 가이드를 참고해 주세요. 4. 결제 내역 조회 결제 내역도 앱 활성화 이전 데이터라는 이유로 조회가 제한되지는 않습니다. 주문 목록에서 주문 ID를 확인한 뒤, 주문의 결제건 모두 조회 API로 해당 주문의 결제 내역을 조회할 수 있습니다. 결제 조회 가이드를 참고해 주세요.