POST 콜백을 전달합니다. 주문 조회 엔드포인트를 반복 폴링하는 대신 웹훅을 사용하면 결과가 준비되는 즉시 알림을 받을 수 있습니다.
웹훅 설정
웹훅 엔드포인트 등록
엔드포인트 구현
웹훅 핸들러는 다음을 수행해야 합니다:
- JSON 본문으로
POST요청을 수락 - 5초 이내에
2xx상태 코드로 응답 - 처리 전
X-MoriBiz-Signature헤더 검증
서명 검증
모든 요청에는
X-MoriBiz-Signature 헤더가 포함됩니다. 사용 중인 언어의 구현은 아래 서명 검증을 참고하세요.이벤트 유형
| 이벤트 유형 | 설명 |
|---|---|
order.antiAi.completed | Anti-AI 처리 성공 완료 |
order.antiAi.failed | Anti-AI 처리 실패 |
order.watermarkEmbed.completed | 워터마크 삽입 성공 완료 |
order.watermarkEmbed.failed | 워터마크 삽입 실패 |
order.watermarkExtract.completed | 워터마크 추출 성공 완료 |
order.watermarkExtract.failed | 워터마크 추출 실패 |
order.aiDetection.completed | AI Detection 성공 완료 |
order.aiDetection.failed | AI Detection 실패 |
웹훅 페이로드
모든 웹훅 페이로드는 다음 구조를 따릅니다:완료 이벤트 — 공통 필드
| 필드 | 타입 | 설명 |
|---|---|---|
orderId | string | 주문 ID |
orderName | string | 주문명 |
createdAt | string | 주문 생성 시간 (ISO 8601) |
updatedAt | string | 주문 최종 업데이트 시간 (ISO 8601) |
completedAt | string | 처리 완료 시간 (ISO 8601) |
status | string | 항상 complete |
실패 이벤트 — 공통 필드
| 필드 | 타입 | 설명 |
|---|---|---|
orderId | string | 주문 ID |
orderName | string | 주문명 |
createdAt | string | 주문 생성 시간 (ISO 8601) |
updatedAt | string | 주문 최종 업데이트 시간 (ISO 8601) |
failedAt | string | 처리 실패 시간 (ISO 8601) |
status | string | 항상 failed |
errorCode | string | 오류 코드 |
errorMessage | string | 오류 메시지 |
Anti-AI / 워터마크 삽입 — 추가 필드 (완료)
| 필드 | 타입 | 설명 |
|---|---|---|
fileCount | integer | 처리된 파일 수 |
downloadUrl | string | 결과 파일 다운로드 URL (1시간 유효) |
워터마크 추출 — 추가 필드 (완료)
status 필드는 항상 complete입니다. 워터마크 감지 여부는 statusCode로 확인하세요.
| 필드 | 타입 | 설명 |
|---|---|---|
statusCode | string | detected 또는 undetected |
watermarkFound | boolean | 워터마크 감지 여부 |
watermarkInfo.text | string | 감지된 워터마크 텍스트 (watermarkFound가 true일 때만) |
AI Detection — 추가 필드 (완료)
| 필드 | 타입 | 설명 |
|---|---|---|
probability | number | AI 생성 확률 (0.0–1.0) |
heatmapUrl | string | null | AI 판별 히트맵 이미지 다운로드 URL (generateHeatmap 옵션 사용 시에만 반환) |
overlayUrl | string | null | 원본 위 히트맵 오버레이 이미지 다운로드 URL (generateOverlay 옵션 사용 시에만 반환) |
서명 검증
X-MoriBiz-Signature 헤더를 확인하여 웹훅 진위를 검증합니다. 이벤트 처리 전에 반드시 검증하세요.
재시도 정책
BIZ MORI는 안정적인 웹훅 전송을 보장하기 위해 다단계 재시도 시스템을 사용합니다.초기 재시도
엔드포인트가2xx 상태 코드를 반환하지 않으면 BIZ MORI가 즉시 재시도합니다:
| 시도 | 지연 |
|---|---|
| 1차 재시도 | 1초 |
| 2차 재시도 | 2초 |
| 3차 재시도 | 4초 |
스케줄러 기반 재시도
초기 재시도가 모두 실패하면, 이벤트는 점차 간격이 늘어나는 스케줄러 기반 재시도 큐에 등록됩니다:| 시도 | 지연 |
|---|---|
| 4차 재시도 | 30분 |
| 5차 재시도 | 2시간 |
| 6차 재시도 | 4시간 |
FAILED로 표시됩니다. 웹훅 이벤트 목록 엔드포인트를 사용하여 실패한 이벤트를 확인할 수 있습니다.
수동 재전송 API
자동 재시도 프로세스와 관계없이, 재전송 API를 통해 언제든지 수동으로 웹훅을 재전송할 수 있습니다:- 단일 이벤트 재전송: 웹훅 이벤트 재전송 엔드포인트를 사용하여 특정 실패 이벤트를 재시도합니다.
- 일괄 재전송: 실패한 웹훅 이벤트 일괄 재전송 엔드포인트를 사용하여 특정 기간(최대 7일) 내 실패한 모든 이벤트를 재시도합니다.
실패 알림 이메일
초기 웹훅 전송이 실패하면 계정 소유자에게 웹훅 전송 실패 알림 이메일을 발송합니다. 과도한 알림을 방지하기 위해 이 이메일은 하루 최대 1회만 발송됩니다.웹훅 관리
| 작업 | 엔드포인트 |
|---|---|
| 웹훅 목록 조회 | GET /webhooks |
| 웹훅 생성 | POST /webhooks |
| 웹훅 상세 조회 | GET /webhooks/ |
| 웹훅 수정 | PUT /webhooks/ |
| 웹훅 삭제 | DELETE /webhooks/ |
| 전송 이벤트 조회 | GET /webhooks//events |
| 단일 이벤트 재전송 | POST /webhooks//events//retry |
| 실패 이벤트 일괄 재전송 | POST /webhooks//events/retry-failed |