# Partial Product Refund Request Status Change Notification This webhook is designed to notify your system when the status of a partial product refund request within an order changes on the Keeta platform. 1007 Endpoint: POST partialProductRefundStatusChangeNotification Version: v.1.0.0 ## Request fields (application/json): - `orderViewId` (integer) Unique identifier for orders on Keeta platform Example: 756823555555859 - `shopId` (integer) Unique identifier of the Keeta store Example: 466663 - `status` (integer) Refund status code Example: 5001 - `afterSaleOrderId` (integer) Unique identifier for the after-sales application Example: 833441825390895 - `isAppeal` (integer) Indicates if this is an appealed refund request - `pictures` (string) JSON-formatted array string of image URLs uploaded by customers Example: "https://img-ap-hongkong.mykeeta.net/sailorproduct/9c760595674b344560cf94b0e5068b19511.jpg" - `money` (integer) Refund amount Example: 3620 - `currency` (string) Currency code for the refund amount Example: "HKD" - `applyOpType` (integer) Code representing who initiated the refund request Example: 10 - `applyReason` (string) Original reason for refund request Example: "The quantity of delivered goods has decreased; Additional information: No egg tarts available" - `handleOpType` (integer) Code representing who handled the refund request Example: 20 - `handleReason` (string) Reason for status change Example: "Merchant agree refund" - `opTime` (integer) Time when the event occurred, specified as milliseconds since Jan 1, 1970 (Unix epoch) Example: 1751448108144 - `refundProducts` (array) This field contains detailed information about all the products that are going to be refunded - `refundProducts.spuId` (integer) The unique ID of the SPU, generated by Keeta platform Example: 41669804 - `refundProducts.skuId` (integer) The unique ID of the SKU, generated by Keeta platform Example: 41009754 - `refundProducts.count` (integer) The quantity of this SKU purchased by the user Example: 2 - `refundProducts.price` (integer) The discounted price of this SKU (after applying all promotions) Example: 4600 - `refundProducts.priceStr` (string) The discounted price with currency information (e.g., "SAR 24.00") Example: "SAR 46.00" - `refundProducts.orderViewId` (integer) The unique order ID generated by Keeta Example: 756823555555859 - `refundProducts.originPrice` (integer) The original price of this SKU before any discounts Example: 7156 - `refundProducts.originPriceStr` (string) The original price with currency information (e.g., "SAR 24.00") Example: "SAR 46.00" - `refundProducts.name` (string) The name of the product/SKU (usually same as SPU name) Example: "ULTIMATE-TUNA" - `refundProducts.id` (integer) The internal SKU ID used only within Keeta system (developers can ignore) Example: 368813062 - `refundProducts.currency` (string) The currency used for all price-related fields in this structure Example: "SAR" - `refundProducts.groups` (array) All option group information for this SKU Example: {"groupId":4709910,"groupName":"AmoHamza Zawrag Variants","minNumber":0,"maxNumber":0,"status":0,"groupOpenItemCode":"VGsku-00035","shopProductGroupSkuList":[{"groupSkuId":26518586,"spuId":9979492,"spuName":"Fried","price":0,"priceStr":"--","currency":"SAR","spuPvList":[],"groupSkuOpenItemCode":"sku-00036-#V0#-","spuNameI18n":{"ar":"مقلي","en":"Fried","default":"Fried"},"groupSkuCount":1,"count":1,"groupSkuExtra":{}}]} - `refundProducts.groups.groupId` (integer) Unique identifier for the ChoiceGroup, generated by Keeta system Example: 4587525 - `refundProducts.groups.groupName` (string) Display name of the ChoiceGroup Example: "Extras" - `refundProducts.groups.minNumber` (integer) Minimum required selections for this ChoiceGroup (enforced during ordering) - `refundProducts.groups.maxNumber` (integer) Maximum allowed selections for this ChoiceGroup (enforced during ordering) - `refundProducts.groups.status` (integer) Availability status of the ChoiceGroup Example: 1 - `refundProducts.groups.shopProductGroupSkuList` (array) Contains all available ChoiceGroupSkus (selectable items) within this ChoiceGroup - `refundProducts.groups.shopProductGroupSkuList.groupSkuId` (integer) Unique identifier for the ChoiceGroupSku, generated by Keeta system Example: 25703896 - `refundProducts.groups.shopProductGroupSkuList.spuId` (integer) Unique identifier for the parent SPU, generated by Keeta system Example: 8544619 - `refundProducts.groups.shopProductGroupSkuList.spuName` (string) Name of the Standard Product Unit (SPU) Example: "Without Extras" - `refundProducts.groups.shopProductGroupSkuList.price` (integer) Price of this ChoiceGroupSku - `refundProducts.groups.shopProductGroupSkuList.priceStr` (string) Formatted price with currency symbol (e.g., "SAR 24.00") Example: "-" - `refundProducts.groups.shopProductGroupSkuList.currency` (string) Currency code (e.g., "SAR" for Saudi Riyal) Example: "SAR" - `refundProducts.groups.shopProductGroupSkuList.groupSkuOpenItemCode` (string) Developer-provided external code mapping to groupSkuId (see Menu Development Guide) Example: "9992" - `refundProducts.groups.shopProductGroupSkuList.refundPrice` (integer) Refund amount for this ChoiceGroupSku in smallest currency unit - `refundProducts.groups.shopProductGroupSkuList.refundPriceStr` (string) Formatted refund amount with currency (e.g., "SAR 24.00") - `refundProducts.groups.shopProductGroupSkuList.spuNameI18n` (object) Localized SPU names (key=language code, value=translation) - `refundProducts.groups.shopProductGroupSkuList.groupSkuCount` (integer) Total purchased quantity (count × parent ProductDTO.count) Example: 1 - `refundProducts.groups.shopProductGroupSkuList.count` (integer) Customer selected quantity of the ChoicegroupSku Example: 1 - `refundProducts.groups.groupOpenItemCode` (string) Developer-provided external reference code that maps to groupId (see Menu Development Guide) Example: "2345432" - `refundProducts.remark` (string) User remarks for this product (e.g., "I prefer it spicy") - `refundProducts.desc` (string) Description information about this SPU - `refundProducts.picList` (array) Image URLs for this SPU to help customers understand the product Example: ["https://img-ap-hongkong.mykeeta.net/sailorproduct/9c760595674b395e330cf94b0e34565311.jpg"] - `refundProducts.spec` (string) Specification information for this SKU (e.g., "Large" or "Small" for pizza sizes) - `refundProducts.priceWithoutGroup` (object) The unit price of the product without option groups - `refundProducts.priceWithoutGroup.amount` (integer) Total discounted price for the product (discounted unit price × quantity) Example: 4600 - `refundProducts.priceWithoutGroup.unitPrice` (integer) Discounted price per unit of the product Example: 2300 - `refundProducts.priceWithoutGroup.amountStr` (string) Formatted total discounted price with currency symbol (e.g., "SAR 24.00") Example: "SAR 23.00" - `refundProducts.priceWithoutGroup.originAmount` (integer) Original total price before discounts (original unit price × quantity) Example: 4600 - `refundProducts.priceWithoutGroup.originUnitPrice` (integer) Original price per unit before any discounts Example: 2300 - `refundProducts.priceWithoutGroup.originAmountStr` (string) Formatted original unit price with currency symbol (e.g., "SAR 24.00") Example: "SAR 23.00" - `refundProducts.spuOpenItemCode` (string) Developer-provided code that corresponds to Keeta spuId (see Menu Development Guide) Example: "p|c-1305444:p-10259676" - `refundProducts.skuOpenItemCode` (string) Developer-provided code that corresponds to Keeta skuId (see Menu Development Guide) Example: "p|c-1305444:p-10259676" - `refundProducts.refundPrice` (integer) The refund amount the user will receive if returning this product - `refundProducts.refundPriceStr` (string) The refund amount with currency information (e.g., "SAR 24.00") Example: "$ 3.00" - `refundProducts.priceWithGroup` (object) The price of the product including Choicegroupsku - `refundProducts.nameI18n` (object) Multi-language translations of the product name. (key=language code, value=translation) Example: {"en":"7-SELECT Chicken Cutlet &Lettuce Sandwich 148g","default":"7-SELECT吉列雞扒生菜軟包三文治","zh-HK":"7-SELECT吉列雞扒生菜軟包三文治"} - `refundProducts.descI18n` (object) Multi-language translations of the product description. (key=language code, value=translation) Example: {"zh-HK":"","default":""} - `refundProducts.specI18n` (object) Multi-language translations of the product specifications. (key=language code, value=translation) Example: {"zh-HK":"","default":""} ## Response 200 fields (application/json): - `code` (integer, required) A numeric status identifier indicating the result of the interface call, used to determine whether the operation executed successfully. - `message` (string, required) Text description corresponding to the status code, explaining the operation result or error cause to users. Example: "Success"