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

invoice.reopened

매칭이 해제돼 결제 완료 주문이 결제 대기나 만료로 돌아가면 보내는 이벤트예요.

대시보드 입금 내역에서 입금과 주문의 매칭을 해제하면 보내요. 잘못 매칭했거나 구매자에게 입금을 돌려준 경우에 매칭을 해제해요.

매칭을 해제하면 주문은 입금 기한이 남아 있으면 PENDING, 지났으면 EXPIRED로 돌아가요. paidAt, paidAmount, amountDiff, paidTrigger, matchedTransactionId는 null로 바뀌고 reopenedAt이 기록돼요.

이미 결제 완료로 처리한 주문이라면 내 시스템에서도 결제를 되돌려야 해요. 배송이나 서비스 제공을 멈출지 확인하세요.

페이로드

data는 다시 열린 주문 페이로드예요.

{
  "id": "evt_e4f5g6h7i8j9k0l1m2n3o4p5",
  "type": "invoice.reopened",
  "timestamp": "2026-04-28T07:10:00Z",
  "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": "2026-04-28T07:10:00Z",
    "expiresAt": "2026-04-29T03:14:15Z",
    "paidAt": null,
    "paidTrigger": null,
    "matchedTransactionId": null,
    "canceledAt": null,
    "cancelReason": null,
    "expiredAt": null,
    "reopenedAt": "2026-04-28T07:10:00Z"
  }
}

처리 예시

if (event.type === "invoice.reopened") {
  const orderId = event.data.metadata.orderId;
  if (orderId) {
    await db.orders.update(orderId, { status: event.data.status === "EXPIRED" ? "EXPIRED" : "PENDING" });
    await alertOperator(orderId, "페이싱크에서 결제 매칭이 해제됐어요.");
  }
}

v1 웹훅에는 이 이벤트가 없어요. 매칭을 해제하는 일이 있다면 v2 웹훅을 쓰세요.

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