본문으로 건너뛰기
Sursa Developers

이벤트 · 결제 및 요금

subscription.updated

구독 변경됨

클라우드 구독이 바뀌었어요. 에디션, 상태, 라이선스 수, 기간이 해당돼요(data.previous_attributes 필드에 이전 값이 있어요).

객체 유형
subscription
전송 대상
admin 역할의 웹훅

페이로드

객체: EventSubscriptionUpdated

  • idstring필수

    이벤트 ID(evt_…)로, webhook-id 헤더로도 보내요. 중복 전송을 걸러 내는 데 쓰세요.

  • typestring필수

    허용 값: subscription.updated

  • created_atstring (date-time)필수

    변경이 일어난 시각(UTC).

  • org_idinteger필수
  • api_versionstring필수

    data 스키마의 계약 버전.

  • sequenceinteger

    웹훅 안에서의 전송 순번(테스트 이벤트에는 없어요).

  • objectWebhookEventObject필수
  • payloadstring필수

    thin은 data 필드가 없다는 뜻이에요: API로 객체를 읽으세요.

    허용 값: fullthin

  • dataobject
    필드
    • subscriptionEventSubscription필수
    • previous_attributesobject필수

      객체에서 변경된 최상위 필드의 이전 값.

    • actor_idinteger | null필수

      해당 동작을 수행한 사용자. 조직 API 키나 플랫폼 자체가 수행했으면 null이에요.

  • testboolean필수

    POST /v1/webhooks/{webhook_id}/test로 보낸 테스트 이벤트.

전송 예시

{
  "id": "evt_0123456789abcdef0123456789abcdef",
  "type": "subscription.updated",
  "created_at": "2026-10-24T10:00:03Z",
  "org_id": 1,
  "api_version": "1.62.0",
  "sequence": 1042,
  "object": {
    "type": "subscription",
    "id": "1"
  },
  "payload": "full",
  "data": {
    "subscription": {
      "edition": "business",
      "status": "active",
      "seats_purchased": 25,
      "billing_interval": "month",
      "trial_ends_at": null,
      "current_period_start": "2026-10-01T00:00:00Z",
      "current_period_end": "2026-11-01T00:00:00Z",
      "canceled_at": null,
      "credits_allowance": 5000
    },
    "previous_attributes": {
      "seats_purchased": 20
    },
    "actor_id": 7
  },
  "test": false
}

이벤트 수신

각 전송은 이 JSON 본문을 웹훅의 수신 주소로 보내는 POST 요청이에요. 본문을 신뢰하기 전에 webhook-signature 헤더(Standard Webhooks)를 검증하고, 몇 초 안에 2xx 상태로 응답한 다음 처리는 그 뒤에 하세요. 한 웹훅으로 가는 전송은 이벤트 순서를 지키며, 실패한 전송은 간격을 늘려 가며 재시도해요.

새 이벤트 유형과 새 필드는 언제든 추가될 수 있어요. 모르는 유형과 필드는 건너뛰세요.

같은 이벤트를 이벤트 피드에서 30일 동안 볼 수 있어요 →