@sayren/store-sdk 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -921,8 +921,8 @@ export declare const oauthClientRegistrationRequestSchema: z.ZodObject<{
921
921
  }>>;
922
922
  redirect_uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
923
923
  grant_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
924
- authorization_code: "authorization_code";
925
924
  refresh_token: "refresh_token";
925
+ authorization_code: "authorization_code";
926
926
  client_credentials: "client_credentials";
927
927
  "urn:ietf:params:oauth:grant-type:token-exchange": "urn:ietf:params:oauth:grant-type:token-exchange";
928
928
  }>>>;
@@ -2272,6 +2272,7 @@ export declare const eventTypeSchema: z.ZodEnum<{
2272
2272
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2273
2273
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2274
2274
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2275
+ "ORDER.CANCELED": "ORDER.CANCELED";
2275
2276
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2276
2277
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2277
2278
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2296,6 +2297,7 @@ export declare const webhookSchema: z.ZodObject<{
2296
2297
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2297
2298
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2298
2299
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2300
+ "ORDER.CANCELED": "ORDER.CANCELED";
2299
2301
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2300
2302
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2301
2303
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2324,6 +2326,7 @@ export declare const webhookCreatedSchema: z.ZodObject<{
2324
2326
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2325
2327
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2326
2328
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2329
+ "ORDER.CANCELED": "ORDER.CANCELED";
2327
2330
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2328
2331
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2329
2332
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2402,6 +2405,7 @@ export declare const webhookDeliverySchema: z.ZodObject<{
2402
2405
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2403
2406
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2404
2407
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2408
+ "ORDER.CANCELED": "ORDER.CANCELED";
2405
2409
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2406
2410
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2407
2411
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2453,6 +2457,7 @@ export declare const webhookDeliveryDetailSchema: z.ZodObject<{
2453
2457
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2454
2458
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2455
2459
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2460
+ "ORDER.CANCELED": "ORDER.CANCELED";
2456
2461
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2457
2462
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2458
2463
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2513,6 +2518,7 @@ export declare const webhookDeliveryListQuerySchema: z.ZodObject<{
2513
2518
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2514
2519
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2515
2520
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2521
+ "ORDER.CANCELED": "ORDER.CANCELED";
2516
2522
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2517
2523
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2518
2524
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2538,6 +2544,7 @@ export declare const webhookTestRequestSchema: z.ZodObject<{
2538
2544
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2539
2545
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2540
2546
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2547
+ "ORDER.CANCELED": "ORDER.CANCELED";
2541
2548
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2542
2549
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2543
2550
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -2577,6 +2584,7 @@ export declare const webhookRequestSchema: z.ZodObject<{
2577
2584
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2578
2585
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2579
2586
  "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2587
+ "ORDER.CANCELED": "ORDER.CANCELED";
2580
2588
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2581
2589
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2582
2590
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
@@ -7423,7 +7431,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7423
7431
  list: () => Promise<{
7424
7432
  webhookId: string;
7425
7433
  url: string;
7426
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7434
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7427
7435
  status: "ACTIVE" | "SUSPENDED";
7428
7436
  secretPrefix: string;
7429
7437
  suspendedAt: string | null;
@@ -7433,7 +7441,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7433
7441
  create: (body: WebhookRequest) => Promise<{
7434
7442
  webhookId: string;
7435
7443
  url: string;
7436
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7444
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7437
7445
  status: "ACTIVE" | "SUSPENDED";
7438
7446
  secretPrefix: string;
7439
7447
  suspendedAt: string | null;
@@ -7443,7 +7451,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7443
7451
  get: (webhookId: string) => Promise<{
7444
7452
  webhookId: string;
7445
7453
  url: string;
7446
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7454
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7447
7455
  status: "ACTIVE" | "SUSPENDED";
7448
7456
  secretPrefix: string;
7449
7457
  suspendedAt: string | null;
@@ -7453,7 +7461,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7453
7461
  update: (webhookId: string, body: WebhookRequest) => Promise<{
7454
7462
  webhookId: string;
7455
7463
  url: string;
7456
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7464
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7457
7465
  status: "ACTIVE" | "SUSPENDED";
7458
7466
  secretPrefix: string;
7459
7467
  suspendedAt: string | null;
@@ -7468,7 +7476,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7468
7476
  resume: (webhookId: string) => Promise<{
7469
7477
  webhookId: string;
7470
7478
  url: string;
7471
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7479
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7472
7480
  status: "ACTIVE" | "SUSPENDED";
7473
7481
  secretPrefix: string;
7474
7482
  suspendedAt: string | null;
@@ -7478,7 +7486,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7478
7486
  listDeliveries: (webhookId: string, params?: WebhookDeliveryListParams) => Promise<{
7479
7487
  deliveryId: string;
7480
7488
  eventId: string;
7481
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7489
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7482
7490
  url: string;
7483
7491
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7484
7492
  responseStatusCode: number | null;
@@ -7505,7 +7513,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7505
7513
  getDelivery: (webhookId: string, deliveryId: string) => Promise<{
7506
7514
  deliveryId: string;
7507
7515
  eventId: string;
7508
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7516
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7509
7517
  url: string;
7510
7518
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7511
7519
  responseStatusCode: number | null;
@@ -7540,7 +7548,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7540
7548
  redeliver: (webhookId: string, deliveryId: string) => Promise<{
7541
7549
  deliveryId: string;
7542
7550
  eventId: string;
7543
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7551
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "ORDER.CANCELED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7544
7552
  url: string;
7545
7553
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7546
7554
  responseStatusCode: number | null;
@@ -8507,6 +8515,43 @@ export declare const orderWebhookEventDataSchema: z.ZodObject<{
8507
8515
  testPayment: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8508
8516
  }, z.core.$strip>;
8509
8517
  export type OrderWebhookEventData = z.infer<typeof orderWebhookEventDataSchema>;
8518
+ /**
8519
+ * `ORDER.CANCELED` — 셀러 직권취소(`POST /v1/order-items/{orderItemId}/cancel`)로 주문상품이 취소됐다.
8520
+ * 수량 단위 부분 취소도 이 이벤트다(`quantity` < 주문 수량이면 주문상품 상태가 그대로다).
8521
+ * 구매자가 신청한 취소·반품은 `CLAIM.*` 이벤트로 온다.
8522
+ */
8523
+ export declare const orderCanceledWebhookEventDataSchema: z.ZodObject<{
8524
+ orderId: z.ZodString;
8525
+ orderItemId: z.ZodString;
8526
+ status: z.ZodEnum<{
8527
+ PAID: "PAID";
8528
+ CANCELED: "CANCELED";
8529
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8530
+ CONFIRMED: "CONFIRMED";
8531
+ DISPATCHED: "DISPATCHED";
8532
+ DELIVERING: "DELIVERING";
8533
+ DELIVERED: "DELIVERED";
8534
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8535
+ }>;
8536
+ itemStatus: z.ZodEnum<{
8537
+ PAID: "PAID";
8538
+ CANCELED: "CANCELED";
8539
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8540
+ CONFIRMED: "CONFIRMED";
8541
+ DISPATCHED: "DISPATCHED";
8542
+ DELIVERING: "DELIVERING";
8543
+ DELIVERED: "DELIVERED";
8544
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8545
+ }>;
8546
+ reason: z.ZodString;
8547
+ quantity: z.ZodNumber;
8548
+ canceledQuantity: z.ZodNumber;
8549
+ refundAmount: z.ZodNumber;
8550
+ deliveryFeeRefundAmount: z.ZodNumber;
8551
+ deliveryFeeChargeAmount: z.ZodNumber;
8552
+ testPayment: z.ZodBoolean;
8553
+ }, z.core.$strip>;
8554
+ export type OrderCanceledWebhookEventData = z.infer<typeof orderCanceledWebhookEventDataSchema>;
8510
8555
  export declare const claimWebhookEventDataSchema: z.ZodObject<{
8511
8556
  claimId: z.ZodString;
8512
8557
  orderId: z.ZodString;
@@ -8578,6 +8623,43 @@ export declare const orderWebhookEventSchema: z.ZodObject<{
8578
8623
  createdAt: z.ZodString;
8579
8624
  storeId: z.ZodString;
8580
8625
  }, z.core.$strip>;
8626
+ export declare const orderCanceledWebhookEventSchema: z.ZodObject<{
8627
+ type: z.ZodLiteral<"ORDER.CANCELED">;
8628
+ data: z.ZodObject<{
8629
+ orderId: z.ZodString;
8630
+ orderItemId: z.ZodString;
8631
+ status: z.ZodEnum<{
8632
+ PAID: "PAID";
8633
+ CANCELED: "CANCELED";
8634
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8635
+ CONFIRMED: "CONFIRMED";
8636
+ DISPATCHED: "DISPATCHED";
8637
+ DELIVERING: "DELIVERING";
8638
+ DELIVERED: "DELIVERED";
8639
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8640
+ }>;
8641
+ itemStatus: z.ZodEnum<{
8642
+ PAID: "PAID";
8643
+ CANCELED: "CANCELED";
8644
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8645
+ CONFIRMED: "CONFIRMED";
8646
+ DISPATCHED: "DISPATCHED";
8647
+ DELIVERING: "DELIVERING";
8648
+ DELIVERED: "DELIVERED";
8649
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8650
+ }>;
8651
+ reason: z.ZodString;
8652
+ quantity: z.ZodNumber;
8653
+ canceledQuantity: z.ZodNumber;
8654
+ refundAmount: z.ZodNumber;
8655
+ deliveryFeeRefundAmount: z.ZodNumber;
8656
+ deliveryFeeChargeAmount: z.ZodNumber;
8657
+ testPayment: z.ZodBoolean;
8658
+ }, z.core.$strip>;
8659
+ id: z.ZodString;
8660
+ createdAt: z.ZodString;
8661
+ storeId: z.ZodString;
8662
+ }, z.core.$strip>;
8581
8663
  export declare const claimWebhookEventSchema: z.ZodObject<{
8582
8664
  type: z.ZodEnum<{
8583
8665
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
@@ -8674,6 +8756,42 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8674
8756
  id: z.ZodString;
8675
8757
  createdAt: z.ZodString;
8676
8758
  storeId: z.ZodString;
8759
+ }, z.core.$strip>, z.ZodObject<{
8760
+ type: z.ZodLiteral<"ORDER.CANCELED">;
8761
+ data: z.ZodObject<{
8762
+ orderId: z.ZodString;
8763
+ orderItemId: z.ZodString;
8764
+ status: z.ZodEnum<{
8765
+ PAID: "PAID";
8766
+ CANCELED: "CANCELED";
8767
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8768
+ CONFIRMED: "CONFIRMED";
8769
+ DISPATCHED: "DISPATCHED";
8770
+ DELIVERING: "DELIVERING";
8771
+ DELIVERED: "DELIVERED";
8772
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8773
+ }>;
8774
+ itemStatus: z.ZodEnum<{
8775
+ PAID: "PAID";
8776
+ CANCELED: "CANCELED";
8777
+ PAYMENT_WAITING: "PAYMENT_WAITING";
8778
+ CONFIRMED: "CONFIRMED";
8779
+ DISPATCHED: "DISPATCHED";
8780
+ DELIVERING: "DELIVERING";
8781
+ DELIVERED: "DELIVERED";
8782
+ PURCHASE_DECIDED: "PURCHASE_DECIDED";
8783
+ }>;
8784
+ reason: z.ZodString;
8785
+ quantity: z.ZodNumber;
8786
+ canceledQuantity: z.ZodNumber;
8787
+ refundAmount: z.ZodNumber;
8788
+ deliveryFeeRefundAmount: z.ZodNumber;
8789
+ deliveryFeeChargeAmount: z.ZodNumber;
8790
+ testPayment: z.ZodBoolean;
8791
+ }, z.core.$strip>;
8792
+ id: z.ZodString;
8793
+ createdAt: z.ZodString;
8794
+ storeId: z.ZodString;
8677
8795
  }, z.core.$strip>, z.ZodObject<{
8678
8796
  type: z.ZodEnum<{
8679
8797
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
package/dist/index.mjs CHANGED
@@ -1357,6 +1357,7 @@ const eventTypeSchema = z.enum([
1357
1357
  "ORDER.DELIVERED",
1358
1358
  "ORDER.PURCHASE_DECIDED",
1359
1359
  "ORDER.ADDRESS_CHANGE_REQUESTED",
1360
+ "ORDER.CANCELED",
1360
1361
  "CLAIM.CANCEL_REQUESTED",
1361
1362
  "CLAIM.RETURN_REQUESTED",
1362
1363
  "CLAIM.EXCHANGE_REQUESTED",
@@ -1364,7 +1365,7 @@ const eventTypeSchema = z.enum([
1364
1365
  "INQUIRY.CREATED",
1365
1366
  "REVIEW.CREATED",
1366
1367
  "PRODUCT.OUT_OF_STOCK"
1367
- ]);
1368
+ ]).describe("웹훅 이벤트 타입. `ORDER.ADDRESS_CHANGE_REQUESTED`는 현재 발송하지 않음(호환을 위해 값만 남았고, 구독해도 이벤트가 오지 않는다)");
1368
1369
  const webhookStatusSchema = z.enum(["ACTIVE", "SUSPENDED"]).describe("구독 상태. `ACTIVE`=발송 대상, `SUSPENDED`=24시간 이상 연속 전송 실패로 발송이 정지된 상태. 정지 중 발생한 이벤트는 적재하지 않는다. 재개(`POST /webhooks/{id}/resume`)하거나 구독을 수정하면 ACTIVE로 돌아간다");
1369
1370
  const webhookSchema = z.object({
1370
1371
  webhookId: z.string(),
@@ -3992,6 +3993,24 @@ const orderWebhookEventDataSchema = z.object({
3992
3993
  status: orderItemStatusSchema.describe("이벤트 발생 시점의 주문 대표 상태"),
3993
3994
  testPayment: z.boolean().optional().default(false).describe("테스트 결제(샌드박스 결제) 주문인가. true면 실제로 돈이 오가지 않았다. 이 필드가 없는 이전 이벤트는 false로 읽는다")
3994
3995
  });
3996
+ /**
3997
+ * `ORDER.CANCELED` — 셀러 직권취소(`POST /v1/order-items/{orderItemId}/cancel`)로 주문상품이 취소됐다.
3998
+ * 수량 단위 부분 취소도 이 이벤트다(`quantity` < 주문 수량이면 주문상품 상태가 그대로다).
3999
+ * 구매자가 신청한 취소·반품은 `CLAIM.*` 이벤트로 온다.
4000
+ */
4001
+ const orderCanceledWebhookEventDataSchema = z.object({
4002
+ orderId: z.string().describe("주문 ID"),
4003
+ orderItemId: z.string().describe("취소한 주문 상품 ID"),
4004
+ status: orderItemStatusSchema.describe("취소 뒤 주문 대표 상태. 모든 주문 상품이 취소됐으면 `CANCELED`다"),
4005
+ itemStatus: orderItemStatusSchema.describe("취소 뒤 주문 상품 상태. 전 수량이 취소됐으면 `CANCELED`, 일부만 취소했으면 원래 상태다"),
4006
+ reason: z.string().describe("취소 사유 코드 — 판매자 취소 요청의 `reason`(`OUT_OF_STOCK`·`PRICE_ERROR`·`DELIVERY_IMPOSSIBLE`·`ETC`). 사유가 늘어날 수 있어 문자열이다. 모르는 값은 `ETC`처럼 다룬다"),
4007
+ quantity: z.number().int().describe("이번에 취소한 수량"),
4008
+ canceledQuantity: z.number().int().describe("취소 후 누적 취소 수량"),
4009
+ refundAmount: z.number().int().describe("환불액 (원). 수량 비율 상품 금액 + 배송비 환불 − 조건부 무료배송 미달 차감이다. 결제사 환불 결과는 결제 내역(`GET /v1/payments/{paymentId}`)으로 확인한다"),
4010
+ deliveryFeeRefundAmount: z.number().int().describe("환불액에 포함된 배송비 (원)"),
4011
+ deliveryFeeChargeAmount: z.number().int().describe("환불액에서 뺀 배송비 (원) — 조건부 무료배송 기준 미달 차감"),
4012
+ testPayment: z.boolean().describe("테스트 결제(샌드박스 결제) 주문인가. true면 실제로 돈이 오가지 않았다")
4013
+ });
3995
4014
  const claimWebhookEventDataSchema = z.object({
3996
4015
  claimId: z.string().describe("클레임 ID"),
3997
4016
  orderId: z.string().describe("주문 ID"),
@@ -4030,6 +4049,11 @@ const orderWebhookEventSchema = z.object({
4030
4049
  ]),
4031
4050
  data: orderWebhookEventDataSchema
4032
4051
  });
4052
+ const orderCanceledWebhookEventSchema = z.object({
4053
+ ...envelopeFields,
4054
+ type: z.literal("ORDER.CANCELED"),
4055
+ data: orderCanceledWebhookEventDataSchema
4056
+ });
4033
4057
  const claimWebhookEventSchema = z.object({
4034
4058
  ...envelopeFields,
4035
4059
  type: z.enum([
@@ -4058,6 +4082,7 @@ const productOutOfStockWebhookEventSchema = z.object({
4058
4082
  /** 웹훅 요청 본문. `type`으로 판별하며 `data` 형태가 타입별로 다르다 */
4059
4083
  const webhookEventSchema = z.discriminatedUnion("type", [
4060
4084
  orderWebhookEventSchema,
4085
+ orderCanceledWebhookEventSchema,
4061
4086
  claimWebhookEventSchema,
4062
4087
  inquiryWebhookEventSchema,
4063
4088
  reviewWebhookEventSchema,
@@ -4213,4 +4238,4 @@ function createStoreSession(options) {
4213
4238
  };
4214
4239
  }
4215
4240
  //#endregion
4216
- export { APPROVAL_ALREADY_DECIDED_CODE, APPROVAL_REQUIRED_CODE, ApiError, ApprovalPendingError, CASH_RECEIPT_STATUS_VALUES, MAX_ANALYTICS_ALLOWED_ORIGINS, MAX_AUTO_TRANSITION_DAYS, MAX_OPTION_GROUPS, MAX_PRODUCT_IMAGES, MAX_VALUES_PER_GROUP, MAX_VARIANTS, MCP_TELEMETRY_MAX_RESULTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, REFUND_POLICY_DEFAULTS, REMOTE_AREA_ZIP_RANGES, RESERVED_STORE_CODES, SHIPPING_POLICY_DEFAULTS, STORE_CODE_PATTERN, STORE_ROLE_SCOPES, STORE_SCOPE_RESOURCES, STORE_SESSION_KEYS, TOSS_WIDGET_CLIENT_KEY_PATTERN, TOSS_WIDGET_KEY_MESSAGE, TOSS_WIDGET_SECRET_KEY_PATTERN, UPLOAD_PURPOSE_LIMITS, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_FAILURE_REASONS, WEBHOOK_HEADERS, WEBHOOK_PAYLOAD_EXCERPT_MAX_BYTES, WEBHOOK_RESOURCE_TYPES, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressChangeRequestListSchema, addressTypeSchema, agentPolicyDecisionSchema, analyticsChannelSchema, analyticsCheckoutOutcomeSchema, analyticsCheckoutSchema, analyticsDeviceRowSchema, analyticsDevicesSchema, analyticsFunnelStepSchema, analyticsOriginSchema, analyticsOverviewSchema, analyticsPagesQuerySchema, analyticsPagesSchema, analyticsProductRowSchema, analyticsProductSortSchema, analyticsProductsQuerySchema, analyticsProductsSchema, analyticsRangeQuerySchema, analyticsRealtimeSchema, analyticsSearchQuerySchema, analyticsSearchSchema, analyticsSourceGroupBySchema, analyticsSourceRowSchema, analyticsSourcesQuerySchema, analyticsSourcesSchema, analyticsTotalsSchema, apiClientListQuerySchema, apiClientSchema, apiClientSecretRotatedSchema, apiClientStatusSchema, apiClientTypeSchema, apiLogErrorSchema, apiLogListQuerySchema, apiLogPageSchema, apiLogPrincipalSchema, apiLogPrincipalTypeSchema, apiLogSchema, apiLogStatusFilterSchema, apiLogSummarySchema, apiTokenCreateRequestSchema, apiTokenCreatedSchema, apiTokenSchema, approvalDecisionRequestSchema, approvalListQuerySchema, approvalPageSchema, approvalRequestSchema, approvalStatusSchema, approveClaimResultSchema, auditActorSchema, auditActorTypeSchema, auditLogListQuerySchema, auditLogOutcomeSchema, auditLogPageSchema, auditLogSchema, auditLogSourceSchema, buildAuthorizeUrl, buildQuery, bulkResultSchema, cancelBySellerRequestSchema, cancelBySellerResultSchema, carrierSchema, cashReceiptSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteQuerySchema, categoryDeleteStrategySchema, categoryListQuerySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimDetailSchema, claimHoldResultSchema, claimListQuerySchema, claimReasonSchema, claimReturnAddressSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, consentActionSchema, consentKindSchema, consentSourceSchema, createPkcePair, createStoreClient, createStoreSession, customerAddressSchema, customerConsentListQuerySchema, customerConsentSchema, customerConsentStateSchema, customerConsentsSchema, customerDetailSchema, customerInquiryCategorySchema, customerInquiryListQuerySchema, customerListQuerySchema, customerOrderSchema, customerSortSchema, customerStatsSchema, customerSummarySchema, customerWithdrawalBlockedDetailsSchema, deliveryBundleKeyOf, deliveryFeeWaiverSchema, deliveryInfoSchema, deliveryMethodSchema, deliveryStatusSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, easyPayProviderResponseSchema, easyPayProviderSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquiryListQuerySchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationDeliveryStatusSchema, invitationListQuerySchema, invitationSchema, inviteMemberRequestSchema, isReservedStoreCode, isStoreScope, isWebOrigin, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, loginProviderSchema, loginProviderStatusSchema, loginProviderTestSchema, loginSettingsSchema, maskedSecretSchema, mcpRuleResultSchema, mcpToolEventSchema, myAccountSchema, myStoreSchema, oauthClientRegistrationRequestSchema, oauthClientRegistrationResponseSchema, oauthTokenResponseSchema, optionGroupRequestSchema, optionGroupSchema, optionModelRequestSchema, optionModelSchema, optionValueRequestSchema, optionValueSchema, orderItemListQuerySchema, orderItemMemoResultSchema, orderItemPageSchema, orderItemSchema, orderItemStatusSchema, orderListQuerySchema, orderSchema, orderSummaryPageSchema, orderSummarySchema, orderWebhookEventDataSchema, orderWebhookEventSchema, pageInfoSchema, pageQueryShape, pageSchema, paymentAttemptRecordSchema, paymentAttemptStatusSchema, paymentCredentialSetSchema, paymentListQuerySchema, paymentProviderSchema, paymentProviderVerificationSchema, paymentRecordDetailSchema, paymentRecordPageSchema, paymentRecordSchema, paymentRecordStatusSchema, paymentRefundRecordSchema, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, policyDocumentUrlSchema, policyVersionSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productImageRejection, productImageUrlSchema, productListQuerySchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productRefundPolicyOverride, productSchema, productSortSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, proratedRefundBase, purchaseDecisionExtendResultSchema, purchaseDecisionRequestResultSchema, quoteDelivery, refreshUserToken, refundPolicyPatchSchema, refundPolicySchema, rejectClaimRequestSchema, remoteAreaLabelOf, remoteAreaOf, remoteAreaSchema, remoteSurchargeOf, resolveRefundPolicy, resolveShippingPolicy, reviewListQuerySchema, reviewReportResultSchema, reviewSchema, reviewSortSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, saveLoginProviderRequestSchema, scopeAccessSchema, sellerAddressListQuerySchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailQuerySchema, settlementDetailSchema, settlementListQuerySchema, settlementStatusSchema, settlementSummarySchema, settlementWithDetailsSchema, shippingAddressSchema, shippingPolicyPatchSchema, shippingPolicySchema, storeCodeSchema, storeMemberRoleUpdatedSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, trackingStageResponseSchema, trackingUpdateResultSchema, updateLoginProviderRequestSchema, updateLoginSettingsRequestSchema, updateMemberRoleRequestSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, updateStoreRequestSchema, uploadExtensionOf, uploadPurposeSchema, uploadRejection, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryDetailSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliveryResourceSchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookFailureReasonSchema, webhookRedeliverFailedResultSchema, webhookRequestHeaderSchema, webhookRequestSchema, webhookResourceTypeSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema, withdrawCustomerRequestSchema, writeDryRunResultSchema, writePreviewSchema };
4241
+ export { APPROVAL_ALREADY_DECIDED_CODE, APPROVAL_REQUIRED_CODE, ApiError, ApprovalPendingError, CASH_RECEIPT_STATUS_VALUES, MAX_ANALYTICS_ALLOWED_ORIGINS, MAX_AUTO_TRANSITION_DAYS, MAX_OPTION_GROUPS, MAX_PRODUCT_IMAGES, MAX_VALUES_PER_GROUP, MAX_VARIANTS, MCP_TELEMETRY_MAX_RESULTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, REFUND_POLICY_DEFAULTS, REMOTE_AREA_ZIP_RANGES, RESERVED_STORE_CODES, SHIPPING_POLICY_DEFAULTS, STORE_CODE_PATTERN, STORE_ROLE_SCOPES, STORE_SCOPE_RESOURCES, STORE_SESSION_KEYS, TOSS_WIDGET_CLIENT_KEY_PATTERN, TOSS_WIDGET_KEY_MESSAGE, TOSS_WIDGET_SECRET_KEY_PATTERN, UPLOAD_PURPOSE_LIMITS, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_FAILURE_REASONS, WEBHOOK_HEADERS, WEBHOOK_PAYLOAD_EXCERPT_MAX_BYTES, WEBHOOK_RESOURCE_TYPES, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressChangeRequestListSchema, addressTypeSchema, agentPolicyDecisionSchema, analyticsChannelSchema, analyticsCheckoutOutcomeSchema, analyticsCheckoutSchema, analyticsDeviceRowSchema, analyticsDevicesSchema, analyticsFunnelStepSchema, analyticsOriginSchema, analyticsOverviewSchema, analyticsPagesQuerySchema, analyticsPagesSchema, analyticsProductRowSchema, analyticsProductSortSchema, analyticsProductsQuerySchema, analyticsProductsSchema, analyticsRangeQuerySchema, analyticsRealtimeSchema, analyticsSearchQuerySchema, analyticsSearchSchema, analyticsSourceGroupBySchema, analyticsSourceRowSchema, analyticsSourcesQuerySchema, analyticsSourcesSchema, analyticsTotalsSchema, apiClientListQuerySchema, apiClientSchema, apiClientSecretRotatedSchema, apiClientStatusSchema, apiClientTypeSchema, apiLogErrorSchema, apiLogListQuerySchema, apiLogPageSchema, apiLogPrincipalSchema, apiLogPrincipalTypeSchema, apiLogSchema, apiLogStatusFilterSchema, apiLogSummarySchema, apiTokenCreateRequestSchema, apiTokenCreatedSchema, apiTokenSchema, approvalDecisionRequestSchema, approvalListQuerySchema, approvalPageSchema, approvalRequestSchema, approvalStatusSchema, approveClaimResultSchema, auditActorSchema, auditActorTypeSchema, auditLogListQuerySchema, auditLogOutcomeSchema, auditLogPageSchema, auditLogSchema, auditLogSourceSchema, buildAuthorizeUrl, buildQuery, bulkResultSchema, cancelBySellerRequestSchema, cancelBySellerResultSchema, carrierSchema, cashReceiptSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteQuerySchema, categoryDeleteStrategySchema, categoryListQuerySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimDetailSchema, claimHoldResultSchema, claimListQuerySchema, claimReasonSchema, claimReturnAddressSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, consentActionSchema, consentKindSchema, consentSourceSchema, createPkcePair, createStoreClient, createStoreSession, customerAddressSchema, customerConsentListQuerySchema, customerConsentSchema, customerConsentStateSchema, customerConsentsSchema, customerDetailSchema, customerInquiryCategorySchema, customerInquiryListQuerySchema, customerListQuerySchema, customerOrderSchema, customerSortSchema, customerStatsSchema, customerSummarySchema, customerWithdrawalBlockedDetailsSchema, deliveryBundleKeyOf, deliveryFeeWaiverSchema, deliveryInfoSchema, deliveryMethodSchema, deliveryStatusSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, easyPayProviderResponseSchema, easyPayProviderSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquiryListQuerySchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationDeliveryStatusSchema, invitationListQuerySchema, invitationSchema, inviteMemberRequestSchema, isReservedStoreCode, isStoreScope, isWebOrigin, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, loginProviderSchema, loginProviderStatusSchema, loginProviderTestSchema, loginSettingsSchema, maskedSecretSchema, mcpRuleResultSchema, mcpToolEventSchema, myAccountSchema, myStoreSchema, oauthClientRegistrationRequestSchema, oauthClientRegistrationResponseSchema, oauthTokenResponseSchema, optionGroupRequestSchema, optionGroupSchema, optionModelRequestSchema, optionModelSchema, optionValueRequestSchema, optionValueSchema, orderCanceledWebhookEventDataSchema, orderCanceledWebhookEventSchema, orderItemListQuerySchema, orderItemMemoResultSchema, orderItemPageSchema, orderItemSchema, orderItemStatusSchema, orderListQuerySchema, orderSchema, orderSummaryPageSchema, orderSummarySchema, orderWebhookEventDataSchema, orderWebhookEventSchema, pageInfoSchema, pageQueryShape, pageSchema, paymentAttemptRecordSchema, paymentAttemptStatusSchema, paymentCredentialSetSchema, paymentListQuerySchema, paymentProviderSchema, paymentProviderVerificationSchema, paymentRecordDetailSchema, paymentRecordPageSchema, paymentRecordSchema, paymentRecordStatusSchema, paymentRefundRecordSchema, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, policyDocumentUrlSchema, policyVersionSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productImageRejection, productImageUrlSchema, productListQuerySchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productRefundPolicyOverride, productSchema, productSortSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, proratedRefundBase, purchaseDecisionExtendResultSchema, purchaseDecisionRequestResultSchema, quoteDelivery, refreshUserToken, refundPolicyPatchSchema, refundPolicySchema, rejectClaimRequestSchema, remoteAreaLabelOf, remoteAreaOf, remoteAreaSchema, remoteSurchargeOf, resolveRefundPolicy, resolveShippingPolicy, reviewListQuerySchema, reviewReportResultSchema, reviewSchema, reviewSortSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, saveLoginProviderRequestSchema, scopeAccessSchema, sellerAddressListQuerySchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailQuerySchema, settlementDetailSchema, settlementListQuerySchema, settlementStatusSchema, settlementSummarySchema, settlementWithDetailsSchema, shippingAddressSchema, shippingPolicyPatchSchema, shippingPolicySchema, storeCodeSchema, storeMemberRoleUpdatedSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, trackingStageResponseSchema, trackingUpdateResultSchema, updateLoginProviderRequestSchema, updateLoginSettingsRequestSchema, updateMemberRoleRequestSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, updateStoreRequestSchema, uploadExtensionOf, uploadPurposeSchema, uploadRejection, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryDetailSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliveryResourceSchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookFailureReasonSchema, webhookRedeliverFailedResultSchema, webhookRequestHeaderSchema, webhookRequestSchema, webhookResourceTypeSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema, withdrawCustomerRequestSchema, writeDryRunResultSchema, writePreviewSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sayren/store-sdk",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "main": "./dist/index.mjs",
5
5
  "types": "./dist/index.d.mts",
6
6
  "exports": {
@@ -70,6 +70,7 @@ export const changeTypeSchema = z.enum([
70
70
  // 취소·반품 승인으로 주문상품이 취소됐다 — 서버가 이 값을 쓰므로 목록에 있어야 한다
71
71
  // (빠져 있던 동안 클레임이 끝난 주문상품이 섞이면 응답 검증이 깨졌다)
72
72
  "CLAIM.COMPLETED",
73
+ // 현재 서버가 쓰지 않음. 공개 계약 호환을 위해 값만 남겼다
73
74
  "ORDER.ADDRESS_CHANGE_REQUESTED",
74
75
  ]);
75
76
 
@@ -138,21 +138,28 @@ export interface SettlementListParams extends PageParams {
138
138
  status?: SettlementStatus;
139
139
  }
140
140
 
141
- export const eventTypeSchema = z.enum([
142
- "ORDER.PAID",
143
- "ORDER.CONFIRMED",
144
- "ORDER.DISPATCHED",
145
- "ORDER.DELIVERED",
146
- "ORDER.PURCHASE_DECIDED",
147
- "ORDER.ADDRESS_CHANGE_REQUESTED",
148
- "CLAIM.CANCEL_REQUESTED",
149
- "CLAIM.RETURN_REQUESTED",
150
- "CLAIM.EXCHANGE_REQUESTED",
151
- "CLAIM.COMPLETED",
152
- "INQUIRY.CREATED",
153
- "REVIEW.CREATED",
154
- "PRODUCT.OUT_OF_STOCK",
155
- ]);
141
+ export const eventTypeSchema = z
142
+ .enum([
143
+ "ORDER.PAID",
144
+ "ORDER.CONFIRMED",
145
+ "ORDER.DISPATCHED",
146
+ "ORDER.DELIVERED",
147
+ "ORDER.PURCHASE_DECIDED",
148
+ // 현재 발송하지 않음. 공개 계약 호환을 위해 값만 남겼다(구독해도 이벤트가 오지 않는다)
149
+ "ORDER.ADDRESS_CHANGE_REQUESTED",
150
+ // 셀러 직권취소 (이슈 #50). 뒤에 붙여 기존 값의 순서를 바꾸지 않는다
151
+ "ORDER.CANCELED",
152
+ "CLAIM.CANCEL_REQUESTED",
153
+ "CLAIM.RETURN_REQUESTED",
154
+ "CLAIM.EXCHANGE_REQUESTED",
155
+ "CLAIM.COMPLETED",
156
+ "INQUIRY.CREATED",
157
+ "REVIEW.CREATED",
158
+ "PRODUCT.OUT_OF_STOCK",
159
+ ])
160
+ .describe(
161
+ "웹훅 이벤트 타입. `ORDER.ADDRESS_CHANGE_REQUESTED`는 현재 발송하지 않음(호환을 위해 값만 남았고, 구독해도 이벤트가 오지 않는다)",
162
+ );
156
163
 
157
164
  export type EventType = z.infer<typeof eventTypeSchema>;
158
165
 
@@ -38,6 +38,46 @@ export const orderWebhookEventDataSchema = z.object({
38
38
  });
39
39
  export type OrderWebhookEventData = z.infer<typeof orderWebhookEventDataSchema>;
40
40
 
41
+ /**
42
+ * `ORDER.CANCELED` — 셀러 직권취소(`POST /v1/order-items/{orderItemId}/cancel`)로 주문상품이 취소됐다.
43
+ * 수량 단위 부분 취소도 이 이벤트다(`quantity` < 주문 수량이면 주문상품 상태가 그대로다).
44
+ * 구매자가 신청한 취소·반품은 `CLAIM.*` 이벤트로 온다.
45
+ */
46
+ export const orderCanceledWebhookEventDataSchema = z.object({
47
+ orderId: z.string().describe("주문 ID"),
48
+ orderItemId: z.string().describe("취소한 주문 상품 ID"),
49
+ status: orderItemStatusSchema.describe(
50
+ "취소 뒤 주문 대표 상태. 모든 주문 상품이 취소됐으면 `CANCELED`다",
51
+ ),
52
+ itemStatus: orderItemStatusSchema.describe(
53
+ "취소 뒤 주문 상품 상태. 전 수량이 취소됐으면 `CANCELED`, 일부만 취소했으면 원래 상태다",
54
+ ),
55
+ reason: z
56
+ .string()
57
+ .describe(
58
+ "취소 사유 코드 — 판매자 취소 요청의 `reason`(`OUT_OF_STOCK`·`PRICE_ERROR`·`DELIVERY_IMPOSSIBLE`·`ETC`). " +
59
+ "사유가 늘어날 수 있어 문자열이다. 모르는 값은 `ETC`처럼 다룬다",
60
+ ),
61
+ quantity: z.number().int().describe("이번에 취소한 수량"),
62
+ canceledQuantity: z.number().int().describe("취소 후 누적 취소 수량"),
63
+ refundAmount: z
64
+ .number()
65
+ .int()
66
+ .describe(
67
+ "환불액 (원). 수량 비율 상품 금액 + 배송비 환불 − 조건부 무료배송 미달 차감이다. " +
68
+ "결제사 환불 결과는 결제 내역(`GET /v1/payments/{paymentId}`)으로 확인한다",
69
+ ),
70
+ deliveryFeeRefundAmount: z.number().int().describe("환불액에 포함된 배송비 (원)"),
71
+ deliveryFeeChargeAmount: z
72
+ .number()
73
+ .int()
74
+ .describe("환불액에서 뺀 배송비 (원) — 조건부 무료배송 기준 미달 차감"),
75
+ testPayment: z
76
+ .boolean()
77
+ .describe("테스트 결제(샌드박스 결제) 주문인가. true면 실제로 돈이 오가지 않았다"),
78
+ });
79
+ export type OrderCanceledWebhookEventData = z.infer<typeof orderCanceledWebhookEventDataSchema>;
80
+
41
81
  export const claimWebhookEventDataSchema = z.object({
42
82
  claimId: z.string().describe("클레임 ID"),
43
83
  orderId: z.string().describe("주문 ID"),
@@ -125,11 +165,18 @@ export const orderWebhookEventSchema = z.object({
125
165
  "ORDER.DISPATCHED",
126
166
  "ORDER.DELIVERED",
127
167
  "ORDER.PURCHASE_DECIDED",
168
+ // 현재 발송하지 않음. 공개 계약 호환을 위해 값만 남겼다
128
169
  "ORDER.ADDRESS_CHANGE_REQUESTED",
129
170
  ]),
130
171
  data: orderWebhookEventDataSchema,
131
172
  });
132
173
 
174
+ export const orderCanceledWebhookEventSchema = z.object({
175
+ ...envelopeFields,
176
+ type: z.literal("ORDER.CANCELED"),
177
+ data: orderCanceledWebhookEventDataSchema,
178
+ });
179
+
133
180
  export const claimWebhookEventSchema = z.object({
134
181
  ...envelopeFields,
135
182
  type: z.enum([
@@ -163,6 +210,7 @@ export const productOutOfStockWebhookEventSchema = z.object({
163
210
  export const webhookEventSchema = z
164
211
  .discriminatedUnion("type", [
165
212
  orderWebhookEventSchema,
213
+ orderCanceledWebhookEventSchema,
166
214
  claimWebhookEventSchema,
167
215
  inquiryWebhookEventSchema,
168
216
  reviewWebhookEventSchema,