본문으로 건너뛰기
페이싱크 개발자센터
Esc
↑↓이동↵열기⌘J미리보기
이 페이지에서

invoice.canceled

주문이 취소되면 보내는 이벤트예요.

주문이 취소되면 보내요. 이런 경우에 와요.

v1 웹훅에서는 같은 시점에 invoice.deleted로 와요.

페이로드

data는 취소된 주문 페이로드예요. status는 CANCELED이고, 취소 사유를 넣었다면 cancelReason에 와요.

{
  "id": "evt_d3e4f5g6h7i8j9k0l1m2n3o4",
  "type": "invoice.canceled",
  "timestamp": "2026-04-28T06:00:00Z",
  "data": {
    "id": "ivc_a1b2c3d4e5f6g7h8i9j0k1l2",
    "number": 1043,
    "status": "CANCELED",
    "customer": {
      "name": "홍길동",
      "email": null,
      "phoneNumber": null
    },
    "amount": 50000,
    "paidAmount": null,
    "amountDiff": null,
    "bankAccountIds": [],
    "cashReceipt": null,
    "metadata": { "orderId": "ORDER-2026-0001" },
    "source": "API",
    "createdAt": "2026-04-28T03:14:15Z",
    "updatedAt": "2026-04-28T06:00:00Z",
    "expiresAt": "2026-04-29T03:14:15Z",
    "paidAt": null,
    "paidTrigger": null,
    "matchedTransactionId": null,
    "canceledAt": "2026-04-28T06:00:00Z",
    "cancelReason": "고객 요청으로 주문 취소",
    "expiredAt": null,
    "reopenedAt": null
  }
}

처리 예시

내 시스템의 주문도 취소 상태로 바꿔서 상태를 맞춰요.

if (event.type === "invoice.canceled") {
  const orderId = event.data.metadata.orderId;
  if (orderId) {
    await db.orders.update(orderId, {
      status: "CANCELLED",
      cancelledAt: new Date(event.data.canceledAt),
      cancelReason: event.data.cancelReason,
    });
  }
}

이 페이지가 도움이 되었나요?