12332_asdf
12332_asdf2w ago

웹훅 시그니처 관련 문의드립니다

tid:oonboabner nodejs환경에서 웹훅 콜백을 처리중인데, curl -X POST "http://localhost:8080/backend/order/webhooks/payout-changed" -H "Content-Type: application/json" -H "tosspayments-webhook-signature: v1:p1CopsUYl0S/a9/sQOZZkL5Ipell9X6cyDuj2B5t5ws=,v1:QEZLf9U77X6clfVdcOvUuSdOpbtdZVXBUKw8wPq1uVQ=" -H "tosspayments-webhook-transmission-id: whtrans_a01k8yknxqhrm29g5zvacws411t" -H "tosspayments-webhook-transmission-retried-count: 7" -H "tosspayments-webhook-transmission-time: 2025-11-01T13:28:53+09:00" -H "User-Agent: tosspayments" -d '{"eventType":"payout.changed","createdAt":"2025-10-31T11:54:49+09:00","version":"2022-11-16","eventId":"whevt_a01k8w30ve6sqg4acyj7zpjj8bw","entityType":"payout","entityBody":{"id":"tdpo_a01k8sv5d2ksh3knvpe2vzxgscz","refPayoutId":"payout_6900a9f96d4e78ae9db3b752_1761803940625","destination":"seller_a01k8scztn6j8t3q14tg75pckq5","scheduleType":"SCHEDULED","payoutDate":"2025-10-31","amount":{"currency":"KRW","value":32640},"transactionDescription":"유통업체측","requestedAt":"2025-10-30T14:59:01+09:00","status":"COMPLETED","error":null,"metadata":{"distributorId":"68f20644653c901636ef3b6b","orderId":"6900a9f96d4e78ae9db3b752"}}}' 해당 요청으로 로컬환경에서 테스트중입니다. https://docs.tosspayments.com/reference/using-api/webhook-events 요 문서부분을 보고 구현을 했는데, payout.changed 로 날아온 라이브 요청이 처리가 잘 안되서 로그를 찍어 로컬에서 테스트중인데 sellerchanged 훅의 경우엔 정상 처리된 기록이 있습니다. 혹시 두 웹훅의 구동 방식에 차이가 있을까요?
웹훅 이벤트 | 토스페이먼츠 개발자센터
토스페이먼츠에서 제공하는 웹훅 이벤트 목록입니다.
No description
11 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
today.lastday
today.lastday2w ago
확인 후 답변드릴게요. 웹훅 구조자체는 동일합니다. 웹훅 호출시 해당 서버에서 500에러가 발생했는데, 웹훅 수신중 에러가 발생했는지 확인 부탁드려요.
12332_asdf
12332_asdfOP2w ago
네 수신중에 시그니처 검증에 계속 실패하네요'
today.lastday
today.lastday2w ago
시그니처 검증시 어떤에러가 발생하는지 공유 부탁드려요. 저희쪽에서는 500에러로만 확인이 되어서요.
12332_asdf
12332_asdfOP2w ago
저희쪽 서버에서 위의 코드로 독스 내용과 같이 payload, transmissiontime, 제 보안키등등을 이용해 해시값/디코딩 값을 비교하는데, 둘이 계속 다르다고 나옵니다 그 경우에 저희 서버에서 500에러를 리턴해줍니다
OMG
OMG2w ago
이 경우 보통 2가지가 잘못 되었던걸로 기억하는데요. 상점ID가 여러개인데 다른 상점ID의 보안키를 넣은 경우이거나 혹은 웹훅으로 드린 payload 를 그대로 사용하셔야 하는데 파라미터 순서를 바꾼다거나 하는 경우에 발생했었습니다.
today.lastday
today.lastday2w ago
@12332_asdf 님 해당 코드는 직접 구현하신 것고, 동일 코드에서 payout.changed 만 에러 발생하고, seller.changed는 문제 없는 것일까요? 관련 코드와 사용한 키값등 정보를 techsupport@tosspayments.com으로 보내주시면 확인해보겠습니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
12332_asdf
12332_asdfOP4d ago
securityKey가 상점별로 있나요? 셀러등록시에 사용한 키와, payout changed에 사용한 보안 키는 같습니다 네 같은 키와 알고리즘으로 시그니처를 검증하고있는데, payout.changed는 시그니처 검증에 실패하고, seller는 정상 처리됩니다 정리중입니다! 되는데로 보내두겠습니다
Minsu Kim
Minsu Kim4d ago
이메일은 지워주세요 확인되면 답변드릴게요
12332_asdf
12332_asdfOP4d ago
넵 감사합니다~!

Did you find this page helpful?