62037468
620374683w ago

가상계좌의 status가 DONE -> WAITING_FOR_DEPOSIT 으로 변경 webhook

[참고한 문서] https://docs.tosspayments.com/reference/using-api/webhook-events#deposit_callback 위 문서를 보면
구매자의 계좌 송금 한도가 초과되었거나 네트워크 이슈 등으로 입금 오류가 일어나면 결제 상태가 DONE에서 WAITING_FOR_DEPOSIT으로 변경됩니다. 구매자에게 다시 입금하도록 안내해야 합니다.

버전 1.4까지는 입금 오류가 일어나면 결제 상태가 DONE에서 CANCELED로 변경됩니다. 마찬가지로 구매자에게 다시 입금하도록 안내해야 합니다.
구매자의 계좌 송금 한도가 초과되었거나 네트워크 이슈 등으로 입금 오류가 일어나면 결제 상태가 DONE에서 WAITING_FOR_DEPOSIT으로 변경됩니다. 구매자에게 다시 입금하도록 안내해야 합니다.

버전 1.4까지는 입금 오류가 일어나면 결제 상태가 DONE에서 CANCELED로 변경됩니다. 마찬가지로 구매자에게 다시 입금하도록 안내해야 합니다.
라고 되어 있는데요, 질문은, 1. DONE에서 WAITING_FOR_DEPOSIT으로 변경될때 변경 사유를 어떻게 알 수 있나요? 고객분들께 입금을 다시 요청드리기 위해서는 입금 실패 사유를 알아야 합니다. 2. DONE에서 WAITING_FOR_DEPOSIT으로 변경될때 웹훅으로 들어오는 이벤트 본문이 어떻게 되나요? 3. 버전 1.4 에서는 CANCELED로 들어온다 되어 있는데요, 참고한 문서 내 버전1.4 에 하이퍼링크로 첨부된 링크를 클릭시 없는 페이지가 나옵니다. 버전 1.4 는 사용되고 있지 않다고 생각하면 될까요?
웹훅 이벤트 | 토스페이먼츠 개발자센터
토스페이먼츠에서 제공하는 웹훅 이벤트 목록입니다.
23 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee3w ago
1. 은행에 여러 조건에 따라 달라지고 저희도 정확한 이유를 알수는 없습니다. 다만 이미 고객은 송금앱등에서 이체 실패 메시지를 받으셨을거라 가맹점에서 별도로 안내하실 필요 없습니다. 2. DONE 에 들어가는것과 같습니다. 3. 개발자 센터에 보시면 API 키 확인하시는 곳에 버전 선택하실수 있습니다. 이걸 1.4 이상으로 해주시면 됩니다.
62037468
62037468OP3w ago
위 답변중 추가 질문이 있는데요, 다만 이미 고객은 송금앱등에서 이체 실패 메시지를 받으셨을거라 라고 말씀하셨는데요, 송금앱에서 이체 실패가 되었는데 DONE 에서 WAITING_FOR_DEPOSIT 웹훅이 들어올 수 있나요? 즉, 이체가 실패가 되었는데도 이체 성공 webhook이 1차로 들어오고 (status = DONE) 이후에 2차로 webhook이 또 들어오는 구조인가요? (status = WAITING...)
today.lastday
today.lastday3w ago
송금앱에서 이체 실패가 되었는데 DONE 에서 WAITING_FOR_DEPOSIT 웹훅이 들어올 수 있나요? => 네 맞습니다. 오래전 만들어진 구조라서 그렇습니다. 간혹이지만 그런 현상이 발생하기 때문에 위 내용처럼 기술한 것입니다. 송금앱의 처리결과와 은행->가상계좌->pg통보 구조가 이원화 되어 있는데 처리 순서가 다르기 때문입니다.
62037468
62037468OP3w ago
그러면 정리해본다면 0. 고객이 가상 계좌를 발급받는다. (status = WAITING_FOR_DEPOSIT) 1. 고객이 송금 앱에서 이체를 실패한다. 2. Toss 에서 webhook을 보낸다 (status = DONE) 3. Toss 에서 webhook을 다시 보낸다 (status = WAITING_FOR_DEPOSIT) 이런 구조라는 것이지요?
today.lastday
today.lastday3w ago
결과적으로 보면 맞습니다.
62037468
62037468OP3w ago
그렇다면 Toss 에서 webhook으로 DONE을 보내주어도 이것이 <결제가 성공적으로 이루어졌음> 을 보장하지 못하는 것이군요?
today.lastday
today.lastday3w ago
엄밀하게 말하면 그렇습니다. 그렇지만 대부분은 보장합니다.
62037468
62037468OP3w ago
이런 건이 자주 있나요?
today.lastday
today.lastday3w ago
자주발생하지 않습니다. pg 전체 거래건중 몇 건 정도에 불과합니다.
62037468
62037468OP3w ago
Toss 전체 거래중에 몇건인 것이죠? 빈도에 따라서 개발을 할지 운영으로 처리할지 결정할 수 있어서 여쭙습니다
today.lastday
today.lastday3w ago
개발 공수때문이라면 2분지연 통보를 사용하시면 됩니다. 2분지연은 위와 같은 현상 때문에 2분뒤 입금완료 통보를 해드리는 것입니다. 해당 현상이 드물게 일어나지만 2분 지연통보를 설정하면 거의 발생하지 않고 2분 뒤에 발생하는 건에 대해서는 가맹점에 별도 연락드리고 있어요. 2분지연통보 설정은 1544-7772에 청약시 설정 요청해주시면 됩니다.
토스페이먼츠 BOT
토스페이먼츠 결제연동팀
빠르고 정확한 결제연동 경험을 위해, 디스코드에서는 기술 문의만 받고 있습니다. 계약 및 운영 관련 문의는 1544-7772나 홈페이지 상담을 이용해주세요. 감사합니다.
62037468
62037468OP3w ago
음.. 2분 지연 통보가 되면 고객 분들은 입금이 되고 2분 뒤에 자신의 입금 결과를 받게 되는 것이네요 그리고 2분 지연 통보가 이루어진다 하더라도 DONE -> WAITING_FOR_DEPOSIT 이 없을 것이라는 것도 보장이 되지는 않는것 같아 보여요~
today.lastday
today.lastday3w ago
2분지연의 경우 한달 전체 거래중 5건 이내입니다. 대형 가맹점이 아닌 경우 사실상 마주칠 일은 없습니다.
62037468
62037468OP3w ago
그러면 위와 같이 다시 WAITING_FOR_DEPOSIT 로 돌아간 경우를 토스페이먼츠의 관리자 결제 대시보드에서 확인할 수가 있지요?
today.lastday
today.lastday3w ago
입금취소 상태로 확인됩니다.
62037468
62037468OP3w ago
추가로 질문이 있습니다 1. 가상계좌의 웹훅의 경우 이벤트 본문이 { "createdAt": "2022-01-01T00:00:00.000000", "secret": "Wlg4z4eW5izR8czvIpjba", "status": "DONE", "transactionKey": "9FF15E1A29D0E77C218F57262BFA4986", "orderId": "mMQG4r6pz-9qAgunR3lFi" } 라고 문서에 나와있던데, eventType 없이 위와 같은 모습으로만 들어오나요? 2. 위 문서를 보면 만약 PAYMENT_STATUS_CHANGED, DEPOSIT_CALLBACK 이벤트를 모두 등록했다면 가상계좌 상태가 변경될 때 웹훅이 두 번 전송됩니다. 라고 나와있던데, 두 이벤트로 들어오는 이벤트 본문 내용이 동일한가요?
62037468
62037468OP3w ago
그렇다면 DEPOSIT_CALLBACK 이벤트를 등록하지 않아도 status = WAITING_FOR_DEPOSIT 으로 변경된 사항이 들어온다는 것이죠?
Kimoon Lee
Kimoon Lee3w ago
PAYMENT_STATUS_CHANGED 를 사용하면 전송 받으실수 있을겁니다.
62037468
62037468OP3w ago
그렇다면 DEPOSIT_CALLBACK 이벤트 웹훅을 수신하는 url을 따로 구현할 필요가 없겠군요 ㅎㅎ. 답변 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?