가상계좌 결제 취소 및 환불 웹훅 질문드립니다.
안녕하세요. 고생하십니다.
가상 결제 취소 시에 DEPOSIT_CALLBACK 을 처리하는 웹훅에
payment 객체의 값이 status가 canceled 상태로
virtualAccount의 refundStatus 값이 변경 될 때마다 웹훅이 들어오는 건가요?
PENDING > FAILED
PARTIAL_FAILED
COMPLTED
정상적인 처리 과정에선 가상결제를 취소한 경우 PENDING -> COMPLETE 두번 날라오는건지 궁금합니다.
method = 가상계좌 && status = CANCELED 로 발라내면 될까요
23 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
DEPOSIT_CALLBACK 은 아래와 같이 전달 됩니다.
https://docs.tosspayments.com/common/webhook#이벤트-본문-1
웹훅(Webhook) 연동하기 | 토스페이먼츠 개발자센터
웹훅은 데이터가 변경되었을 때 상점 서버에서 실시간으로 알림을 받을 수 있는 기능입니다. 웹훅을 연동해서 결제 상태 변경, 지급대행 실행, 브랜드페이 고객 결제수단 업데이트와 같은 변경 사항을 실시간으로 받아보세요.
말씀하신 PENDING 등은 payment객체의 virtualAccount 의 가상계좌 상태인데, 가상계좌 거래건의 취소 성공 응답 후 실제 환불까지는 D+2 (영업일기준) 가 소요됩니다.
제가 궁금한 점은 환불이 완료된 시점도 훅으로 쏴주나요?
그리고 지금 앱쪽에서 결제를 발생시키고 훅으로 서버에 저장하고 있는데,
가상결제로 결제가 된건을 서버에서 취소 API를 요청해야하는데, 이 때 서버는 환불계좌에 대한 정보가 없습니다..ㅜㅜ
가상결제 건을 취소할때는 환불계좌 정보도 같이 넘겨줘야하죠?
아니요. 입금일 때는 가상계좌 콜백이 나가지만, 취소시에는 입력한 계좌로 실질적인 환불(구매자 계좌로 입금) 시 에는 웹훅발송이 없습니다.
네 가상계좌는 다른 일반적인 결제수단과 달리 발급된 가상계좌로 여러 은행등의 계좌에서 입금이 되는 것이기 때문에 출금된 계좌로 환불이 불가능합니다.
따라서 가상계좌 거래건을 환불할 때는 refundReceiveAccount 정보가 필수 입력입니다.
결제 당시 환불받을 계좌 정보를 미리 받으시거나
혹시 페이먼트 키를 통해 환불계좌를 조회할 방법이 있나요?
또는 거래건 취소 시 환불계좌를 입력받으셔야 합니다.
아니요. 말씀드렸듯이 어떤 계좌로 부터 자금이 가상계좌로 이체되었는지 알 수가 없어요.
환불 시 환불계좌 입력은 필수 입니다.

아, 제가 지금 결제 위젯을 확인을 못해서 가상 계좌으로 결제 시에 환불 계좌를 미리 입력한다고 이야기를 하시길래 그렇게 인지한대로 질문드렸습니다
아하. 결제씬에서 결제와는 별개로 구매자 환불계좌를 받아 주시거나,
혹은 취소 시 환불계좌 넣는 부분이 필요합니다.
답변 감사합니다. 확인해보겠습니다
넵.
좋은하루되세요 🙂
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
@eunsikshin 앗 대리님 정말 죄송한데요, 그 앱측과 통화를 했는데 가상계좌 선택 후 결제를 진행하면 환불 계좌를 필수로 입력받게 하고, 결제를 취소하면 알아서 그 환불계좌로 환불이 된다고 하는데요... 이런 프로세스도 제공해주고 계신게 맞나요?
오해가 있는 상황인 것 같네요. ㅜㅜ 파악해보겠습니다 감사합니더
혹시 결제위젯을 사용하시는 경우라면 결제위젯에서 환불계좌를 입력받으실수 있지만, 이때도 저희가 환불계좌를 저장하는 것은아니고 가맹점이 환불계좌를 저장하신후에 환불시에 API 로 환불계좌 정보를 보내주셔야 합니다.
감사합니다 확인해보겠습니다.
결제 승인응답시에 virtualAccount.refundReceiveAccount 에 입력하신 환불계좌 정보를 보내드리고 있습니다.
아 감사합니다 웹훅에 찍힌다는 말씀이시죠?
아.. 그리고 하나만 더 확인하고 싶은게 있는데요
이 말이
PAYMENT_STATUS_CHANGED > WEBHOOK1
DEPOSIT_CALLBACK > WEBHOOK2
둘 다 등록 했을 시에 WEBHOOK1과 WEBHOOK2 에 한번씩 2번 전송된다는 말인건가요?

네