# Order Placed Notification This webhook is sent by Keeta to notify the developer's system that a new order has been placed. 1001 In the event that Keeta's platform sends a new order notification but does not receive an acknowledgment from the developer's system, Keeta will attempt to resend the notification up to a maximum of three additional times. Endpoint: POST orderPlacedNotification Version: v.1.0.0 ## Request fields (application/json): - `orderInfo` (object) This structure contains all the detailed information about the order (such as order delivery information, recipient information, cost information, etc.) - `orderInfo.baseOrder` (object) Contains foundational order details: customer requirements (e.g., utensils needed), estimated delivery time, and basic order metadata. - `orderInfo.baseOrder.orderViewId` (integer) The unique identifier for orders on Keeta platform. Example: 756823555555859 - `orderInfo.baseOrder.chooseTableware` (integer) This field indicates whether utensils are requested for an order. Example: 1 - `orderInfo.baseOrder.deliveryTime` (integer) This field represents Keeta calculated estimated time of arrival (ETA) for order delivery, expressed as milliseconds since Jan 1, 1970 (Unix epoch) Example: 1751444617821 - `orderInfo.baseOrder.ctime` (integer) This immutable timestamp records the exact moment when the customer successfully placed the order on Keeta platform, using Unix epoch time (milliseconds since 01/01/1970). Example: 1751442900803 - `orderInfo.baseOrder.estimatedDiningReadyUrgeTime` (integer) For self-pickup orders, this field stores the expected ready-for-collection time as a Unix millisecond timestamp. Example: 1751442900883 - `orderInfo.merchantOrder` (object) Order information acquired from order data model from merchant ends. - `orderInfo.merchantOrder.ctime` (integer) Records the exact timestamp (in Unix milliseconds since 01/01/1970) when the merchant first receives and creates the order in their system Example: 1751442900855 - `orderInfo.merchantOrder.seqNoStr` (string) A unique sequential identifier displayed to customers in the Keeta app as the official order reference number. This code will be displayed on order receipts. Example: "29332222" - `orderInfo.merchantOrder.status` (integer) This integer field represents the current state of a merchant's order in the fulfillment lifecycle. The system updates this value in real-time as the order progresses through different stages: Example: 40 - `orderInfo.merchantOrder.pushOrderResult` (integer) This field indicates whether the order has been successfully transmitted to the third party's system for processing. Example: 1 - `orderInfo.merchantOrder.orderViewId` (integer) The unique identifier for the order in Keeta platform. Example: 756823555555859 - `orderInfo.merchantOrder.shopId` (integer) Unique identifier of the Keeta store. Example: 611469 - `orderInfo.merchantOrder.shopName` (string) The official display name of the specific branch location. Example: "Adani Bar" - `orderInfo.merchantOrder.unconfirmedStatusTime` (integer) Timestamp when order entered "Pending Acceptance" state (Status=10) Example: 1751442911840 - `orderInfo.merchantOrder.confirmedStatusTime` (integer) Timestamp when merchant accepted order (Status=20) Example: 1751442900883 - `orderInfo.merchantOrder.readiedStatusTime` (integer) Timestamp when order was marked "Ready for Pickup" (Status=35) Example: 1751442900883 - `orderInfo.merchantOrder.completedStatusTime` (integer) Timestamp when order reached final completion (Status=40) Example: 1751442900883 - `orderInfo.merchantOrder.canceledStatusTime` (integer) Timestamp when order was cancelled (Status=50) - `orderInfo.merchantOrder.userId` (integer) Unique identifier of the customer who placed the order, linking to user profile and order history. Example: 10000011133443 - `orderInfo.merchantOrder.userGetMode` (string) This field specifies delivery method - : Requires courier dispatch - : Customer self-collection Example: "delivery" - `orderInfo.merchantOrder.estimatedDiningReadyUrgeTime` (integer) (For pickup orders only) The expected ready-for-collection timestamp. Example: 1751442900883 - `orderInfo.merchantOrderDeliveries` (array) Provides delivery personnel details, including rider name, contact number, etc. - `orderInfo.merchantOrderDeliveries.waybillId` (integer) Internal delivery tracking ID. It can be ignored by the third party developers. Example: 34524 - `orderInfo.merchantOrderDeliveries.subimitDeliveryResult` (integer) Indicates the success or failure of a delivery request submission: Example: 1 - `orderInfo.merchantOrderDeliveries.deliveryStatus` (integer) The current operational state of the delivery order in the fulfillment workflow, with the following possible values Example: 50 - `orderInfo.merchantOrderDeliveries.deliveryStatusTime` (integer) This field contains a Unix timestamp (in milliseconds since January 1, 1970) indicating when the current delivery status (deliveryStatus) was updated. Example: 1751444617911 - `orderInfo.merchantOrderDeliveries.arrivedStatusTime` (integer) This field provides a Unix timestamp recording the actual time when the order was successfully delivered to the customer. Example: 1751444617999 - `orderInfo.merchantOrderDeliveries.deliveryMode` (string) The deliveryMode field specifies the logistics method for order fulfillment: Example: "9001" - `orderInfo.merchantOrderDeliveries.courierName` (string) Displays the verified name of the rider assigned to the delivery. Example: "Jack Ma" - `orderInfo.merchantOrderDeliveries.courierPhone` (string) Provides the actual contact number of the Keeta Courier. Example: "+966540505598" - `orderInfo.merchantOrderDeliveries.courierPrivacyPhone` (string) Contains a temporary virtual phone number of Keeta Courier provided by Keeta privacy protection system. Example: "+96234232424" - `orderInfo.merchantOrderDeliveries.merchantOrderDeliveryHisList` (array) The merchantOrderDeliveryHisList field maintains a complete chronological record of all delivery status change, including change time and status. - `orderInfo.merchantOrderDeliveries.merchantOrderDeliveryHisList.opTime` (integer) This field contains a Unix timestamp (in milliseconds since January 1, 1970) indicating when the current delivery status (deliveryStatus) was updated. Example: 1751444617999 - `orderInfo.deliveryInfos` (array) Tracks real-time logistics data including remaining delivery time, live location updates, and ETA adjustments. - `orderInfo.deliveryInfos.estimatedTime` (integer) This field indicates the (in seconds) from the current time until the order is expected to reach its next status milestone - Current Time: 14:00:00 - Next Status ETA: 14:30:00 - estimatedTime = (30 minutes × 60 seconds) Example: 1800 - `orderInfo.deliveryInfos.estimatedAbsolutelyTime` (integer) This field indicates the when the next status transition should occur, expressed as milliseconds since Jan 1, 1970 (Unix epoch) - Next Status ETA: 2024-01-01 14:30:00 UTC - estimatedAbsolutelyTime = Example: 1751444617999 - `orderInfo.orderPromotionDtlList` (array) Lists all applied promotions, including coupon details, discount breakdowns, etc. - `orderInfo.orderPromotionDtlList.i18n` (object) Currency information - `orderInfo.orderPromotionDtlList.i18n.currency` (string) This field contains the currency code that indicates the monetary unit used for the transaction or display. Example: "SAR" - `orderInfo.orderPromotionDtlList.i18n.region` (string) This field specifies a geographic region code that represents a sub-national area, typically providing more granular location information than country-level. - `orderInfo.orderPromotionDtlList.i18n.country` (string) This field contains the country code that identifies the nation or territory associated with the transaction. - `orderInfo.orderPromotionDtlList.i18n.locale` (string) This field provides the language and region combination used for localization purposes. It determines the language for text displays and formatting conventions for dates/numbers. - `orderInfo.orderPromotionDtlList.type` (integer) Numeric code representing promotion type (reference typeName for mapping) Example: 4 - `orderInfo.orderPromotionDtlList.typeName` (string) Promotion type name. Common values: Example: "Delivery charge discount" - `orderInfo.orderPromotionDtlList.promotionRuleDesc` (string) Detailed terms and conditions of the promotion, which help merchants to understand how the promotion events work. Example: "delivery fee 8 off 0" - `orderInfo.orderPromotionDtlList.activityId` (string) Unique identifier for the promotion campaign Example: 5620053 - `orderInfo.orderPromotionDtlList.reduceFee` (integer) This field indicates the total discount amount applied to the order through the promotion activity. Example: 800 - `orderInfo.orderPromotionDtlList.sillAmount` (integer) Some promotional activities require the order amount to meet a minimum threshold before becoming eligible. This field specifies that minimum qualifying amount. When present, the order subtotal must exceed this value for the promotion to be applicable. - `orderInfo.orderPromotionDtlList.merchantActivityFee` (integer) This field shows the portion of the total discount amount (reduceFee) that is financially borne by the merchant. It represents the merchant contribution to the promotional discount, which will be deducted from the merchant settlement amount with the platform. Example: 400 - `orderInfo.orderPromotionDtlList.platformActivityFee` (integer) This field displays the portion of the total discount amount (reduceFee) that is subsidized by Keeta platform. It reflects the platform share of the promotional cost, which Keeta absorbs as part of its marketing initiatives or partnership agreements with merchants. Example: 400 - `orderInfo.orderPromotionDtlList.mainCategory` (integer) The field indicates the type of coupon used in the transaction through a numeric code value. This classification system helps identify the scope and applicability of each coupon. Example: 1 - `orderInfo.refundInfos` (array) Documents refund history, including initiation reasons, approval statuses, etc. - `orderInfo.refundInfos.applyType` (integer) The field is an integer value that identifies the specific type of refund request being processed. Each numeric code corresponds to a distinct refund initiation scenario, providing clear categorization of how and why the refund was triggered. Example: 4001 - `orderInfo.refundInfos.refundMoney` (string) This field specifies the that will be credited back to the customer. Example: "2600" - `orderInfo.refundInfos.i18n` (object) This field contains currency localization details for the refund amount. - `orderInfo.refundInfos.status` (integer) Example: 5002 - `orderInfo.refundInfos.refundType` (integer) This field indicates the method by which the refund amount will be returned to the customer. The possible values are: - `orderInfo.refundInfos.applyReason` (string) This field provides a description of the reason for the refund request. Example: "Item unavailable. Additional information: Insufficient dishes" - `orderInfo.refundInfos.opTime` (integer) This field contains a Unix timestamp (in milliseconds since January 1, 1970) that records when the refund request transitioned to its current status. This timestamp is essential for tracking the exact timing of status changes throughout the refund process. Example: 1744559452999 - `orderInfo.refundInfos.refundStatusHisList` (array) This field maintains a complete chronological history of all status changes for the refund request. - `orderInfo.refundInfos.refundStatusHisList.opReason` (string) This field documents the reason for the after-sales request status change. It may contain: - The customer's original refund reason when initiating the request (e.g., "Received wrong item") - The merchant's justification for approving/rejecting the request (e.g., "Verified delivery completion") - System-generated explanations for automatic status changes (e.g., "Auto-approved due to merchant timeout") - Keeta custom service team's decision rationale when intervening in disputes Example: "Item unavailable. Additional information: Insufficient dishes" - `orderInfo.refundInfos.refundStatusHisList.opTime` (integer) This field records the precise timestamp (in milliseconds since Unix epoch January 1, 1970 00:00:00 UTC) when the refund status transition occurred. This provides an auditable timeline of all state changes throughout the refund lifecycle. Example: 1751444617999 - `orderInfo.refundInfos.refundStatusHisList.toStatus` (integer) This field indicates the target status code that the refund request is transitioning to. The numeric values and their meanings exactly correspond to those defined in the RefundInfos.status field. Example: 2000 - `orderInfo.recipientInfo` (object) Encapsulates recipient details, including full name, phone number, and complete delivery address. - `orderInfo.recipientInfo.name` (string) This field contains the full name of the order recipient who will receive the delivery. Example: "Pony Ma" - `orderInfo.recipientInfo.phone` (string) This field provides the primary contact phone number of the order recipient. Example: "+966540505555" - `orderInfo.recipientInfo.interCode` (string) This field specifies the international dialing code for the recipient phone number (e.g., "+86" for China, "+1" for USA). This enables proper international calling format when needed. Example: "+96" - `orderInfo.recipientInfo.addressName` (string) This field contains the complete address information including administrative divisions and street information (e.g., "Beijing, Haidian District, Zhongguancun Street"). It provides the main location context for delivery. Example: "Sha Tian, HongKong District" - `orderInfo.recipientInfo.houseNumber` (string) This field provides the detailed building and unit number information to precisely identify the delivery location (e.g., "No. 27, Building 5, Unit 302"). Combined with addressName, it forms the complete delivery address. Example: "No. 27, Building 5, Unit 302" - `orderInfo.recipientInfo.point` (object) This object contains the precise geographic coordinates of the delivery location with Latitude and Longitude - `orderInfo.recipientInfo.point.latitude` (number) This field contains the north-south position of the delivery location in decimal degrees format, ranging from -90.0 to +90.0. Positive values indicate positions north of the equator, while negative values represent locations south of the equator. - `orderInfo.recipientInfo.point.longitude` (number) This field contains the east-west position of the delivery location in decimal degrees format, ranging from -180.0 to +180.0. Positive values indicate positions east of the prime meridian, while negative values represent locations west of the prime meridian. - `orderInfo.feeDtl` (object) A breakdown of payment components. For details, please check FAQ - `orderInfo.feeDtl.merchantFee` (object) This field contains the complete breakdown of all charges that the merchant should collect from the customer for the order. - `orderInfo.feeDtl.merchantFee.i18n` (object) This field contains currency information. - `orderInfo.feeDtl.merchantFee.productPrice` (integer) The total base price of all items in the order before any adjustments. Example: 4600 - `orderInfo.feeDtl.merchantFee.brokerage` (integer) The commission fee that Keeta platform will deduct from the merchant settlement, calculated as a percentage of productPrice according to the merchant contract terms. Example: 592 - `orderInfo.feeDtl.merchantFee.activityFee` (integer) The portion of promotional discounts that the merchant is responsible for absorbing. This amount is deducted from the merchant settlement. Example: 900 - `orderInfo.feeDtl.merchantFee.diffPrice` (integer) The minimum order value surcharge applied when an order subtotal (productPrice) falls below the store required minimum spend threshold. - `orderInfo.feeDtl.merchantFee.total` (integer) The merchant receivable amount after all adjustment. Calculated as: total = productPrice - brokerage - activityFee + diffPrice Example: 2976 - `orderInfo.feeDtl.merchantFee.platformServiceFee` (integer) A service fee charged by Keeta platform directly to the customer (not deducted from merchant funds). - `orderInfo.feeDtl.customerFee` (object) This field details the actual amount paid by the customer. - `orderInfo.feeDtl.customerFee.productPrice` (integer) The total price of all menu items before any discounts or promotions. Example: 4600 - `orderInfo.feeDtl.customerFee.shippingFee` (integer) The delivery fee charged for the order. Example: 1900 - `orderInfo.feeDtl.customerFee.platformFee` (integer) The service fee Keeta charges to users for using the platform. - `orderInfo.feeDtl.customerFee.discounts` (integer) The total amount discounted from the order through all applicable promotions, coupons, and special offers. Example: 1900 - `orderInfo.feeDtl.customerFee.tip` (integer) The optional gratuity amount given by the customer to the Keeta courier. - `orderInfo.feeDtl.customerFee.payTotal` (integer) The final amount actually paid by the customer. Calculated as: (productPrice) + (shippingFee) + (platformFee) + (diffPrice) - (discounts) + (tip) Example: 4600 - `orderInfo.rebates` (object) Records partial refunds (item-level reimbursements). Null for full-order refunds. - `orderInfo.rebates.rebatesInfos` (array) This field contains detailed information about all products in the order that are included in the refund process. - `orderInfo.rebates.rebatesInfos.rebatesProducts` (array) This field contains detailed information about all products included in the refund process for this order. Example: [{"spuId":11020674,"skuId":9968694,"count":1,"price":8925,"priceStr":"$89.25","originPrice":11900,"originPriceStr":"$119.00","name":"Sweet & Sour Pork Ribs","id":325842225,"currency":"HKD","groups":[{"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":{}}]}],"remark":"","picList":["http://img-ap-hongkong.mykeeta.net/sailorproduct/99903319d53a2fa1e704d2a2ea016cbb167763.jpg"],"spec":"Sweet & Sour Pork Ribs","priceWithoutGroup":{"amount":8925,"amountStr":"$89.25","originAmount":11900,"originAmountStr":"$119.00"},"spuOpenItemCode":"menu.89.category.225.product.1013090","skuOpenItemCode":"89.1013090","refundPrice":7957,"refundPriceStr":"$79.57","priceWithGroup":{"amount":8925,"amountStr":"$89.25","originAmount":11900,"originAmountStr":"$119.00"},"nameI18n":{"en":"Sweet & Sour Pork Ribs","default":"糖醋排骨","zh-HK":"糖醋排骨"},"specI18n":{"en":"Sweet & Sour Pork Ribs","default":"糖醋排骨","zh-HK":"糖醋排骨"}}] - `orderInfo.rebates.rebatesInfos.rebatesProducts.spuId` (integer) The unique ID of the SPU, generated by Keeta platform Example: 41669804 - `orderInfo.rebates.rebatesInfos.rebatesProducts.skuId` (integer) The unique ID of the SKU, generated by Keeta platform Example: 41009754 - `orderInfo.rebates.rebatesInfos.rebatesProducts.count` (integer) The quantity of this SKU purchased by the user Example: 2 - `orderInfo.rebates.rebatesInfos.rebatesProducts.price` (integer) The discounted price of this SKU (after applying all promotions) Example: 4600 - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceStr` (string) The discounted price with currency information (e.g., "SAR 24.00") Example: "SAR 46.00" - `orderInfo.rebates.rebatesInfos.rebatesProducts.orderViewId` (integer) The unique order ID generated by Keeta Example: 756823555555859 - `orderInfo.rebates.rebatesInfos.rebatesProducts.originPrice` (integer) The original price of this SKU before any discounts Example: 7156 - `orderInfo.rebates.rebatesInfos.rebatesProducts.originPriceStr` (string) The original price with currency information (e.g., "SAR 24.00") Example: "SAR 46.00" - `orderInfo.rebates.rebatesInfos.rebatesProducts.name` (string) The name of the product/SKU (usually same as SPU name) Example: "ULTIMATE-TUNA" - `orderInfo.rebates.rebatesInfos.rebatesProducts.id` (integer) The internal SKU ID used only within Keeta system (developers can ignore) Example: 368813062 - `orderInfo.rebates.rebatesInfos.rebatesProducts.currency` (string) The currency used for all price-related fields in this structure Example: "SAR" - `orderInfo.rebates.rebatesInfos.rebatesProducts.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":{}}]} - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.groupId` (integer) Unique identifier for the ChoiceGroup, generated by Keeta system Example: 4587525 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.groupName` (string) Display name of the ChoiceGroup Example: "Extras" - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.minNumber` (integer) Minimum required selections for this ChoiceGroup (enforced during ordering) - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.maxNumber` (integer) Maximum allowed selections for this ChoiceGroup (enforced during ordering) - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.status` (integer) Availability status of the ChoiceGroup Example: 1 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList` (array) Contains all available ChoiceGroupSkus (selectable items) within this ChoiceGroup - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.groupSkuId` (integer) Unique identifier for the ChoiceGroupSku, generated by Keeta system Example: 25703896 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.spuId` (integer) Unique identifier for the parent SPU, generated by Keeta system Example: 8544619 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.spuName` (string) Name of the Standard Product Unit (SPU) Example: "Without Extras" - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.price` (integer) Price of this ChoiceGroupSku - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.priceStr` (string) Formatted price with currency symbol (e.g., "SAR 24.00") Example: "-" - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.currency` (string) Currency code (e.g., "SAR" for Saudi Riyal) Example: "SAR" - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.groupSkuOpenItemCode` (string) Developer-provided external code mapping to groupSkuId (see Menu Development Guide) Example: "9992" - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.refundPrice` (integer) Refund amount for this ChoiceGroupSku in smallest currency unit - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.refundPriceStr` (string) Formatted refund amount with currency (e.g., "SAR 24.00") - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.spuNameI18n` (object) Localized SPU names (key=language code, value=translation) - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.groupSkuCount` (integer) Total purchased quantity (count × parent ProductDTO.count) Example: 1 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.shopProductGroupSkuList.count` (integer) Customer selected quantity of the ChoicegroupSku Example: 1 - `orderInfo.rebates.rebatesInfos.rebatesProducts.groups.groupOpenItemCode` (string) Developer-provided external reference code that maps to groupId (see Menu Development Guide) Example: "2345432" - `orderInfo.rebates.rebatesInfos.rebatesProducts.remark` (string) User remarks for this product (e.g., "I prefer it spicy") - `orderInfo.rebates.rebatesInfos.rebatesProducts.desc` (string) Description information about this SPU - `orderInfo.rebates.rebatesInfos.rebatesProducts.picList` (array) Image URLs for this SPU to help customers understand the product Example: ["https://img-ap-hongkong.mykeeta.net/sailorproduct/9c760595674b395e330cf94b0e34565311.jpg"] - `orderInfo.rebates.rebatesInfos.rebatesProducts.spec` (string) Specification information for this SKU (e.g., "Large" or "Small" for pizza sizes) - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup` (object) The unit price of the product without option groups - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.amount` (integer) Total discounted price for the product (discounted unit price × quantity) Example: 4600 - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.unitPrice` (integer) Discounted price per unit of the product Example: 2300 - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.amountStr` (string) Formatted total discounted price with currency symbol (e.g., "SAR 24.00") Example: "SAR 23.00" - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.originAmount` (integer) Original total price before discounts (original unit price × quantity) Example: 4600 - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.originUnitPrice` (integer) Original price per unit before any discounts Example: 2300 - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithoutGroup.originAmountStr` (string) Formatted original unit price with currency symbol (e.g., "SAR 24.00") Example: "SAR 23.00" - `orderInfo.rebates.rebatesInfos.rebatesProducts.spuOpenItemCode` (string) Developer-provided code that corresponds to Keeta spuId (see Menu Development Guide) Example: "p|c-1305444:p-10259676" - `orderInfo.rebates.rebatesInfos.rebatesProducts.skuOpenItemCode` (string) Developer-provided code that corresponds to Keeta skuId (see Menu Development Guide) Example: "p|c-1305444:p-10259676" - `orderInfo.rebates.rebatesInfos.rebatesProducts.refundPrice` (integer) The refund amount the user will receive if returning this product - `orderInfo.rebates.rebatesInfos.rebatesProducts.refundPriceStr` (string) The refund amount with currency information (e.g., "SAR 24.00") Example: "$ 3.00" - `orderInfo.rebates.rebatesInfos.rebatesProducts.priceWithGroup` (object) The price of the product including Choicegroupsku - `orderInfo.rebates.rebatesInfos.rebatesProducts.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吉列雞扒生菜軟包三文治"} - `orderInfo.rebates.rebatesInfos.rebatesProducts.descI18n` (object) Multi-language translations of the product description. (key=language code, value=translation) Example: {"zh-HK":"","default":""} - `orderInfo.rebates.rebatesInfos.rebatesProducts.specI18n` (object) Multi-language translations of the product specifications. (key=language code, value=translation) Example: {"zh-HK":"","default":""} - `orderInfo.rebates.rebatesInfos.customerRefundPriceStr` (string) This field represents the total refund amount that will be actually returned to the customer. Example: "$14.28" - `orderInfo.rebates.rebatesInfos.merchantRefundPriceStr` (string) This field represents the total refund amount to be borne by the merchant, calculated as the sum of three components: the refunded commission (merchantBrokerageStr), the merchant share of promotional discounts (merchantActivityFeeStr), and the base product price (merchantProductPriceStr). Example: "$14.28" - `orderInfo.rebates.rebatesInfos.merchantBrokerageStr` (string) This field represents the amount of commission fee that Keeta platform will refund back to the merchant. When Keeta originally processed the order, a commission fee was deducted from the merchant earnings. Example: "$1.07" - `orderInfo.rebates.rebatesInfos.merchantActivityFeeStr` (string) This field indicates the promotional discount amount that Keeta platform will refund back to the merchant. During the original order, any applied discounts were shared between Keeta and the merchant according to their agreement. With the customer now requesting a refund, Keeta must return the merchant contributed portion of these promotional discounts. Example: "$6.58" - `orderInfo.rebates.rebatesInfos.merchantProductPriceStr` (string) This field contains the product cost amount that the merchant needs to refund to the customer. It represents the base price of the items being refunded, excluding any platform fees or promotional discounts. Example: "$28.00" - `orderInfo.rebates.residueProducts` (array) This field contains information about products in the order that are not part of the refund. - `orderInfo.rebates.valuationRule` (string) This field displays the mathematical formula used to calculate the refund amount. Example: "Refund formula: [Item price / (Subtotal + Top-up to minimum)] × [Actual payment amount - Tips - Platform fee - Delivery fee]" - `orderInfo.rebates.applyOpType` (integer) This code identifies who initiated the partial refund request: - `orderInfo.rebates.rebatesPrintWarnSuffix` (string) After partial refund processing, this text appears at the end of the special notice section on the order receipt. - `orderInfo.rebates.rebatesPrintWarnTitle` (string) This field serves as the heading/title for the partial refund notification that appears on the order receipt. - `orderInfo.rebates.rebatesPrintWarnInfo` (string) This field contains the main explanatory text about the partial refund that appears on the order receipt. - `orderInfo.rebatesTag` (boolean) field explicitly identifies whether an order has undergone a . This flag enables quick differentiation between fully refunded orders and those with selective item reimbursements. When the value of rebatesTag equals True, it indicates that a partial item refund has been processed for this order. When the value of rebatesTag equals False, it means that no partial refunds exist for this order. - `orderInfo.products` (array) Details all ordered items, including dish names, quantities, customization notes, and pricing. - `orderInfo.bigOrderTag` (boolean) Identifies large orders requiring split delivery: When bigOrderTag = True, the order is a "Large Order" When bigOrderTag = False, the order is a standard single-delivery order : Orders exceeding logistical capacity thresholds, necessitating division into sub-orders. - `orderInfo.subOrderInfoList` (array) This field contains an array of sub-order objects that collectively represent the disaggregated components of a - `orderInfo.subOrderInfoList.merchantSubOrder` (object) Contains basic sub-order information(see MerchantSubOrderDTO section for details) - `orderInfo.subOrderInfoList.merchantSubOrder.merchantSubOrderId` (integer) Unique identifier for the suborder - `orderInfo.subOrderInfoList.merchantSubOrder.orderViewId` (integer) Unique ID of the main/parent order from which this suborder was split - `orderInfo.subOrderInfoList.merchantSubOrder.shopId` (integer) Unique store ID generated by Keeta system - `orderInfo.subOrderInfoList.merchantSubOrder.userId` (integer) Unique user ID generated by Keeta system - `orderInfo.subOrderInfoList.merchantSubOrder.subOrderSeq` (string) Suborder sequence number printed on receipts (Format: #MainOrderID-SuborderIndex/TotalSuborders, e.g., "#9527-1/3" means main order 9527, suborder 1 of 3) - `orderInfo.subOrderInfoList.merchantSubOrder.extra` (string) Additional suborder metadata containing: - Main order ID - Suborder sequence index - Total suborder count Example: "#9527-1/3" shows main order 9527, suborder 1 of 3 - `orderInfo.subOrderInfoList.merchantSubOrder.ctime` (integer) Suborder creation time as Unix timestamp (milliseconds since January 1, 1970) - `orderInfo.subOrderInfoList.merchantSubOrder.utime` (integer) Suborder update time as Unix timestamp. Typically equals ctime unless modified. - `orderInfo.subOrderInfoList.products` (array) Lists all products included in this sub-order (see ProductDTO section for details) - `orderInfo.subOrderInfoList.merchantOrderDeliveries` (array) Contains all delivery-related information for this sub-order (see MerchantOrderDeliveryDTO section) - `orderInfo.subOrderInfoList.deliveryInfos` (array) Provides real-time delivery tracking information for the sub-order (see DeliveryInfoDTO section) - `orderInfo.subOrderInfoList.partRefund` (object) Contains refund details specific to this sub-order (see PartRefundDTO section) - `orderInfo.subOrderInfoList.partRefund.products` (array) Contains detailed information about all products in the suborder that are included in the refund process - `orderInfo.subOrderInfoList.partRefund.residueProducts` (array) Contains detailed information about products in the suborder that are not part of the refund ## 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"