웹훅
웹훅 구독 등록
판매자당 최대 10개. 등록 즉시 `ACTIVE`이며 이후 발생하는 구독 이벤트부터 발송된다. URL은 HTTPS여야 하고, 호스트가 사설·루프백·링크로컬 등 내부 주소로 해석되면 거부된다. 서명 시크릿 평문(`secret`)은 이 응답에서만 노출되고, 이후 조회에는 앞부분(`secretPrefix`)만 나온다.
POST
판매자당 최대 10개. 등록 즉시 ACTIVE이며 이후 발생하는 구독 이벤트부터 발송된다. URL은 HTTPS여야 하고, 호스트가 사설·루프백·링크로컬 등 내부 주소로 해석되면 거부된다. 서명 시크릿 평문(secret)은 이 응답에서만 노출되고, 이후 조회에는 앞부분(secretPrefix)만 나온다.
accessTokenheader
AuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
X-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
application/json- body
url*stringMatch
^https:\/\/.*Format
starts_witheventTypes*array<>Items
1 <= items성공
application/json- response
meta*data*error*|nullcurl -X POST 'https://api.sayren.io/v1/webhooks' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{ "url": "string", "eventTypes": [ "ORDER.PAID" ]}'{ "meta": { "status": 201, "code": "OK", "message": "OK", "isSuccess": true }, "data": { "webhookId": "string", "url": "http://example.com", "eventTypes": [ "ORDER.PAID" ], "status": "ACTIVE", "secretPrefix": "string", "suspendedAt": "string", "createdAt": "string", "secret": "string" }, "error": null}