sayren Docs
웹훅

웹훅 전송 기록

최근 30일의 전송 기록. 최신 적재순. 이벤트 하나가 한 기록이며 재시도는 같은 기록의 `attemptCount`로 누적된다. 수동 재전송은 같은 `eventId`를 가진 새 기록(`redeliveryOf`=원본)으로 생긴다. 실패를 좁힐 때는 `failureReason`(DNS·TLS·TIMEOUT·CONNECTION·HTTP_4XX·HTTP_5XX·SSRF_BLOCKED)을 먼저 본다. `resourceId`에 주문·클레임·상품·리뷰·문의 id를 넣으면 그 리소스와 관련된 이벤트만 남는다 — 대표 리소스(`resource`)뿐 아니라 이벤트 `data`에 실린 모든 id를 본다. 같은 id를 API 로그 조회의 `q`로 넘기면 그 리소스를 건드린 API 요청을 볼 수 있다. 요청 본문·요청 헤더는 상세 조회에 있다.

GET
/v1/webhooks/{webhookId}/deliveries

최근 30일의 전송 기록. 최신 적재순. 이벤트 하나가 한 기록이며 재시도는 같은 기록의 attemptCount로 누적된다. 수동 재전송은 같은 eventId를 가진 새 기록(redeliveryOf=원본)으로 생긴다.

실패를 좁힐 때는 failureReason(DNS·TLS·TIMEOUT·CONNECTION·HTTP_4XX·HTTP_5XX·SSRF_BLOCKED)을 먼저 본다. resourceId에 주문·클레임·상품·리뷰·문의 id를 넣으면 그 리소스와 관련된 이벤트만 남는다 — 대표 리소스(resource)뿐 아니라 이벤트 data에 실린 모든 id를 본다. 같은 id를 API 로그 조회의 q로 넘기면 그 리소스를 건드린 API 요청을 볼 수 있다. 요청 본문·요청 헤더는 상세 조회에 있다.

Authorization

accessToken
headerAuthorizationBearer <token>

Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)

Path Parameters

webhookId*string

Query Parameters

status?string

전송 상태 필터. 생략하면 전체

Value in"PENDING""PENDING_RETRY""SUCCESS""FAILED"
eventType?string

이벤트 타입 필터. 생략하면 전체

Value in"ORDER.PAID""ORDER.CONFIRMED""ORDER.DISPATCHED""ORDER.DELIVERED""ORDER.PURCHASE_DECIDED""ORDER.ADDRESS_CHANGE_REQUESTED""ORDER.CANCELED""ORDER.FULFILLED""CLAIM.CANCEL_REQUESTED""CLAIM.RETURN_REQUESTED""CLAIM.EXCHANGE_REQUESTED""CLAIM.COMPLETED""INQUIRY.CREATED""REVIEW.CREATED""PRODUCT.OUT_OF_STOCK""ORDER.FLOW_NOTIFICATION""ORDER.FLOW_STATE_CHANGED"
resourceId?string

대상 리소스 ID 필터(정확히 일치). 주문·클레임·상품·리뷰·문의 id를 넣으면 그 리소스의 이벤트만 남는다. 같은 id로 API 로그를 q로 검색하면 그 리소스를 건드린 API 요청을 볼 수 있다

limit?integer

최대 건수 (1~100, 기본 50). 최신 적재순으로 반환하며 보관 기간은 30일이다

Range1 <= value <= 100

Header Parameters

X-Store-Id*string

대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다

Response Body

성공

application/json
  1. response
meta*
data*array<>
error*|null
curl -X GET 'https://api.sayren.io/v1/webhooks/string/deliveries' \  -H 'X-Store-Id: string'
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": [    {      "deliveryId": "string",      "eventId": "string",      "eventType": "ORDER.PAID",      "url": "string",      "status": "PENDING",      "responseStatusCode": 0,      "responseTimeMs": 0,      "responseBodyExcerpt": "string",      "errorCode": "TIMEOUT",      "failureReason": "string",      "resource": {        "type": "string",        "id": "string"      },      "attemptCount": 0,      "createdAt": "string",      "attemptedAt": "string",      "nextAttemptAt": "string",      "redeliveryOf": "string",      "redeliveredAs": "string"    }  ],  "error": null}