invoice.created
주문이 만들어지면 보내는 이벤트예요.
주문이 만들어지면 보내요. API, 대시보드, CSV 업로드, 카페24 연동 중 어디서 만든 주문이든 보내요. data.source로 어디서 만들었는지 알 수 있어요.
페이로드
data는 만든 주문 페이로드예요. status는 PENDING이에요.
{
"id": "evt_a9b8c7d6e5f4g3h2i1j0k9l8",
"type": "invoice.created",
"timestamp": "2026-04-28T03:14:15Z",
"data": {
"id": "ivc_a1b2c3d4e5f6g7h8i9j0k1l2",
"number": 1043,
"status": "PENDING",
"customer": {
"name": "홍길동",
"email": "hong@example.com",
"phoneNumber": "01012345678"
},
"amount": 50000,
"paidAmount": null,
"amountDiff": null,
"bankAccountIds": [],
"cashReceipt": null,
"metadata": { "orderId": "ORDER-2026-0001" },
"source": "API",
"createdAt": "2026-04-28T03:14:15Z",
"updatedAt": null,
"expiresAt": "2026-04-29T03:14:15Z",
"paidAt": null,
"paidTrigger": null,
"matchedTransactionId": null,
"canceledAt": null,
"cancelReason": null,
"expiredAt": null,
"reopenedAt": null
}
}
활용
API로 주문을 만들었다면 응답에 같은 정보가 오니 이 이벤트를 따로 처리하지 않아도 돼요. 이런 경우에 쓰세요.
- 대시보드, CSV 업로드, 카페24 연동으로 만든 주문을 내 시스템에 옮겨요.
- 같은 워크스페이스의 다른 서비스가 만든 주문을 추적해요.
if (event.type === "invoice.created" && event.data.source !== "API") {
await db.invoices.upsert({
paysyncInvoiceId: event.data.id,
number: event.data.number,
customerName: event.data.customer.name,
amount: event.data.amount,
status: event.data.status,
createdAt: new Date(event.data.createdAt),
});
}