Webhooks 연동
동기화할 때마다 은행 1만+곳의 거래, 잔액, 보유 자산, 매매 내역을 서명된 JSON으로 HTTPS 엔드포인트에 POST하며, 직접 관리하는 서명 시크릿으로 검증할 수 있어요.
webhook-id: evt_job-7q2_0_1_1webhook-timestamp: 1792501320webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=content-type: application/json { "id": "evt_job-7q2_0_1_1", "type": "transactions.delta", "apiVersion": "2026-06-01", "createdAt": "2026-10-20T13:02:00.000Z", "feed": { "id": "feed_9d1", "name": "Chase to Webhook", "dataType": "transactions" }, "job": { "id": "job_7q2", "trigger": "scheduled" }, "batch": { "sequence": 1 }, "data": [ { "id": "10a4d071832649a", "date": "2026-10-19", "amount": 4200.00, … }, { "id": "4bdd8e6931727cd", "date": "2026-10-19", "amount": -86.42, … }, …1 more ]}
은행에서 서버까지 세 단계로.
- 01
엔드포인트 연결
공개 HTTPS URL을 붙여 넣으세요. BankSync가 whsec_ 서명 시크릿을 한 번 표시하고 테스트 이벤트를 보내요.
URLhttps://api.yourapp.com/…시크릿whsec_••••••••••••테스트 이벤트● 200 · 142ms - 02
피드 연결
계좌와 데이터 유형을 선택하세요. 매핑할 필요 없이 버전이 지정된 JSON 엔벨로프를 받아요.
거래잔액보유 자산매매 내역대출이벤트transactions.delta매핑없음, 페이로드 미리 보기 제공 - 03
모든 전송 검증
아무 Standard Webhooks 라이브러리로 서명을 확인한 뒤 id 기준으로 행을 업서트하세요.
server.js
import { Webhook } from 'standardwebhooks'const wh = new Webhook(secret)const event = wh.verify(body, headers)// event.id로 중복 제거
Webhooks 설정, 처음부터 끝까지
BankSync에서 Webhooks 연동을 설정하는 과정이에요. 샘플 계좌로 촬영했어요.
엔드포인트로 전달되는 데이터.
- id
- 전송마다 고유하며 재시도해도 바뀌지 않아요. webhook-id 헤더와 같은 값으로, 멱등성 키로 사용해요.
- type
- 새 거래나 변경된 거래는 transactions.delta로, 잔액, 보유 자산, 매매 내역, 주문, 대출은 *.snapshot으로 전달돼요.
- apiVersion
- 날짜로 고정된 페이로드 규격이며, 현재 2026-06-01이에요.
- feed
- 이벤트를 보낸 피드의 id, 이름, 데이터 유형.
- job
- 이벤트가 속한 실행과 그 실행을 시작한 원인: scheduled, manual, api, test 또는 redelivery.
- batch
- 실행 내에서 배치의 순서이며, 이를 기준으로 정렬할 수 있어요.
- data
- 행 데이터. 거래에는 id, 날짜, 설명, 부호 있는 금액, 통화, 카테고리, 대기 여부, 계좌가 포함돼요.
Webhooks, 핵심 요약
- 데이터
- 거래, 잔액, 보유 자산, 매매 내역, 주문, 대출. 피드마다 하나의 데이터 유형.
- 서명
- Standard Webhooks: id, 타임스탬프, 본문에 대한 HMAC-SHA256. 시크릿을 교체해도 이전 시크릿은 24시간 동안 유효해요.
- 전송
- 최소 1회 전송. 408, 425, 429, 5xx 및 시간 초과는 백오프를 두고 재시도하며, 410은 엔드포인트를 비활성화해요.
- 엔드포인트
- 공개 HTTPS만 허용. 사설, 루프백, 내부 주소는 거부돼요.
- 일정
- 요금제에 따라 매시간, 매일, 매주 자동 동기화를 선택하거나, 언제든지 수동으로 동기화할 수 있어요.
- 요금제
- Standard 요금제 이상, API 및 MCP와 함께 제공.
- 설정
- 약 5분 걸려요. 서명된 JSON을 자체 엔드포인트로 보내요. 제3자 비용은 없어요.
- 상태
- 지금 사용할 수 있어요.
자주 묻는 질문
BankSync 웹훅은 어떻게 검증하나요?
모든 전송에는 Standard Webhooks 형식의 webhook-id, webhook-timestamp, webhook-signature 헤더가 포함돼요. 아무 Standard Webhooks 라이브러리로 whsec_ 시크릿을 사용해 검증하고, 5분이 지난 타임스탬프는 거부하세요.
엔드포인트가 다운되면 어떻게 되나요?
전송은 최소 1회 보장돼요. 408, 425, 429, 5xx 응답과 시간 초과는 같은 id로 지수 백오프를 두고 재시도하므로 id로 중복을 제거하세요. 410 응답을 받으면 엔드포인트가 비활성화돼요.
BankSync는 어떤 이벤트를 보내나요?
새 거래나 변경된 거래에는 transactions.delta, 현재 상태에는 balances.snapshot, holdings.snapshot, trades.snapshot, orders.snapshot, loans.snapshot, 각 실행이 끝날 때는 sync.completed 또는 sync.failed, 테스트 이벤트에는 endpoint.test를 보내요.
localhost나 사설 네트워크로 웹훅을 보낼 수 있나요?
아니요. 엔드포인트는 공개 https:// URL이어야 해요. 사설, 루프백, 링크 로컬 또는 내부 범위로 확인되는 주소는 저장할 때 거부돼요.
웹훅은 어느 요금제에 포함되나요?
웹훅은 API, MCP와 함께 Standard 요금제 이상에서 제공돼요.
엔드포인트로 은행 데이터를.
BankSync는 Webhooks의 계열사, 보증 대상 또는 공식 파트너가 아니에요. Webhooks 상표는 해당 소유자에게 있어요.
