invoice.deleted
주문이 취소되면 보내는 v1 이벤트예요.
주문이 취소되면 보내요. v2에서는 주문을 지우지 않고 취소 상태로 바꾸는데, v1 웹훅은 이 취소를 예전 이름인 invoice.deleted로 보내요. v2 웹훅의 invoice.canceled와 같은 시점이에요.
이런 경우에 보내요.
결제 완료된 주문은 취소할 수 없으니 invoice.paid는 false예요.
페이로드
| 필드 | 타입 | 설명 |
|---|---|---|
type |
string | "invoice.deleted" |
invoice |
object | 취소된 주문의 주문 객체예요. |
{
"type": "invoice.deleted",
"invoice": {
"id": "ivc_a1b2c3d4e5f6g7h8i9j0k1l2",
"issuerId": "acc_x9y8z7w6v5u4t3s2r1q0p9o8",
"bankAccountIds": [],
"customer": {
"name": "홍길동",
"email": null,
"phoneNumber": null
},
"cashReceipt": null,
"amount": 50000,
"paid": false,
"metadata": { "orderId": "ORDER-2026-0001" },
"issuedAt": "2026-04-28T03:14:15.000+00:00",
"expiresAt": "2026-04-29T03:14:15.000+00:00",
"deletedAt": null
}
}
처리 예시
내 시스템의 주문도 취소 상태로 바꿔서 상태를 맞춰요.
if (event.type === "invoice.deleted") {
const orderId = event.invoice.metadata?.orderId;
if (orderId) {
await db.orders.update(orderId, {
status: "CANCELLED",
cancelledAt: new Date(),
cancelReason: "INVOICE_DELETED",
});
}
}