<?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[결제 웹훅에서 간편결제(BARCODE), 외부결제(EXTERNAL)의 카드와선불 구분 방법]]></title><description><![CDATA[<h3>어떤 제품을 사용하나요?</h3>
<ul>
<li>제품: Open API</li>
<li>SDK 또는 API 버전: 결제 웹훅 payment.payment.approved.v1</li>
<li>환경: 운영</li>
</ul>
<h3>무엇이 궁금한가요?</h3>
<p dir="auto">결제 웹훅에서 <strong>간편결제(BARCODE)와 외부 결제수단(EXTERNAL)이 카드 결제인지<br />
선불 결제인지 판별할 수 있는 필드</strong>가 있는지 궁금합니다.</p>
<p dir="auto">저희는 웹훅으로 받은 결제를 자체 시스템의 결제수단(카드 / 계좌이체 / 현금)으로<br />
변환해 저장합니다. 카드와 선불은 정산이 달라 섞이면 안 되어, 판별이 되는 건만<br />
받고 나머지는 보류하도록 만들어 두었습니다.</p>
<p dir="auto">현재 판별에 쓰는 값은 <code>easyPayDetails.payType</code> 입니다. 문서상 값은<br />
<code>CARD</code> / <code>ACCOUNT</code> / <code>UNDEFINED</code> 로 안내되어 있고, 실제로 이 값이 오는 건은<br />
정상 처리하고 있습니다.</p>
<p dir="auto">문제는 <code>payType</code> 이 <code>null</code> 이거나 <code>easyPayDetails</code> 자체가 없는 건입니다.<br />
운영에서 받은 웹훅을 전수로 살펴보니 아래 네 가지 형태가 있었습니다.</p>
<ol>
<li><code>paymentMethod: "BARCODE"</code> · <code>easyPayDetails</code> 없음 · <code>externalDetails.source</code> 에 카드사 이름</li>
<li><code>paymentMethod: "BARCODE"</code> · <code>easyPayDetails</code> 는 있으나 <code>payType: null</code>,<br />
같은 객체의 <code>acquirer</code> 에 카드사 이름 · <code>externalDetails.source</code> 에도 카드사 이름</li>
<li><code>paymentMethod: "EXTERNAL"</code> · <code>easyPayDetails</code> 없음 ·<br />
<code>externalDetails.source</code> 에 간편결제 서비스 이름(선결제)</li>
<li><code>paymentMethod: "BARCODE"</code> · <code>payType: "CARD"</code> 또는 <code>"ACCOUNT"</code> (정상 처리 중)</li>
</ol>
<p dir="auto">이에 아래 세 가지 질문드립니다.</p>
<ol>
<li><code>payType</code> 이 <code>null</code> 로 오는 조건이 무엇인가요?<br />
문서의 <code>UNDEFINED</code> 와 같은 뜻으로 보면 되는지, 아니면 다른 상황인지 궁금합니다.</li>
<li><code>externalDetails.source</code> 는 카드사 이름과 간편결제 서비스 이름이 같은 칸에<br />
들어오는 것으로 보입니다. 이 값의 가능한 형태가 정해져 있는지,<br />
문자열 비교로 카드 여부를 판단해도 되는지 알고 싶습니다.</li>
<li>위 1~3번 같은 건을 카드인지 선불인지 가릴 수 있는 다른 필드가 있을까요?<br />
<code>cardDetails</code> 는 이 건들에서 모두 빈 객체로 왔습니다.<br />
(<code>paymentMethod</code> 가 <code>IC</code>·<code>SAMSUNG_MST</code> 등인 건은 <code>cardDetails</code> 에 값이 채워져 옵니다)</li>
</ol>
<p dir="auto">추가로, <code>paymentMethod</code> 의 가능한 값 전체 목록이 문서에 있으면 위치를 알려주시면<br />
감사하겠습니다(또는 답글로 값 목록 회신 부탁드립니다). 현재 레퍼런스에는 예시 한 개만 나와 있어, 저희가 운영에서 관측한<br />
값(<code>IC</code>, <code>SAMSUNG_MST</code>, <code>SAMSUNG_NFC</code>, <code>MSR</code>, <code>APPLE_PAY</code>, <code>BARCODE</code>, <code>EXTERNAL</code>,<br />
<code>ACCOUNT_TRANSFER</code>, <code>CASH</code>)만 알고 있는 상태입니다.</p>
]]></description><link>https://forum.tossplace.com/topic/16/결제-웹훅에서-간편결제-barcode-외부결제-external-의-카드와선불-구분-방법</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 16:28:14 GMT</lastBuildDate><atom:link href="https://forum.tossplace.com/topic/16.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Sep 2026 07:51:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 결제 웹훅에서 간편결제(BARCODE), 외부결제(EXTERNAL)의 카드와선불 구분 방법 on Sun, 11 Oct 2026 10:53:22 GMT]]></title><description><![CDATA[<p dir="auto">안녕하세요. 토스플레이스 개발자센터입니다.</p>
<p dir="auto">추가로 문의 주신 세 가지 항목 안내 드립니다.</p>
<p dir="auto"><strong>1. settlement로 카드 결제 여부를 판단할 수 있나요?</strong></p>
<p dir="auto"><strong>settlementType이 ACQUIRER라는 이유만으로 카드 결제로 판단할 수는 없습니다.</strong> 정산 정보와 결제 재원 구분은 서로 다른 정보이므로, payType이 없는 건을 settlement 값으로 카드·선불로 확정하지 말아 주세요.</p>
<p dir="auto"><strong>2. easyPayDetails.acquirer도 문자열 비교로 판단하면 안 되나요?</strong></p>
<p dir="auto">네. acquirer는 매입사명을 전달하는 문자열 필드이며, 가이드에도 ‘토스머니’와 같은 값이 예시로 포함되어 있습니다. <strong>카드사명만 내려오는 고정 목록이 아니므로, 해당 이름을 비교해 카드·선불을 구분하지 않는 것이 맞습니다.</strong></p>
<p dir="auto"><strong>3. acquirerId는 어떤 코드인가요?</strong></p>
<p dir="auto"><strong>acquirerId는 VAN사에서 전달한 값입니다.</strong> 토스플레이스의 공통 정규화 코드로 해석하지 말아 주세요. <strong>별도의 코드표는 제공하지 않습니다.</strong></p>
<p dir="auto">따라서 기존에 안내 드린 것처럼, 구분 정보가 없는 건은 임의로 카드나 선불로 분류하지 않고 판별 보류로 처리해 주세요. <a href="https://docs.tossplace.com/reference/open-api/payment.html" rel="nofollow ugc">결제 데이터 가이드</a>를 참고해 주세요.</p>
]]></description><link>https://forum.tossplace.com/post/89</link><guid isPermaLink="true">https://forum.tossplace.com/post/89</guid><dc:creator><![CDATA[토스플레이스-개발자센터]]></dc:creator><pubDate>Sun, 11 Oct 2026 10:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to 결제 웹훅에서 간편결제(BARCODE), 외부결제(EXTERNAL)의 카드와선불 구분 방법 on Wed, 07 Oct 2026 02:50:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/%ED%86%A0%EC%8A%A4%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4-%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%84%BC%ED%84%B0" aria-label="Profile: 토스플레이스-개발자센터">@<bdi>토스플레이스-개발자센터</bdi></a></p>
<p dir="auto">감사합니다. 답변주신 대로 판별 불가 건은 보류 처리하도록 유지하되 판별 가능한 범위를 좁혀보려 합니다. 세 가지 추가로 문의드립니다.</p>
<h2>1. <code>settlement</code> 로 카드 매입 여부를 판별할 수 있는지</h2>
<p dir="auto"><code>payType: null</code>인 경우에도 <code>settlement</code>가 응답값에 포함되어 있습니다.</p>
<pre><code class="language-json">{
  "paymentMethod": "BARCODE",
  "cardDetails": null,
  "easyPayDetails": {
    "provider": "카카오페이",
    "acquirer": "우리",
    "acquirerId": "0103",
    "payType": null
  },
  "settlement": {
    "settlementType": "ACQUIRER",
    "settlementSubject": "우리"
  }
}
</code></pre>
<p dir="auto"><code>settlementType: "ACQUIRER"</code>가 '매입사 정산 = 카드 매입 발생'을 의미한다고 봐도 되는지 궁금합니다.</p>
<p dir="auto">다만 <code>payType: "ACCOUNT"</code>인 건도 <code>settlementType</code>은 동일하게 <code>ACQUIRER</code>였고 <code>settlementSubject</code>만 간편결제사명이었습니다. 그래서 <code>settlementType</code>단독으로는 판별이 불가능한 것 같아 보이는데, 맞는지 확인 부탁드립니다.</p>
<h2>2. <code>easyPayDetails.acquirer</code>의 값 집합</h2>
<p dir="auto">문서 예시가 <code>"토스머니"</code> 입니다. 이 필드가 카드사명과 선불수단명을 모두 담는 자유 스트링으로 이해하면 될까요?</p>
<p dir="auto">지금까지 저희 쪽에 들어온 데이터들은 전부 카드사명(<code>우리</code>·<code>하나카드</code>·<code>비씨</code>)이었으나, 표본이 적어 일반화하지 않으려 합니다.</p>
<p dir="auto">앞선 답변의 <code>externalDetails.source</code>안내를 '스트링 비교로 카드 여부를 판정하지 말 것'으로 이해했는데, 같은 기준이 <code>acquirer</code>에도 적용되는지 궁금합니다.</p>
<h2>3. <code>acquirerId</code>의 코드 체계</h2>
<p dir="auto">문서 예시는 <code>"TS"</code>인데 저희 수신값은 <code>"0103"</code>, <code>"0300"</code>형태의 숫자 문자열입니다. 가맹점 VAN 은 KCP 입니다.</p>
<p dir="auto">이 값이 VAN에서 그대로 받아온 값인지, 토스플레이스에서 정규화한 코드인지 궁금합니다. 전자라면 VAN사별로 체계가 달라지는지, 후자라면 전체 코드 목록을 확인할 수 있는지 알려주시면 감사하겠습니다.</p>
]]></description><link>https://forum.tossplace.com/post/66</link><guid isPermaLink="true">https://forum.tossplace.com/post/66</guid><dc:creator><![CDATA[배빵빵펭귄]]></dc:creator><pubDate>Wed, 07 Oct 2026 02:50:26 GMT</pubDate></item><item><title><![CDATA[Reply to 결제 웹훅에서 간편결제(BARCODE), 외부결제(EXTERNAL)의 카드와선불 구분 방법 on Thu, 01 Oct 2026 08:16:55 GMT]]></title><description><![CDATA[<p dir="auto">안녕하세요. 토스플레이스 개발자센터입니다.</p>
<p dir="auto">문의하신 내용에 대해 안내 드립니다.</p>
<p dir="auto"><strong>1. payType이 null로 전달되는 경우</strong></p>
<p dir="auto">VAN사·결제수단별로 제공되는 정보가 달라, 카드·계좌 여부를 식별할 수 없으면 null로 전달될 수 있습니다.</p>
<p dir="auto">null과 UNDEFINED는 서로 다른 값이지만, <strong>두 경우 모두 카드·선불 여부를 확정하는 근거로 사용할 수 없습니다.</strong></p>
<p dir="auto"><strong>2. externalDetails.source를 이용한 구분</strong></p>
<p dir="auto">해당 값은 결제수단명으로, 카드사명이나 간편결제·머니 명칭이 들어올 수 있으며 VAN사별 표기도 다릅니다.</p>
<p dir="auto">따라서 <strong>카드사 이름이 포함되어 있다는 이유만으로 카드 결제로 분류하지 않도록 처리해 주세요.</strong></p>
<p dir="auto"><strong>3. 다른 필드를 이용한 구분</strong></p>
<p dir="auto">문의하신 것처럼 payType 정보가 없고 cardDetails도 비어 있다면, <strong>토스플레이스에서도 해당 거래의 카드·선불 여부를 판단할 수 없습니다.</strong> 현재처럼 구분되지 않는 거래는 미분류·보류 처리해 주세요.</p>
<p dir="auto">참고로 payType의 ACCOUNT는 계좌를 의미하며, 선불을 뜻하는 값은 아닙니다.</p>
<p dir="auto"><strong>4. paymentMethod 전체 목록</strong></p>
<p dir="auto">paymentMethod의 전체 값 목록은 별도로 제공하지 않습니다. 공개된 sourceType과 결제수단별 상세 필드를 기준으로 처리하되, 구분 정보가 없는 거래를 임의로 분류하지 않도록 부탁 드립니다.</p>
<p dir="auto">자세한 필드 설명은 <a href="https://docs.tossplace.com/reference/open-api/payment.html" rel="nofollow ugc">결제 API 가이드</a>를 참고해 주세요.</p>
]]></description><link>https://forum.tossplace.com/post/41</link><guid isPermaLink="true">https://forum.tossplace.com/post/41</guid><dc:creator><![CDATA[토스플레이스-개발자센터]]></dc:creator><pubDate>Thu, 01 Oct 2026 08:16:55 GMT</pubDate></item></channel></rss>