{"items":[{"type":"link","label":"Keeta Basic API Reference","link":"/apis/grocery/webhook","routeSlug":"/apis/grocery/webhook","content":{"contentType":"overview","meta":{"name":"Keeta Basic API Reference"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"webhook.json","url":"/_bundle/apis/@grocery/webhook.json?download"},{"kind":"download","label":"webhook.yaml","url":"/_bundle/apis/@grocery/webhook.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[{"kind":"email","title":"Keeta Developer Website","email":"https://developers.mykeeta.com/","label":"https://developers.mykeeta.com/","withCopyButton":true,"copyContent":"https://developers.mykeeta.com/"}]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Keeta Basic API Reference (v.1.0.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":"This API provides basic functionality for Keeta platform integration, including webhook configuration, authorization management, and OAuth token operations."}],"sectionId":"/apis/grocery/webhook"}],"sectionId":"/apis/grocery/webhook"}]}]}},{"label":"Merchant Authorization Change Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/grocery/webhook/other/receiveauthorizationchangeevent","routeSlug":"/apis/grocery/webhook/other/receiveauthorizationchangeevent","metadata":{"seo":{"title":"Merchant Authorization Change Notification","description":"Event ID: 9001"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"receiveAuthorizationChangeEvent","name":"Merchant Authorization Change Notification","isWebhook":false,"pointer":"/paths/~1authorization~1change~1notification/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Merchant Authorization Change Notification","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Event ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": 9001"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This webhook is sent by Keeta to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"notify the third-party system when a merchant's authorization changes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Notes:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The third-party system could choose to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"expose this endpoint and process the notification"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/AuthorizedResourceResponse","exampleIds":["paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"]}},"schemaId":"components/schemas/AuthorizedResourceResponse","exampleIds":["paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1authorization~1change~1notification/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/authorization/change/notification","servers":[{"url":"https://{software_service_domain}/api/open/grocery","variables":{"software_service_domain":{"default":"example.com"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/AuthorizedResourceResponse","exampleIds":["paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"]}},"responseCodes":["204","400","403","404","503"],"pointer":"/authorization/change/notification","href":"other/receiveauthorizationchangeevent","openApiOperationId":"receiveAuthorizationChangeEvent","summary":"Merchant Authorization Change Notification"},"definitionSamples":[{"lang":"cURL","source":"curl -i -X POST \\\n  'https://{software_service_domain}/api/open/grocery/authorization/change/notification' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"opType\": 0,\n        \"chainId\": \"4323\",\n        \"chainName\": \"GUI JI\",\n        \"authorizedVendors\": [\n          {\n            \"vendorId\": \"145541\",\n            \"vendorName\": \"Downtown Vendor\",\n            \"address\": \"123 Main Street\",\n            \"longitude\": \"114.057868\",\n            \"latitude\": \"22.543099\"\n          }\n        ]\n      }'"}],"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{software_service_domain}/api/open/grocery","variables":{"software_service_domain":{"default":"example.com"}}}],"schemaId":"components/schemas/AuthorizedResourceResponse","exampleIds":["paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/AuthorizedResourceResponse","exampleIds":["paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"Request executed successfully. No content is returned."},{"code":"400","description":"The callback request was invalid.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example"]},{"code":"403","description":"The authenticated request violated an authorization rule.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example"]},{"code":"404","description":"The requested callback resource was not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example"]},{"code":"503","description":"The callback service is unavailable, under maintenance, or outside its operating window.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example"]}],"pointer":"/paths/~1authorization~1change~1notification/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"204"},{"code":"400","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example"]}}},{"code":"403","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example"]}}},{"code":"404","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example"]}}},{"code":"503","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/other/receiveauthorizationchangeevent"}],"panels":[]}]},"httpPath":"/authorization/change/notification"},{"label":"Order Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/grocery/webhook/other/webhookorder","routeSlug":"/apis/grocery/webhook/other/webhookorder","metadata":{"seo":{"title":"Order Notification","description":"Event ID: 6001"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"webhookOrder","name":"Order Notification","isWebhook":false,"pointer":"/paths/~1orderNotification/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order Notification","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Event ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": 6001"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta sends this webhook when a new order is created or when the order"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"status or final item facts change."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payload has the same shape as the Order Details response and always"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"represents the latest complete order."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Possible order status values are:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"RECEIVED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The order has been accepted and is waiting for fulfillment processing."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PICKED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Picking is complete. Service providers must process this"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"status and refresh the final picked item facts."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"READY_FOR_PICKUP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Packing is complete and the order is available"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for rider pickup. Processing this status is optional for service"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"providers."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DISPATCHED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The order has left the store."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The order has been delivered and is complete."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The order was cancelled."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Notes:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" In the event that Keeta's platform sends a new order"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"notification but does not receive an acknowledgment from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"developer's system, Keeta will attempt to resend the notification up"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to a maximum of three additional times."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"⚠️ IMPORTANT: Amount Availability and Finality"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The current Grocery Order payload does not expose a dedicated merchant"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"settlement breakdown. Where merchant settlement amounts are made"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"available, they may be calculated asynchronously and may therefore be"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"absent, null, or incomplete when an order notification is first"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"received. Service providers must not use merchant settlement amounts as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"hard dependencies in order-processing logic. If settlement data is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"missing or incomplete, re-query the Order Details endpoint after a short"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delay. Reconciliation, invoicing, and other downstream workflows must"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"tolerate the temporary unavailability of settlement amounts without"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"blocking overall order processing."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The fields under "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"payment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" represent customer payment amounts, not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"merchant settlement amounts, and are not subject to settlement"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"calculation delays. These values may still change while picking or item"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"modifications are in progress. After picking is complete, the customer"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"payment amounts are final and will not change."},"children":[]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/Order"}},"schemaId":"components/schemas/Order","pointer":"/paths/~1orderNotification/post/requestBody","description":"Latest complete order. This structure contains all the detailed information about the order (such as order delivery information, recipient information, cost information, etc.)"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/orderNotification","servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/Order"}},"responseCodes":["2XX","4XX","5XX"],"pointer":"/orderNotification","href":"other/webhookorder","openApiOperationId":"webhookOrder","summary":"Order Notification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}],"schemaId":"components/schemas/Order","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/Order"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"2XX","description":"Webhook received successfully. No response body is required."},{"code":"4XX","description":"The webhook was rejected and may be retried."},{"code":"5XX","description":"The webhook could not be processed and may be retried."}],"pointer":"/paths/~1orderNotification/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/other/webhookorder"}],"panels":[]}]},"httpPath":"/orderNotification"},{"label":"Promotion Offline Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/grocery/webhook/other/receivepromotionofflineevent","routeSlug":"/apis/grocery/webhook/other/receivepromotionofflineevent","metadata":{"seo":{"title":"Promotion Offline Notification","description":"Event ID: 7001"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"receivePromotionOfflineEvent","name":"Promotion Offline Notification","isWebhook":false,"pointer":"/paths/~1promotion~1offline~1notification/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Promotion Offline Notification","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Event ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": 7001"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This webhook is sent by Keeta to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"notify the third-party system when an existing promotion is taken offline"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Notes:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Product price changes, product removals, or promotion conflicts and overrides may cause an existing promotion to be taken offline."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"vendorId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field identifies the vendor associated with the offline promotion."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"detail"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field contains SKU-level promotion offline details."},"children":[]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PromotionOfflineEventRequest","exampleIds":["paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"]}},"schemaId":"components/schemas/PromotionOfflineEventRequest","exampleIds":["paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1promotion~1offline~1notification/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/promotion/offline/notification","servers":[{"url":"https://{domain_of_the_software_service}/api/open/grocery","variables":{"domain_of_the_software_service":{"default":"example.com"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/PromotionOfflineEventRequest","exampleIds":["paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"]}},"responseCodes":["204","400","403","404","503"],"pointer":"/promotion/offline/notification","href":"other/receivepromotionofflineevent","openApiOperationId":"receivePromotionOfflineEvent","summary":"Promotion Offline Notification"},"definitionSamples":[{"lang":"cURL","source":"curl -i -X POST \\\n  'https://{domain_of_the_software_service}/api/open/grocery/promotion/offline/notification' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"vendorId\": \"id_12345\",\n        \"detail\": [\n          {\n            \"skuId\": \"sku1\",\n            \"discountValue\": 10,\n            \"originalPrice\": 15,\n            \"offlineTime\": \"2022-02-07T16:03:06Z\",\n            \"offlineReason\": \"The item has been removed.\"\n          }\n        ]\n      }'"}],"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{domain_of_the_software_service}/api/open/grocery","variables":{"domain_of_the_software_service":{"default":"example.com"}}}],"schemaId":"components/schemas/PromotionOfflineEventRequest","exampleIds":["paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PromotionOfflineEventRequest","exampleIds":["paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"Request executed successfully. No content is returned."},{"code":"400","description":"The callback request was invalid.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example"]},{"code":"403","description":"The authenticated request violated an authorization rule.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example"]},{"code":"404","description":"The requested callback resource was not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example"]},{"code":"503","description":"The callback service is unavailable, under maintenance, or outside its operating window.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example"]}},"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example"]}],"pointer":"/paths/~1promotion~1offline~1notification/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"204"},{"code":"400","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example"]}}},{"code":"403","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example"]}}},{"code":"404","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example"]}}},{"code":"503","schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CallbackErrorResponse","exampleIds":["paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/other/receivepromotionofflineevent"}],"panels":[]}]},"httpPath":"/promotion/offline/notification"},{"label":"Asynchronization Task Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/grocery/webhook/other/asynchronizationtaskwebhook","routeSlug":"/apis/grocery/webhook/other/asynchronizationtaskwebhook","metadata":{"seo":{"title":"Asynchronization Task Notification","description":"Event ID: 8001"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"asynchronizationTaskWebhook","name":"Asynchronization Task Notification","isWebhook":false,"pointer":"/paths/~1asynchronization~1task~1notification/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Asynchronization Task Notification","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Event ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": 8001"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When Keeta's platform receives an asynchronous request, it creates an internal task for processing. Upon task completion (success or failure), Keeta will notify the vendor via this webhook."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Notes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"jobStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" values:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"QUEUED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The job has not started."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INPROGRESS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The job is being processed."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Processing has finished."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FAILED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": the job is failed to excute."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"jobStatus = COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the result will contain the task execution details, including vendors and SKUs that failed to create the promotion activity."},"children":[]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_137"}},"schemaId":"schema_137","pointer":"/paths/~1asynchronization~1task~1notification/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/asynchronization/task/notification","servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"schema_137"}},"responseCodes":["200","4xx","5xx"],"pointer":"/asynchronization/task/notification","href":"other/asynchronizationtaskwebhook","openApiOperationId":"asynchronizationTaskWebhook","summary":"Asynchronization Task Notification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}],"schemaId":"schema_137","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_137"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Optimal http response status"},{"code":"4xx","description":"Webhook call will be retried up to 3 times"},{"code":"5xx","description":"Webhook call will be retried up to 3 times"}],"pointer":"/paths/~1asynchronization~1task~1notification/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/other/asynchronizationtaskwebhook"}],"panels":[]}]},"httpPath":"/asynchronization/task/notification"}],"store":{"schemaStore":{"components/schemas/PromotionOfflineEventRequest":{"id":"components/schemas/PromotionOfflineEventRequest","kind":"json-schema","title":"PromotionOfflineEventRequest","data":{"type":"object","required":["vendorId","detail"],"properties":{"vendorId":{"type":"string","example":"id_12345","description":"Unique identifier of the vendor associated with the offline promotion."},"detail":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/PromotionOfflineDetail"},"description":"SKU-level details for promotions that were taken offline."}}}},"components/schemas/PromotionOfflineDetail":{"id":"components/schemas/PromotionOfflineDetail","kind":"json-schema","title":"PromotionOfflineDetail","data":{"type":"object","required":["skuId","discountValue","originalPrice","offlineTime","offlineReason"],"properties":{"skuId":{"type":"string","example":"sku1","description":"Unique identifier of the SKU whose promotion was taken offline."},"discountValue":{"type":"number","format":"double","example":10,"description":"Discount value of the promotion before it was taken offline."},"originalPrice":{"type":"number","format":"double","example":15,"description":"Original price of the SKU."},"offlineTime":{"type":"string","format":"date-time","example":"2022-02-07T16:03:06Z","description":"Time when the promotion was taken offline, in UTC using ISO 8601 format."},"offlineReason":{"type":"string","example":"The item has been removed.","description":"Reason why the promotion was taken offline."}}}},"components/schemas/PaginatedOrders":{"id":"components/schemas/PaginatedOrders","kind":"json-schema","title":"PaginatedOrders","data":{"type":"object","required":["orders","pageNumber","pageSize","totalPages"],"properties":{"orders":{"type":"array","description":"Orders on the current page.","items":{"$ref":"#/components/schemas/Order"},"example":[]},"pageNumber":{"type":"integer","minimum":1,"description":"Current page number.","example":1},"pageSize":{"type":"integer","minimum":1,"maximum":500,"description":"Number of orders requested per page.","example":20},"totalPages":{"type":"integer","minimum":0,"description":"Total number of pages.","example":3}}}},"components/schemas/Order":{"id":"components/schemas/Order","kind":"json-schema","title":"Order","data":{"type":"object","description":"Latest complete grocery order.","required":["acceptedFor","createdAt","updatedAt","comment","orderCode","orderId","orderType","client","customer","items","payment","status","transportType"],"properties":{"acceptedFor":{"type":"string","format":"date-time","nullable":true,"description":"Time stamp in UTC which indicates the estimated delivery time.","example":"2022-02-07T16:03:06Z"},"createdAt":{"type":"string","format":"date-time","description":"Time when the order was created, in UTC.","example":"2024-09-30T10:00:36.947Z"},"updatedAt":{"type":"string","format":"date-time","description":"Time when the order was last updated, in UTC.","example":"2024-09-30T10:05:36.947Z"},"comment":{"type":"string","description":"Comment or remark related to the order.","example":"My first order"},"orderCode":{"type":"string","description":"Short code used when handing the order to a rider.","example":"29332222"},"orderId":{"type":"string","description":"Unique Keeta order identifier.","example":"756823555555859"},"orderType":{"type":"string","description":"How the customer receives the order.","enum":["DELIVERY","PICKUP"],"example":"DELIVERY"},"cancellation":{"allOf":[{"$ref":"#/components/schemas/Cancellation"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Present only when the order status is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"client":{"$ref":"#/components/schemas/Client"},"customer":{"$ref":"#/components/schemas/Customer"},"items":{"type":"array","minItems":1,"description":"Latest order item facts available from Keeta.","items":{"$ref":"#/components/schemas/OrderItem"}},"payment":{"$ref":"#/components/schemas/Payment"},"status":{"type":"string","description":"Current order lifecycle status.","enum":["RECEIVED","PICKED","READY_FOR_PICKUP","DISPATCHED","DELIVERED","CANCELED"],"example":"RECEIVED"},"transportType":{"type":"string","description":"Party responsible for delivering the order.","enum":["VENDOR_DELIVERY","LOGISTICS_DELIVERY"],"example":"LOGISTICS_DELIVERY"}},"example":{"acceptedFor":"2022-02-07T16:03:06Z","createdAt":"2024-09-30T10:00:36.947Z","updatedAt":"2024-09-30T10:05:36.947Z","comment":"My first order","orderCode":"29332222","orderId":"756823555555859","orderType":"DELIVERY","cancellation":{"cancelledBy":"CUSTOMER","postPickedUp":false,"code":"500001","reason":"ITEM_UNAVAILABLE"},"client":{"chainId":"1297211","countryCode":"SA","name":"POS Test Vendor","vendorId":"611469","externalVendorId":"123456"},"customer":{"id":"10000030108064","deliveryAddress":{"apartment":"Big Ap******","block":"Bcasca******","building":"******","city":"Berlin","company":"Keeta","country":"SA","floor":"12","formattedAddress":"","instructions":"Leave at the reception","latitude":0,"longitude":0,"number":"******","street":"Evergreen Street","zipcode":"28001"},"name":"***","phoneNumber":"***"},"items":[{"id":"1261779167","barcode":["6281100875093"],"name":"Test product","originalPricing":{"pricingType":"UNIT","quantity":1,"totalPrice":39.75,"unitPrice":39.75,"listPrice":39.75,"vatPercent":0,"weight":0},"pricing":{"pricingType":"UNIT","quantity":1,"totalPrice":39.75,"unitPrice":39.75,"vatPercent":0,"weight":0},"sku":101049,"imageUrls":["https://images.mtkeeta.io/image.jpg"],"status":"IN_CART","promotion":[{"name":"Drinks 0.5l and 1l on sale","type":"STRIKETHROUGH","discountAmount":2.25,"sponsorships":[{"sponsor":"VENDOR","amount":2.25}]}]}],"payment":{"additionalFees":{"tip":1,"droneServiceFee":0.5},"deliveryFee":1,"differenceToMinimum":0,"discount":-1,"discounts":[{"name":"First discount","value":-1}],"orderTotal":41.75,"serviceFee":0,"subTotal":39.75,"totalTaxes":0,"type":"PAID"},"status":"RECEIVED","transportType":"LOGISTICS_DELIVERY"}}},"components/schemas/Cancellation":{"id":"components/schemas/Cancellation","kind":"json-schema","title":"Cancellation","data":{"type":"object","required":["cancelledBy","postPickedUp","code"],"properties":{"cancelledBy":{"type":"string","description":"Party responsible for the cancellation.","enum":["CUSTOMER","VENDOR","PLATFORM"],"example":"CUSTOMER"},"postPickedUp":{"type":"boolean","description":"Whether the cancellation occurred after rider pickup.","example":false},"code":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Code indicating why the order was cancelled. This is the string"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"representation of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cancelCode"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" used by the Order Cancellation API."},"children":[]}]}]}],"enum":["500000","500001","500002","500003"],"x-enumDescriptions":{"500000":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Other unspecified reasons; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reason"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provides the specific cancellation explanation."},"children":[]}]}]}],"500001":"Insufficient ingredients.","500002":"Store temporarily closed.","500003":"Staff shortage."},"example":"500001"},"reason":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional detailed cancellation reason mapped from the Keeta cancellation record. When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"500000"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field provides the specific cancellation explanation."},"children":[]}]}]}],"example":"ITEM_UNAVAILABLE"}}}},"components/schemas/Client":{"id":"components/schemas/Client","kind":"json-schema","title":"Client","data":{"type":"object","description":"Chain and vendor information associated with the order.","required":["chainId","countryCode","name","vendorId"],"properties":{"chainId":{"type":"string","description":"Unique chain or brand identifier.","example":"1297211"},"countryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Uppercase ISO 3166-1 alpha-2 market code, such as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SA"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KW"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"QA"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"BH"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"SA"},"name":{"type":"string","description":"Vendor display name.","example":"POS Test Vendor"},"vendorId":{"type":"string","description":"Unique Keeta platform vendor identifier.","example":"611469"},"externalVendorId":{"type":"string","description":"Merchant's internal vendor identifier. Present only when the merchant has maintained a vendor mapping in Keeta.","example":"123456"}}}},"components/schemas/Customer":{"id":"components/schemas/Customer","kind":"json-schema","title":"Customer","data":{"type":"object","description":"Customer and delivery destination information.","required":["id","deliveryAddress","name","phoneNumber"],"properties":{"id":{"type":"string","description":"Internal Keeta customer identifier.","example":"10000030108064"},"deliveryAddress":{"$ref":"#/components/schemas/DeliveryAddress"},"name":{"type":"string","description":"Masked customer name.","example":"***"},"phoneNumber":{"type":"string","description":"Masked customer phone number, including country code when available.","example":"***"}}}},"components/schemas/DeliveryAddress":{"id":"components/schemas/DeliveryAddress","kind":"json-schema","title":"DeliveryAddress","data":{"type":"object","description":"Structured customer delivery address.","required":["formattedAddress","latitude","longitude"],"properties":{"apartment":{"type":"string","description":"Masked apartment or unit number.","example":"Big Ap******"},"block":{"type":"string","description":"Masked block, district, phase, or estate information.","example":"Bcasca******"},"building":{"type":"string","description":"Masked building name.","example":"******"},"city":{"type":"string","description":"City name.","example":"Berlin"},"company":{"type":"string","description":"Company or organization at the address.","example":"Keeta"},"country":{"type":"string","description":"Market or country code.","example":"SA"},"floor":{"type":"string","description":"Floor or unit information.","example":"12"},"formattedAddress":{"type":"string","description":"Human-readable full address.","example":""},"instructions":{"type":"string","description":"Delivery instructions supplied with the address.","example":"Leave at the reception"},"latitude":{"type":"number","format":"double","minimum":-90,"maximum":90,"description":"Delivery latitude.","example":0},"longitude":{"type":"number","format":"double","minimum":-180,"maximum":180,"description":"Delivery longitude.","example":0},"number":{"type":"string","description":"Masked street number.","example":"******"},"street":{"type":"string","description":"Street name.","example":"Evergreen Street"},"zipcode":{"type":"string","description":"Postal code.","example":"28001"}}}},"components/schemas/OrderItem":{"id":"components/schemas/OrderItem","kind":"json-schema","title":"OrderItem","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order item, pricing, replacement, image, status, and promotion"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"information."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replacement relationships use a child-to-parent reference. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"replacement item carries "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", which points to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"original item it replaces. The original item remains in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"items"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"status "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REPLACED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", while each accepted replacement is represented as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"separate item with status "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"IN_CART"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One original item can therefore be replaced by multiple items without"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"using an array: each replacement item uses the same original item ID as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"its "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". For example, if items B and C replace item A, both"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"B.replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"C.replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"A.id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"required":["id","barcode","name","originalPricing","pricing","sku","imageUrls","status"],"properties":{"id":{"type":"string","description":"Unique order-item identifier.","example":"1261779167"},"barcode":{"type":"array","description":"Product barcodes associated with the order item.","items":{"type":"string"},"example":["6281100875093"]},"name":{"type":"string","description":"Product name.","example":"Test product"},"originalPricing":{"allOf":[{"description":"Price and quantity originally ordered by the customer."},{"$ref":"#/components/schemas/OriginalItemPricing"}]},"pricing":{"allOf":[{"description":"Latest price and quantity available from Keeta."},{"$ref":"#/components/schemas/CurrentItemPricing"}]},"replacedId":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ID of the original order item replaced by this item. This field is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"present only on a replacement item and points to another item in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the same order whose status is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REPLACED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The replacement item"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"must have status "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"IN_CART"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and a non-empty "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Multiple replacement items may use the same "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"represent one original item being replaced by multiple items. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"value must not reference the current item itself. Omit this field"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for original, unchanged, not-found, and independently added items."},"children":[]}]}]}],"example":"1261779167"},"sku":{"type":"string","description":"Partner catalog SKU or open item code.","example":"HSMVTE"},"imageUrls":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Product image URLs sourced from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"products[].picList"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string","format":"uri"},"example":["https://images.talabat.io/image.jpg"]},"status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item status. Possible values are:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"NOT_PROCESSED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The item's default status when the order is received."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"IN_CART"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The item is available in full or partial quantities for"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"fulfillment. A replacement item also uses this status and points"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to the original item through "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"NOT_FOUND"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The item is out of stock and will not be fulfilled."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REPLACED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The original item is out of stock and was replaced by"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"one or more items. Its "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is referenced by each replacement"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ADDITION"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The item was independently added by the picker and is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not a replacement; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"replacedId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is omitted."},"children":[]}]}]}]}],"enum":["NOT_PROCESSED","IN_CART","NOT_FOUND","REPLACED","ADDITION"],"example":"IN_CART"},"promotion":{"type":"array","nullable":true,"description":"Promotions applied to the item.","items":{"$ref":"#/components/schemas/ItemPromotion"}}}}},"components/schemas/OriginalItemPricing":{"id":"components/schemas/OriginalItemPricing","kind":"json-schema","title":"OriginalItemPricing","data":{"type":"object","required":["pricingType","quantity","totalPrice","unitPrice","listPrice","vatPercent","weight"],"properties":{"pricingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pricing type indicates whether the item is priced by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["UNIT","KG"],"example":"UNIT"},"quantity":{"type":"number","format":"double","minimum":0,"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Quantity of order items as ordered by the customer. Applies when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pricingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":1},"totalPrice":{"type":"number","format":"double","description":"Original total item amount in local currency.","example":39.75},"unitPrice":{"type":"number","format":"double","description":"Original unit price in local currency.","example":39.75},"listPrice":{"type":"number","format":"double","description":"Item price before discounts.","example":39.75},"vatPercent":{"type":"number","format":"double","minimum":0,"default":0,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"VAT percentage. Keeta has no source field, so the value is always "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":0},"weight":{"type":"number","format":"double","minimum":0,"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Weight of order items as ordered by the customer. Applies when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pricingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":0}}}},"components/schemas/CurrentItemPricing":{"id":"components/schemas/CurrentItemPricing","kind":"json-schema","title":"CurrentItemPricing","data":{"type":"object","required":["pricingType","quantity","totalPrice","unitPrice","vatPercent","weight"],"properties":{"pricingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pricing type indicates whether the item is priced by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["UNIT","KG"],"example":"UNIT"},"quantity":{"type":"number","format":"double","minimum":0,"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Quantity of order items as fulfilled by the partner. Applies when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pricingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":1},"totalPrice":{"type":"number","format":"double","description":"Latest total item amount in local currency.","example":39.75},"unitPrice":{"type":"number","format":"double","description":"Latest unit price in local currency.","example":39.75},"vatPercent":{"type":"number","format":"double","minimum":0,"default":0,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"VAT percentage. Keeta has no source field, so the value is always "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":0},"weight":{"type":"number","format":"double","minimum":0,"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Weight of order items as fulfilled by the partner. Applies when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pricingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":0}}}},"components/schemas/ItemPromotion":{"id":"components/schemas/ItemPromotion","kind":"json-schema","title":"ItemPromotion","data":{"type":"object","required":["name","type","discountAmount","sponsorships"],"properties":{"name":{"type":"string","description":"Promotion display name.","example":"Drinks 0.5l and 1l on sale"},"type":{"type":"string","description":"Promotion type.","enum":["STRIKETHROUGH","SAME_ITEM_BUNDLE"],"example":"STRIKETHROUGH"},"discountAmount":{"type":"number","format":"double","minimum":0,"description":"Total promotion discount in local currency.","example":2.25},"sponsorships":{"type":"array","description":"Contribution by each promotion sponsor.","items":{"$ref":"#/components/schemas/PromotionSponsorship"}}}}},"components/schemas/PromotionSponsorship":{"id":"components/schemas/PromotionSponsorship","kind":"json-schema","title":"PromotionSponsorship","data":{"type":"object","required":["sponsor","amount"],"properties":{"sponsor":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Type of the sponsor. Currently, only "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"VENDOR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is supported."},"children":[]}]}]}],"enum":["VENDOR"],"example":"VENDOR"},"amount":{"type":"number","format":"double","minimum":0,"description":"Sponsor contribution in local currency.","example":2.25}}}},"components/schemas/Payment":{"id":"components/schemas/Payment","kind":"json-schema","title":"Payment","data":{"type":"object","description":"Customer charges, discounts, totals, and payment type.","required":["deliveryFee","differenceToMinimum","discount","discounts","orderTotal","serviceFee","subTotal","totalTaxes","type"],"properties":{"additionalFees":{"type":"object","nullable":true,"description":"Any fee not explicitly included in the other payment fields.","properties":{"tip":{"type":"number","format":"double","minimum":0,"description":"Tip charged in local currency."},"droneServiceFee":{"type":"number","format":"double","minimum":0,"description":"Drone service fee in local currency."}}},"deliveryFee":{"type":"number","format":"double","description":"Delivery fee in local currency.","example":1},"differenceToMinimum":{"type":"number","format":"double","description":"Charge added to reach the minimum order value.","example":0},"discount":{"type":"number","format":"double","maximum":0,"description":"Total discount as a negative amount, following Talabat semantics.","example":-1},"discounts":{"type":"array","description":"Detailed order-level discounts.","items":{"$ref":"#/components/schemas/Discount"}},"orderTotal":{"type":"number","format":"double","description":"Final amount payable by the customer.","example":41.75},"serviceFee":{"type":"number","format":"double","description":"Platform service fee.","example":0},"subTotal":{"type":"number","format":"double","description":"Item subtotal before delivery and service fees.","example":39.75},"totalTaxes":{"type":"number","format":"double","enum":[0],"description":"Tax amounts are not currently provided by this API contract, so\nthis value is fixed at 0.\n","example":0},"type":{"type":"string","description":"Customer payment type.","enum":["PAID","CASH_ON_DELIVERY"],"example":"PAID"}}}},"components/schemas/Discount":{"id":"components/schemas/Discount","kind":"json-schema","title":"Discount","data":{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","description":"Discount name.","example":"First discount"},"value":{"type":"number","format":"double","maximum":0,"description":"Discount as a negative amount, following Talabat semantics.","example":-1}}}},"components/schemas/TokenResponse":{"id":"components/schemas/TokenResponse","kind":"json-schema","title":"TokenResponse","data":{"type":"object","properties":{"accessToken":{"type":"string","example":"eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9eyJ1dWlkIjoiVEVTVCJ9","description":"A short-lived JSON Web Token used to authenticate Partner API requests."},"tokenType":{"type":"string","example":"Bearer","description":"The token type used in the Authorization header."},"expiresIn":{"type":"integer","example":7200,"description":"The access token lifetime in seconds. Cache and reuse the token until it expires, using this value as the cache time-to-live."}}}},"components/schemas/OAuthErrorResponse":{"id":"components/schemas/OAuthErrorResponse","kind":"json-schema","title":"OAuthErrorResponse","data":{"type":"object","properties":{"code":{"type":"string","example":"INVALID_REQUEST","description":"OAuth error code."},"message":{"type":"string","example":"Invalid client credentials","description":"Human-readable explanation of the OAuth error."}}}},"components/schemas/AuthorizedResourceResponse":{"id":"components/schemas/AuthorizedResourceResponse","kind":"json-schema","title":"AuthorizedResourceResponse","data":{"type":"object","description":"Merchant authorization information.","properties":{"opType":{"type":"integer","format":"int32","enum":[0,1],"example":0,"description":"Operation type. 0 indicates new store authorization; 1 indicates store authorization removal."},"chainId":{"type":"string","example":"4323","description":"Chain ID of the authorized vendors."},"chainName":{"type":"string","example":"GUI JI","description":"Chain name of the authorized vendors."},"authorizedVendors":{"type":"array","description":"List of authorized vendors.","items":{"$ref":"#/components/schemas/AuthorizedShop"}}}}},"components/schemas/AuthorizedShop":{"id":"components/schemas/AuthorizedShop","kind":"json-schema","title":"AuthorizedShop","data":{"type":"object","properties":{"vendorId":{"type":"string","example":"145541","description":"Vendor ID."},"vendorName":{"type":"string","example":"Downtown Vendor","description":"Vendor name."},"address":{"type":"string","example":"123 Main Street","description":"Vendor address."},"longitude":{"type":"string","example":"114.057868","description":"Vendor longitude."},"latitude":{"type":"string","example":"22.543099","description":"Vendor latitude."}}}},"components/schemas/CallbackErrorResponse":{"id":"components/schemas/CallbackErrorResponse","kind":"json-schema","title":"CallbackErrorResponse","data":{"type":"object","properties":{"title":{"type":"string","example":"Unexpected error","description":"Human-readable error title."},"status":{"type":"integer","format":"int32","example":500,"description":"Numeric error status supplied by the callback service."}}}},"schema_137":{"kind":"json-schema","data":{"type":"object","required":["taskType","jobId","jobStatus"],"properties":{"taskType":{"type":"integer","example":1,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the asynchronous task type corresponding to this notification."},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"1"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Add Product Task"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Update Product Task"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"3"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Manage Promotion Task"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"4"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Update Product and Promotion Task"},"children":[]}]}]}]}]},"jobId":{"type":"string","example":"id_12345","description":"Job identifier from the response of the corresponding asynchronous task."},"jobStatus":{"type":"string","example":"COMPLETED","description":""},"downloadUrl":{"type":"string","format":"uri","example":"https://example.com/feedback/a946a2c7/job.csv","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Temporary URL to download a CSV report with item-level feedback, such as validation errors, detected duplicates, or formatting issues. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Only when the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"jobStatus=COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" then the downloadUrl is available."},"children":[]}]}]}]}]},"reason":{"type":"string","example":"The job failed to execute.","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The specific reasons when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"jobStatus=FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}},"id":"schema_137"}},"exampleStore":{"paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example":{"value":{"opType":0,"chainId":"4323","chainName":"GUI JI","authorizedVendors":[{"vendorId":"145541","vendorName":"Downtown Vendor","address":"123 Main Street","longitude":"114.057868","latitude":"22.543099"}]},"id":"paths/~1authorization~1change~1notification/post/requestBody/content/application~1json/example"},"paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1authorization~1change~1notification/post/responses/400/content/application~1json/example"},"paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1authorization~1change~1notification/post/responses/403/content/application~1json/example"},"paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1authorization~1change~1notification/post/responses/404/content/application~1json/example"},"paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1authorization~1change~1notification/post/responses/503/content/application~1json/example"},"paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example":{"value":{"vendorId":"id_12345","detail":[{"skuId":"sku1","discountValue":10,"originalPrice":15,"offlineTime":"2022-02-07T16:03:06Z","offlineReason":"The item has been removed."}]},"id":"paths/~1promotion~1offline~1notification/post/requestBody/content/application~1json/example"},"paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1promotion~1offline~1notification/post/responses/400/content/application~1json/example"},"paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1promotion~1offline~1notification/post/responses/403/content/application~1json/example"},"paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1promotion~1offline~1notification/post/responses/404/content/application~1json/example"},"paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example":{"value":{"title":"Unexpected error","status":500},"id":"paths/~1promotion~1offline~1notification/post/responses/503/content/application~1json/example"}},"securitySchemeStore":{"OAuth2ClientCredentials":{"id":"OAuth2ClientCredentials","type":"oauth2","description":"OAuth 2.0 client credentials used by partner applications.","flows":{"clientCredentials":{"tokenUrl":"https://api-docs.mykeeta.com/apis/yhsu3hu21ch23yabx4xuuuq7/basic/endpoints/generateaccesstoken","scopes":{}}}},"Signature":{"id":"Signature","type":"apiKey","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To enhance overall security, Keeta requires a signature in the Header when making requests to Keeta. Please refer to "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://api-docs.mykeeta.com/apis/yhsu3hu21ch23yabx4xuuuq7/docs/auth"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authorization Guide"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for details."},"children":[]}]}]}],"in":"header","paramName":"Signature"}},"servers":[{"url":"https://open.mykeeta.com/api/open/grocery"}]},"options":{"hideSidebar":true,"mockServer":{"off":true},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/apis/@grocery/webhook.json?download"},{"url":"/_bundle/apis/@grocery/webhook.yaml?download"}],"excludeFromSearch":false,"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Keeta Basic API Reference","description":"This API provides basic functionality for Keeta platform integration, including webhook configuration, authorization management, and OAuth token operations.\n"}},"baseSlug":"/apis/grocery/webhook","routesMapping":{}}