{"items":[{"type":"link","label":"Keeta Open Delivery API","link":"/apis/opendelivery","routeSlug":"/apis/opendelivery","content":{"contentType":"overview","meta":{"name":"Keeta Open Delivery API"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"opendelivery.json","url":"/_bundle/apis/@opendelivery/opendelivery.json?download"},{"kind":"download","label":"opendelivery.yaml","url":"/_bundle/apis/@opendelivery/opendelivery.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/opendelivery"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Keeta Open Delivery API (v.1.0.7)","showPageActions":true}],"sectionId":"/apis/opendelivery"}]}]}},{"type":"separator","label":"Guides","content":null},{"type":"group","label":"General Info","link":"/apis/opendelivery/general-info","routeSlug":"/apis/opendelivery/general-info","items":[],"content":{"contentType":"group","meta":{"name":"General Info"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"General Info","showPageActions":true},{"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":"Special Note:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta Open Delivery API is based on "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery v1.5.0"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". For basic understanding, please refer to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://abrasel-nacional.github.io/docs/","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery API"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For some of the APIs, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta has made some adjustments based on business scenarios"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Therefore, when Software Service integrates with Keeta, please refer to the APIs definitions in this document."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The major changes include:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Authentication: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The credentials have been changed from the merchant level to the software level, and the token as well."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" However, software services cannot access the merchant data without the merchant's authorization first."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta requires the Software Service to include a signature in the header of every API request."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This is to enhance security and prevent the risk of data leakage due to token exposure (such as man-in-the-middle attacks).Please refer to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"/./Signature-Calculation"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" detailed documentation for the specific signing requirements."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Menu: Keeta supports menu push (software services push via POST /merchantUpdate endpoint) and pull (Keeta pulls via GET /merchant endpoint); however, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta currently only supports full menu updates (modular entry updates are not supported at this time)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". For details, please refer to the description of the corresponding Merchant endpoints in this document."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta supports querying order events of batch merchants in the polling endpoint"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", since the credential is in the software level."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Fields: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta has made some adjustments to the fields in each endpoint, including the number of fields, whether the fields are required, etc."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Please refer to the definitions in this document."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refund Process: When requesting a total/partial refund after order completion, a negotiation will be initiated between the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Customer"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". This allows the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the opportunity to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ACCEPT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DENY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the Customer's request. For details, refer to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"User Privacy Data: To protect users' personal privacy, Keeta will return encrypted data in "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderDetails"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"order details"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". In scenarios involving "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"merchant self-delivery or third-party logistics (3PL)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this data can be decrypted. If Software Services need to decrypt the data, they must make additional calls to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"/apis/opendelivery/orderapi/batchdecrypt"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"data decryption endpoint"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". For details, please refer to the description in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order section"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of this document."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"We strongly recommend software services to integrate the menu API for data synchronization"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", to avoid merchants maintaining menus in multiple places."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta provides a self-service authorization feature in its "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://merchant.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" merchant management system "},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Merchants can log in to the system to independently authorize or revoke access for Software Services. Detailed instructions are available in "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"/../merchant-authorization"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the relevant documentation section "},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In addition, Keeta offers API endpoints that enable Software Services to automate merchant authorization and embed the workflow into their own SaaS software. For implementation details, please refer to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"/../merchant-self-serve-authorization"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the relevant documentation section "},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"You can"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://s3-fra01-eu.mykeeta.net/open-third-shop-mapping-template/ODA%20Test%20Collection.postman_collection.json.zip","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Download the Postman Collection "},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and add signature calculation script to the pre-request section in Postman to simplify integration and testing."},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" :You need to replace the secret value in the Postman script with the one assigned to you by Keeta."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/postman_replace_client_secret.52dae55708042141ec8cd9027d64fc256c0a74a807eb18798618f0f80bd94dd9.68d109a5.jpg"}},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For some general instructions, can directly refer to Open Delivery Documents, and relevant links will be attached."},"children":[]}]}]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/general-info"}],"panels":[]}]}},{"type":"group","label":"How to Start","link":"/apis/opendelivery/how-to-start","routeSlug":"/apis/opendelivery/how-to-start","items":[],"content":{"contentType":"group","meta":{"name":"How to Start"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"How to Start","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/odaguide.2d997bc4683efbb7ea1c79769f86147a430b4277b265d5ad09ef819ce80341b7.68d109a5.png"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Preparation Phase"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"NDA"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Please contact the Keeta team to sign the NDA (Non-disclosure Agreement).\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Complete profile information"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"    \n    After you have signed the NDA, Keeta API experts will share developer account and test application ID and secret with you. Log in to the Keeta Developer Portal using the developer account we provided.   \n    Please complete the profile on the Information Management page of the Dev Portal, including "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"company logo, contact phone number, contact email, and merchant operations email."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    These details are essential—make sure all information is fully filled out and accurate.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please note that your company logo will be visible to customers, so ensure it is uploaded correctly."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Additionally, Keeta will send the test store credentials and merchant onboarding details to the email addresses listed above — please double-check that they are accurate.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Set up test store and Keeta test APP"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{"type":"a","style":{"paddingLeft":"20px","listStyleType":"none"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{"style":{"position":"relative","paddingLeft":"20px"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{"style":{"position":"absolute","left":"0"}}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"a."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      Please log in to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://developers.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Dev Portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" and use the Test Store Tool to create a test store. "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{"style":{"position":"relative","paddingLeft":"20px"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{"style":{"position":"absolute","left":"0"}}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"b."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      During the store creation process, please scan the Keeta App QR code to download the Keeta Test App. Then, register as a Keeta user using your mobile phone number. "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{"style":{"position":"relative","paddingLeft":"20px"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{"style":{"position":"absolute","left":"0"}}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"c."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      Once registration is complete, enter your phone number to link your user account with the test store. After this step, you’ll be able to view your test store within the app."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{"style":{"position":"relative","paddingLeft":"20px"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{"style":{"position":"absolute","left":"0"}}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"d."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      For instructions on using test store in Keeta test APP, "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/section/keeta-test-app","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"click here "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{"style":{"position":"relative","paddingLeft":"20px"}}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{"style":{"position":"absolute","left":"0"}}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"e."},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      Once you've created a test store, the credentials will be sent to the primary contact email. You can then use the account to log into the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://merchant.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta Merchant Management System "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":", where you'll be able to manage store business hours, basic information, and menus."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Development Phase"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"SOW (Statement of Work)"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Before initiating technical development, please download the SOW file from the Integration Document Management section. Complete the document before the online integration testing (SIT homologation) with Keeta, and upload it to the Dev Portal.\n"},"children":[]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(This file defines the scope of this integration (SOW – Statement of Work) and will help you understand keeta API system)."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"p","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Developer Self-Test"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      Please download and review the SIT file, which is a set of self-testing use cases for your reference during internal QA. Keeta team will use the same test cases in the Joint SIT (system integration test) test in the future. We recommend that you follow these test cases to ensure the system functions properly. Please fill in and submit the self-test records before conducting SIT tests with Keeta.\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Joint SIT (System Integration Test) with Keeta"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"After completing the developer self-test, please schedule an online joint SIT test (homologation) with Keeta. Keeta team will attend to conduct test with you and help resolve issues. If the SIT test meets the requirements, Keeta will sign off the test, and assign an application for the production environment (including the ID and secret) to you. It is strongly recommended to conduct thorough self-testing before the joint SIT test with Keeta."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"UAT (User Acceptance Test) Phase"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Schedule UAT Test"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    After passing the SIT test, we will coordinate with a common customer (restaurant) and schedule the UAT test (you can also recommend one to us).\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Conduct UAT Test (Pilot store test)"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Before the test, notify the responsible person of the customer's restaurant to ensure support for the test. The Keeta team will place and pay for orders in the actual store to verify that the software system functions properly (such as menu management, order management, KDS, receipt printing).\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please note that during the UAT testing phase, you must use the production environment application (which Keeta will assign to you after passing SIT testing) to access Keeta."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Test applications used during the development phase will not have access to merchant data.\n  "},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Recommendation"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Operational Meeting"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    We recommend that both parties' operational teams hold an operation meeting after the system integration is completed to discuss the subsequent merchant activation/authorization process and align on daily operation and technical issue handling mechanisms.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    In addition, based on your developer account, Keeta can provide operation accounts upon request. This accounts allow you to view and manage merchants that have authorized your applications on the Dev Portal.\n"},"children":[]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/how-to-start"}],"panels":[]}]}},{"type":"group","label":"Integrating with Keeta API","link":"/apis/opendelivery/integrating-with-keeta-api","routeSlug":"/apis/opendelivery/integrating-with-keeta-api","items":[],"content":{"contentType":"group","meta":{"name":"Integrating with Keeta API"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Integrating with Keeta API","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authenticate"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"All API endpoints (except "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Get Access Token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" itself) require authentication. Therefore, you must first obtain an access token by calling the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Get Access Token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint before making any further requests."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Configure Store Mapping and Webhooks"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"After obtaining the access token, you can register the mapping between your internal "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and configure webhook endpoints by calling the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/putMerchantOnboarding"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Onboarding"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Place a Test Order"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Once the store mapping has been successfully configured, refer to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"./Keeta-test-APP"},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta Test App"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to place a test order for the configured store and proceed to the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Module"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" testing phase."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Workflow Testing"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"At this stage, whenever a new order is placed from the registered store, you will receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PLACED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event via webhook or polling."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Upon receiving a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PLACED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event, you should first "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderDetails"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"retrieve order details"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and then either "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/confirmOrder"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"confirm"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/cancelOrder"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"cancel"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the order."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Once the order is prepared, you must either "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderReady"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"mark it as ready"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/dispatchOrder"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"dispatch it"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — depending on whether the delivery will be fulfilled by the merchant or a third-party logistics provider."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"✅ Good job! Your app is now ready to receive and process orders. For more advanced features, please refer to the relevant sections of this documentation."},"children":[]}]}]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/integrating-with-keeta-api"}],"panels":[]}]}},{"type":"group","label":"Basic Concepts","link":"/apis/opendelivery/basic-concepts","routeSlug":"/apis/opendelivery/basic-concepts","items":[],"content":{"contentType":"group","meta":{"name":"Basic Concepts"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Basic Concepts","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"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":"PARAMETERS IN THE SOFTWARE SERVICE"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"   (SOFTWARE SERVICE --> Keeta)"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"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":"{baseURL}"},"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 {baseURL} is the parameter that indicates the base address, i.e. the constant part of the address, where the routes will be called."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"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":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for providing the credentials for authentication to be performed through the authentication endpoint."},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": As described in the authentication section of the documentation, credentials are generated by Keeta, that is, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"if several MERCHANTS use the same Software Service, the software will have a same clientId and clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"AppId"},"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":"It is the unique ID of Keeta which is generated by Keeta itself, it will be informed to all the Software Services that it will integrate."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"X-App-Signature"},"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":"Keeta requires Software Service to generate a signature and include it in the header of each API request. Refer to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/section/signature-calculation"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature Calculation"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section for the complete algorithm specification."},"children":[]}]}]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"PARAMETERS IN Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"    (Keeta --> SOFTWARE SERVICE)"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"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":"link","inline":true,"attributes":{"href":"#tag/merchantEndpoints"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint URL:"},"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":"Keeta must be provided with the URL to access the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" route to obtain the merchant's information."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Each merchant that the Software Service works with must have a unique URL."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"apiKey"},"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":"If the GET /merchant endpoint is implemented using authentication, it is necessary that the Software Service provides the apiKey referring to the entered merchant."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"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":"Order Event Webhook"},"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":"If both parties are going to work with sending order events via webhook, it is necessary to provide the URL of the webhook. Default webhook route:  "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST {baseURL}/newEvent"},"children":[]}]}]}]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"General Guidelines"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For general guidelines on the Keeta Open Delivery API, please refer directly to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://abrasel-nacional.github.io/docs/#section/General-Guidelines","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery General Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error Handling"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For error handling guidelines on the Keeta Open Delivery API, please refer directly to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://abrasel-nacional.github.io/docs/#section/Error-Handling","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery Error Handling"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/basic-concepts"}],"panels":[]}]}},{"type":"group","label":"Keeta Developer Portal","link":"/apis/opendelivery/keeta-developer-portal","routeSlug":"/apis/opendelivery/keeta-developer-portal","items":[],"content":{"contentType":"group","meta":{"name":"Keeta Developer Portal"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Keeta Developer Portal","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://developers.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Dev Portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" is the developer backend for the Keeta API open platform, comprising two main modules:\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1. Application Management"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    In this module, you can create and manage applications, view application tokens, and check the list of associated merchants. \n    For setting regular webhooks, please use the Open Delivery approach to register and update webhooks(e.g., via the \" "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/putmerchantonboarding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Register / Update Merchant endpoint info "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\" method).\n    For Merchant authorization updates webhooks, you can directly configure them in the webhook setting page. \n    Please focus only on the webhook configuration for Formal Store. 1301 represents the webhook for new authorization notifications, and 1302 represents the webhook for authorization cancellation notifications.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2. Development Testing Tools"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Store Mapping Check"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        This tool allows you to view and search all authorized merchant lists and their menu push statuses. To validate the accuracy of store mapping between systems, you can upload the store IDs and coordinates recorded in your system to Keeta. The system will automatically calculate the geographical deviation distance to achieve validation.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Test Store Tool"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        This tool allows you to create test stores. Please note that you must create an application before proceeding. You can also use this tool to manage the store’s operating status—for example, to reopen a store that was closed due to order failures. After creating a test store, go to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"em","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Store Details → Edit → Link with your Keeta user account"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". Be sure to enter the same phone number you used to register as a Keeta user. This will make the test store visible in your app.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta Rider Simulator"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        To test the full lifecycle of orders, you can use this tool to simulate the entire fulfillment process of a Keeta rider, including rider dispatching, arrival at the restaurant, food pickup, and delivery completion.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Test Order Tool"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        The Test Order Tool is a convenient web-based utility that allows developers to place test orders at designated test stores, enabling quick validation of the order flow. Alternatively, you may choose to download and use the Keeta "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./Keeta-test-APP"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Test App "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to browse store menus and place test orders directly.\n    "},"children":[]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/keeta-developer-portal"}],"panels":[]}]}},{"type":"group","label":"Test Store Management","link":"/apis/opendelivery/test-store-management","routeSlug":"/apis/opendelivery/test-store-management","items":[],"content":{"contentType":"group","meta":{"name":"Test Store Management"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Test Store Management","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    You can create a test store yourself in the Dev Portal (see "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/apis/opendelivery/keeta-developer-portal"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta Developer Portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" for details), or use the test store assigned to you by Keeta. Using the account and password of the test store to log into the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://merchant.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta Merchant Management System "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":", you will have access to all store management functions, including: viewing orders, viewing historical data, setting store operating hours and status, viewing and editing menus, and setting up promotion activities etc.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Menu Management"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    If you do not integrate with Keeta's Menu API (i.e., do not manage and publish menus via the API), you can edit and upload menus in the Merchant Management System for testing purposes. If needed, Please use the menu upload template (including PDV Code) to help quickly batch upload full menu and the corresponding external codes. Please contact Keeta team for details and support if needed.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please note:"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    If the menu is not integrated, manual entry is required — and it's important to ensure the PDV Code is entered correctly.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"    \n    However, if menu synchronization is performed via API, Keeta will automatically disable manual entry and modification through the Merchant Management System to prevent data inconsistencies and potential order failures.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"   \n    If a merchant needs to make manual adjustments to the menu despite API integration, please contact the Keeta API team for support.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Promotion Settings"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    We recommend setting up various types of marketing activities and placing test orders in the test store to ensure that promotional information in the orders is processed correctly.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"   \n    Additionally, if you wish to test scenarios involving Keeta platform subsidies, please contact the Keeta API team. We will add Keeta platform promotional items to your test store for this purpose.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"  \n    Please note that in the SIT testing environment (homologation), we will test scenarios involving both merchant subsidies and platform subsidies to ensure the orders are processed correctly and the promotional information is accurately parsed.\n"},"children":[]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/test-store-management"}],"panels":[]}]}},{"type":"group","label":"Keeta test APP","link":"/apis/opendelivery/keeta-test-app","routeSlug":"/apis/opendelivery/keeta-test-app","items":[],"content":{"contentType":"group","meta":{"name":"Keeta test APP"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Keeta test APP","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To place orders for test stores, there are two available methods:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Developer Portal with Test Order Tool:\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Log into the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://developers.mykeeta.com","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Dev Portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" and use the Test Order Tool to directly place orders at the test store. This method is convenient and allows for rapid validation of order flow, but its functionality is limited.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Keeta Test App:\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Download and use the Keeta Test App to browse the store menu and place orders directly within the app. This approach enables a full end-to-end simulation from the user perspective, provides a visualized menu interface, and allows you to trigger refund operations—making it essential for testing reverse order flows and other features.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Keeta team will share the download link for the Test APP (available for both Android and iOS versions). Please download and install the app, then select the Bongolava region (as shown in the image below), and complete the user registration (Brazilian phone numbers are supported).\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/appliebiaoen.9cf03dcd6faf161f0a73f0893773ebebeaeaa2fc3a838c40d93b7cdcda149ec2.68d109a5.png","width":"300px"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Test Store Registration and Location Settings"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    After registration, please inform Keeta of your registered phone number and the test store ID you previously created via the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://wenjuan.meituan.com/m/survey/5496779","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" link"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". The Keeta team will bind the two for you to place test orders. After this you will be able to see the test store in the Home page and place test orders with mocked payment.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Note:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta's test stores are located in the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Bongolava region of Madagascar"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". Please ensure that the delivery address for the test order is near the test store.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    If your test store cannot accept orders and displays “Out of Delivery Area,” please switch your current location to a nearby point within the designated testing region.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"To update your location:"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Tap the address in the top-right corner of the screen."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Select "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"“Tap to Change.”"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Tap the top-right region selector (e.g., “"},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Brasil"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"”)."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Choose the first option: "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"“Bongolava”"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":", then tap "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"“Confirm.”"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Select any available location point within the region and tap "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"“Confirm Location.”"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Once your location is updated, you will be within the testing area and can place orders at the designated test store.\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/appcaiping.b9e0b480e547e54f36e9fbd142411a9c7dc4f84814a59c256e096a49f00927a7.68d109a5.png"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/appxiadan.9fea37d0ec2714d0e9d3380dde0a489155fc8729f4d00376d6c6298822512fd7.68d109a5.png"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/appshouhuodizhi.6c075bc25cc9b7abf728a21c4d41000237fe8c68aee63b43b0f80739e6b2b888.68d109a5.png"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/xuanzedizhi.d1a8ea3227418f52ebf9cd738c6a29a169b98e4de543bc78cf3529cb87bc945b.68d109a5.png"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/dizhixiangqing.0a5f69f8fca1ebee6fe6b4eccad8173d239e53f476ca1583241dbf37dbb04512.68d109a5.png"}},"children":[]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/keeta-test-app"}],"panels":[]}]}},{"type":"group","label":"Signature Calculation","link":"/apis/opendelivery/signature-calculation","routeSlug":"/apis/opendelivery/signature-calculation","items":[{"type":"link","label":"Signature Generation Process","link":"/apis/opendelivery/signature-calculation/signature-generation-process","routeSlug":"/apis/opendelivery/signature-calculation/signature-generation-process","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Signature Generation Process"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"signature-calculation/signature-generation-process"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature Generation Process"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 1: Extract Request Components"},"children":[]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"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":"text","inline":true,"attributes":{"content":"URL"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Extract the base URL (without query parameters)"},"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":"text","inline":true,"attributes":{"content":"Query Parameters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Extract all enabled query parameters"},"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":"text","inline":true,"attributes":{"content":"Request Body"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Process the request body content"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 2: Build Signature String"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature string is constructed by concatenating the following components with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"&"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as separator:"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"signature_string = URL + \"&\" + sorted_query_params + \"&\" + request_body\n","language":"curl"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"signature_string = URL + \"&\" + sorted_query_params + \"&\" + request_body\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.1 URL Processing"},"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":"Use the base URL without query parameters"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"https://api.example.com/v1/orders"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.2 Query Parameters Processing"},"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":"Extract all enabled query parameters"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sort parameters by key name (alphabetical order)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Format each parameter as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"key=value"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Join multiple parameters with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"&"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Handle null/undefined values as empty strings"},"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":"Example:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"Original parameters: {c: \"3\", a: \"1\", b: \"2\"}\nSorted result: a=1&b=2&c=3\n","language":"curl"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Original parameters: {c: \"3\", a: \"1\", b: \"2\"}\nSorted result: a=1&b=2&c=3\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.3 Request Body Processing"},"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":"JSON Format: Use JSON string directly"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Null Value Handling: Empty objects "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{}"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or empty strings will be skipped"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Type Conversion: Non-string types will be converted to JSON strings"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 3: Calculate HMAC-SHA256 Signature"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  1. Use the constructed signature string as the message\n  2. Use the provided secret key\n  3. Calculate HMAC-SHA256 hash\n  4. Encode the result in Base64 format\n"},"children":[]}]}],"panels":[]}]}},{"type":"link","label":"Examples","link":"/apis/opendelivery/signature-calculation/examples","routeSlug":"/apis/opendelivery/signature-calculation/examples","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Examples"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"signature-calculation/examples"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Examples"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Example 1: GET Request with Query Parameters"},"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":"Request:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"URL: https://api.example.com/v1/users\nQuery Parameters: {page: \"2\", limit: \"10\", sort: \"name\"}\nBody: (empty)\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"URL: https://api.example.com/v1/users\nQuery Parameters: {page: \"2\", limit: \"10\", sort: \"name\"}\nBody: (empty)\n"},"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":"Signature String:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"https://api.example.com/v1/users&limit=10&page=2&sort=name\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"https://api.example.com/v1/users&limit=10&page=2&sort=name\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Example 2: POST Request with JSON Body"},"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":"Request:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"URL: https://api.example.com/v1/orders\nQuery Parameters: (empty)\nBody: {\"userId\": 123, \"productId\": 456, \"quantity\": 2}\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"URL: https://api.example.com/v1/orders\nQuery Parameters: (empty)\nBody: {\"userId\": 123, \"productId\": 456, \"quantity\": 2}\n"},"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":"Signature String:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"https://api.example.com/v1/orders&{\"userId\":123,\"productId\":456,\"quantity\":2}\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"https://api.example.com/v1/orders&{\"userId\":123,\"productId\":456,\"quantity\":2}\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Example 3: PUT Request with Both Query Parameters and Body"},"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":"Request:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"URL: https://api.example.com/v1/products\nQuery Parameters: {version: \"v2\", format: \"json\"}\nBody: {\"name\": \"Product A\", \"price\": 99.99}\n","language":"curl"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"URL: https://api.example.com/v1/products\nQuery Parameters: {version: \"v2\", format: \"json\"}\nBody: {\"name\": \"Product A\", \"price\": 99.99}\n"},"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":"Signature String:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"https://api.example.com/v1/products&format=json&version=v2&{\"name\":\"Product A\",\"price\":99.99}\n","language":"curl"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"https://api.example.com/v1/products&format=json&version=v2&{\"name\":\"Product A\",\"price\":99.99}\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Signature calculation script example","link":"/apis/opendelivery/signature-calculation/signature-calculation-script-example","routeSlug":"/apis/opendelivery/signature-calculation/signature-calculation-script-example","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Signature calculation script example"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"signature-calculation/signature-calculation-script-example"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature calculation script example"},"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":"Below is a complete calculation script example of the signature ("},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"JAVA, Python and PHP"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"). You can refer to it to implement the signature calculation script of your development language."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"details","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"summary","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Click to expand/collapse "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Java code"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import org.apache.commons.lang.StringUtils;\nimport javax.crypto.Mac;\nimport javax.crypto.spec.SecretKeySpec;\nimport java.nio.charset.StandardCharsets;\nimport java.security.InvalidKeyException;\nimport java.security.NoSuchAlgorithmException;\nimport java.util.Base64;\nimport java.util.Map;\nimport java.util.TreeMap;\n\npublic class SignatureUtils {\n\n    /**\n    * generate signature\n    * @param url: request url\n    * @param queryParamMap: request query parameters Map Structure\n    * @param bodyJSONString: request body JSON String\n    * @param clientSecret: client secret\n    * @return\n    */\n    public String generateSignature(String url, Map<String, Object> queryParamMap, String bodyJSONString, String clientSecret) {\n        StringBuilder sb = new StringBuilder();\n        // step 1: concat url\n        sb.append(url);\n        // step 2: concat query parameters\n        if (!queryParamMap.isEmpty()) {\n            // 2.1: sort by alphabetical order\n            TreeMap<String, Object> sortedParams = new TreeMap<>(queryParamMap);\n            // 2.2: concat key and value\n            for (Map.Entry<String, Object> entry : sortedParams.entrySet()) {\n                String key = entry.getKey();\n                String value = entry.getValue() != null ? entry.getValue().toString() : null;\n                sb.append(\"&\");\n                sb.append(key + \"=\" + value);\n            }\n        }\n        // step 3: concat body\n        if (StringUtils.isNotBlank(bodyJSONString)) {\n            sb.append(\"&\");\n            sb.append(bodyJSONString);\n        }\n        // step 4: got a complete string waiting to generate a signature\n        String signatureString = sb.toString();\n        try {\n            // step 5: initialize the HmacSHA256 algorithm with the clientSecret\n            Mac mac = Mac.getInstance(\"HmacSHA256\");\n            mac.init(new SecretKeySpec(clientSecret.getBytes(StandardCharsets.UTF_8), \"HmacSHA256\"));\n            // step 6: calculate signature\n            byte[] bytes = mac.doFinal(signatureString.getBytes(StandardCharsets.UTF_8));\n            // step 7: encode the signature in Base64 format\n            String signature = new String(Base64.getEncoder().encode(bytes), StandardCharsets.UTF_8);\n            return signature;\n        }catch (NoSuchAlgorithmException e){\n            throw new IllegalStateException(\"Algorithm HmacSHA256 does not exist.\", e);\n        }catch (InvalidKeyException e){\n            throw new RuntimeException(\"Key is invalid.\", e);\n        }\n    }\n}\n\n\n","language":"Java"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import org.apache.commons.lang.StringUtils;\nimport javax.crypto.Mac;\nimport javax.crypto.spec.SecretKeySpec;\nimport java.nio.charset.StandardCharsets;\nimport java.security.InvalidKeyException;\nimport java.security.NoSuchAlgorithmException;\nimport java.util.Base64;\nimport java.util.Map;\nimport java.util.TreeMap;\n\npublic class SignatureUtils {\n\n    /**\n    * generate signature\n    * @param url: request url\n    * @param queryParamMap: request query parameters Map Structure\n    * @param bodyJSONString: request body JSON String\n    * @param clientSecret: client secret\n    * @return\n    */\n    public String generateSignature(String url, Map<String, Object> queryParamMap, String bodyJSONString, String clientSecret) {\n        StringBuilder sb = new StringBuilder();\n        // step 1: concat url\n        sb.append(url);\n        // step 2: concat query parameters\n        if (!queryParamMap.isEmpty()) {\n            // 2.1: sort by alphabetical order\n            TreeMap<String, Object> sortedParams = new TreeMap<>(queryParamMap);\n            // 2.2: concat key and value\n            for (Map.Entry<String, Object> entry : sortedParams.entrySet()) {\n                String key = entry.getKey();\n                String value = entry.getValue() != null ? entry.getValue().toString() : null;\n                sb.append(\"&\");\n                sb.append(key + \"=\" + value);\n            }\n        }\n        // step 3: concat body\n        if (StringUtils.isNotBlank(bodyJSONString)) {\n            sb.append(\"&\");\n            sb.append(bodyJSONString);\n        }\n        // step 4: got a complete string waiting to generate a signature\n        String signatureString = sb.toString();\n        try {\n            // step 5: initialize the HmacSHA256 algorithm with the clientSecret\n            Mac mac = Mac.getInstance(\"HmacSHA256\");\n            mac.init(new SecretKeySpec(clientSecret.getBytes(StandardCharsets.UTF_8), \"HmacSHA256\"));\n            // step 6: calculate signature\n            byte[] bytes = mac.doFinal(signatureString.getBytes(StandardCharsets.UTF_8));\n            // step 7: encode the signature in Base64 format\n            String signature = new String(Base64.getEncoder().encode(bytes), StandardCharsets.UTF_8);\n            return signature;\n        }catch (NoSuchAlgorithmException e){\n            throw new IllegalStateException(\"Algorithm HmacSHA256 does not exist.\", e);\n        }catch (InvalidKeyException e){\n            throw new RuntimeException(\"Key is invalid.\", e);\n        }\n    }\n}\n\n\n"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"details","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"summary","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Click to expand/collapse "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Python code"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import hashlib\nimport hmac\nimport base64\nfrom typing import Dict, Any\n\n\nclass SignatureUtils:\n    \"\"\"\n    Generate signature utility class\n    \"\"\"\n\n    @staticmethod\n    def generate_signature(url: str,\n                          query_param_map: Dict[str, Any],\n                          body_json_string: str,\n                          client_secret: str) -> str:\n        \"\"\"\n        Generate signature\n\n        Args:\n            url: request url\n            query_param_map: request query parameters dict\n            body_json_string: request body JSON string\n            client_secret: client secret\n\n        Returns:\n            Generated signature string\n        \"\"\"\n        sb = []\n\n        # Step 1: concat url\n        sb.append(url)\n\n        # Step 2: concat query parameters\n        if query_param_map:\n            # 2.1: sort by alphabetical order\n            sorted_params = dict(sorted(query_param_map.items()))\n            # 2.2: concat key and value\n            for key, value in sorted_params.items():\n                value_str = str(value) if value is not None else \"\"\n                sb.append(f\"&{key}={value_str}\")\n\n        # Step 3: concat body\n        if body_json_string and body_json_string.strip():\n            sb.append(f\"&{body_json_string}\")\n\n        # Step 4: got complete string for signature generation\n        signature_string = \"\".join(sb)\n\n        try:\n            # Step 5 & 6: calculate HMAC-SHA256 signature\n            signature_bytes = hmac.new(\n                client_secret.encode('utf-8'),\n                signature_string.encode('utf-8'),\n                hashlib.sha256\n            ).digest()\n\n            # Step 7: encode in Base64\n            signature = base64.b64encode(signature_bytes).decode('utf-8')\n            return signature\n\n        except Exception as e:\n            raise RuntimeError(f\"Failed to generate signature: {str(e)}\")\n\n\n","language":"Python"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import hashlib\nimport hmac\nimport base64\nfrom typing import Dict, Any\n\n\nclass SignatureUtils:\n    \"\"\"\n    Generate signature utility class\n    \"\"\"\n\n    @staticmethod\n    def generate_signature(url: str,\n                          query_param_map: Dict[str, Any],\n                          body_json_string: str,\n                          client_secret: str) -> str:\n        \"\"\"\n        Generate signature\n\n        Args:\n            url: request url\n            query_param_map: request query parameters dict\n            body_json_string: request body JSON string\n            client_secret: client secret\n\n        Returns:\n            Generated signature string\n        \"\"\"\n        sb = []\n\n        # Step 1: concat url\n        sb.append(url)\n\n        # Step 2: concat query parameters\n        if query_param_map:\n            # 2.1: sort by alphabetical order\n            sorted_params = dict(sorted(query_param_map.items()))\n            # 2.2: concat key and value\n            for key, value in sorted_params.items():\n                value_str = str(value) if value is not None else \"\"\n                sb.append(f\"&{key}={value_str}\")\n\n        # Step 3: concat body\n        if body_json_string and body_json_string.strip():\n            sb.append(f\"&{body_json_string}\")\n\n        # Step 4: got complete string for signature generation\n        signature_string = \"\".join(sb)\n\n        try:\n            # Step 5 & 6: calculate HMAC-SHA256 signature\n            signature_bytes = hmac.new(\n                client_secret.encode('utf-8'),\n                signature_string.encode('utf-8'),\n                hashlib.sha256\n            ).digest()\n\n            # Step 7: encode in Base64\n            signature = base64.b64encode(signature_bytes).decode('utf-8')\n            return signature\n\n        except Exception as e:\n            raise RuntimeError(f\"Failed to generate signature: {str(e)}\")\n\n\n"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"details","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"summary","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Click to expand/collapse "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"PHP code"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"<?php\n\n    class SignatureUtils\n    {\n        /**\n        * Generate signature\n        *\n        * @param string $url Request URL\n        * @param array $queryParamMap Request query parameters associative array\n        * @param string $bodyJSONString Request body JSON string\n        * @param string $clientSecret Client secret\n        * @return string Generated signature string\n        * @throws RuntimeException If signature generation fails\n        */\n        public static function generateSignature(\n            string $url,\n            array $queryParamMap,\n            string $bodyJSONString,\n            string $clientSecret\n        ): string {\n            $sb = '';\n            \n            // Step 1: concat url\n            $sb .= $url;\n            \n            // Step 2: concat query parameters\n            if (!empty($queryParamMap)) {\n                // 2.1: sort by alphabetical order (PHP's ksort sorts in-place)\n                ksort($queryParamMap);\n                \n                // 2.2: concat key and value\n                foreach ($queryParamMap as $key => $value) {\n                    // String value = entry.getValue() != null ? entry.getValue().toString() : null;\n                    // In PHP, null becomes empty string when concatenated, but we need \"null\" string\n                    $valueStr = $value !== null ? (string)$value : '';\n                    $sb .= '&' . $key . '=' . $valueStr;\n                }\n            }\n            \n            // Step 3: concat body\n            if (trim($bodyJSONString) !== '') {\n                $sb .= '&' . $bodyJSONString;\n            }\n            \n            // Step 4: got a complete string waiting to generate a signature\n            $signatureString = $sb;\n\n            try {\n                // Step 5 & 6: calculate HMAC-SHA256 signature\n                // Note: hash_hmac returns raw binary data by default\n                $signatureBytes = hash_hmac('sha256', $signatureString, $clientSecret, true);\n                \n                if ($signatureBytes === false) {\n                    throw new RuntimeException('Failed to calculate HMAC signature');\n                }\n                \n                // Step 7: encode the signature in Base64 format\n                $signature = base64_encode($signatureBytes);\n                \n                return $signature;\n                \n            } catch (Exception $e) {\n                // Re-throw with appropriate message\n                throw new RuntimeException('Failed to generate signature: ' . $e->getMessage(), 0, $e);\n            }\n        }\n    }\n","language":"PHP"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"<?php\n\n    class SignatureUtils\n    {\n        /**\n        * Generate signature\n        *\n        * @param string $url Request URL\n        * @param array $queryParamMap Request query parameters associative array\n        * @param string $bodyJSONString Request body JSON string\n        * @param string $clientSecret Client secret\n        * @return string Generated signature string\n        * @throws RuntimeException If signature generation fails\n        */\n        public static function generateSignature(\n            string $url,\n            array $queryParamMap,\n            string $bodyJSONString,\n            string $clientSecret\n        ): string {\n            $sb = '';\n            \n            // Step 1: concat url\n            $sb .= $url;\n            \n            // Step 2: concat query parameters\n            if (!empty($queryParamMap)) {\n                // 2.1: sort by alphabetical order (PHP's ksort sorts in-place)\n                ksort($queryParamMap);\n                \n                // 2.2: concat key and value\n                foreach ($queryParamMap as $key => $value) {\n                    // String value = entry.getValue() != null ? entry.getValue().toString() : null;\n                    // In PHP, null becomes empty string when concatenated, but we need \"null\" string\n                    $valueStr = $value !== null ? (string)$value : '';\n                    $sb .= '&' . $key . '=' . $valueStr;\n                }\n            }\n            \n            // Step 3: concat body\n            if (trim($bodyJSONString) !== '') {\n                $sb .= '&' . $bodyJSONString;\n            }\n            \n            // Step 4: got a complete string waiting to generate a signature\n            $signatureString = $sb;\n\n            try {\n                // Step 5 & 6: calculate HMAC-SHA256 signature\n                // Note: hash_hmac returns raw binary data by default\n                $signatureBytes = hash_hmac('sha256', $signatureString, $clientSecret, true);\n                \n                if ($signatureBytes === false) {\n                    throw new RuntimeException('Failed to calculate HMAC signature');\n                }\n                \n                // Step 7: encode the signature in Base64 format\n                $signature = base64_encode($signatureBytes);\n                \n                return $signature;\n                \n            } catch (Exception $e) {\n                // Re-throw with appropriate message\n                throw new RuntimeException('Failed to generate signature: ' . $e->getMessage(), 0, $e);\n            }\n        }\n    }\n"},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Signature  tools","link":"/apis/opendelivery/signature-calculation/signature-tools","routeSlug":"/apis/opendelivery/signature-calculation/signature-tools","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Signature  tools"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"signature-calculation/signature-tools"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature  tools"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"You can easily calculate the correct signature through this tool, helping you quickly verify whether your code implementation is correct. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://toolset.nocode.meituan.com/","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":">>> Click here"},"children":[]}]}]}]}]}],"panels":[]}]}}],"content":{"contentType":"group","meta":{"name":"Signature Calculation"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Signature Calculation","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This document describes the HMAC-SHA256 signature calculation process used for API authentication. The signature is generated by combining the request URL, query parameters, and request body into a signature string, then computing an HMAC-SHA256 hash using a secret key."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For signature calculation, the request body MUST be canonicalized according to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://datatracker.ietf.org/doc/html/rfc8785","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"RFC 8785 (JSON Canonicalization Scheme)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" before performing any cryptographic signing operations."},"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":"Algorithm"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":   HMAC-SHA256 "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Encoding"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":    Base64 "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signature Header"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":    X-App-Signature  "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/signature-calculation"}],"panels":[]}]}},{"type":"group","label":"Time Zone Conversion","link":"/apis/opendelivery/time-zone-conversion","routeSlug":"/apis/opendelivery/time-zone-conversion","items":[],"content":{"contentType":"group","meta":{"name":"Time Zone Conversion"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Time Zone Conversion","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1. Time Zone Conversion Target Object"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  There are 3 APIs involved in time zone handling:\n  "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/getMerchant"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Get information of a Merchant"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"services.serviceHours"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"availabilities"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/merchantUpdate"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"New Merchant Update Notification"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"services.serviceHours"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"availabilities"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/merchantStatus"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Get Merchant Status and Service Hours"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"services.serviceHours"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" 2. Time Zone Conversion Rules"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  (1) All time-related fields in the documentation are transmitted in the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"UTC+0"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" time zone."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  (2) The value in "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"timePeriods"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" should always conform to the rule: "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"endTime > startTime"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  (3) If the time spans a day after conversion to the UTC+0 time zone, it should be split into two parts."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  (4) 24:00 should be transmitted as: 23:59:00.000Z."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" 3. Time Zone Conversion Examples"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Take Brazil's official time zone "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"UTC-3"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as an example."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" 3.1 [ data + timePeriod ] combination scenario"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" (1) The conversion to UTC+0 will not cross the day"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  If the local time is: **2024-04-07 08:00-20:00**, the format transmitted in the API should be (after converting to UTC+0):\n"},"children":[]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"[\n  {\n    \"date\": \"2021-04-07\",\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:00:00.000Z\"\n    }\n  }\n]\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"[\n  {\n    \"date\": \"2021-04-07\",\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:00:00.000Z\"\n    }\n  }\n]\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" (2) The conversion to UTC+0 will cross the day"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  If the local time is: **2024-04-07 10:00-22:00**, the format transmitted in the API should be (after converting to UTC+0):\n"},"children":[]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"[\n  {\n    \"date\": \"2021-04-07\",\n    \"timePeriods\": {\n        \"startTime\": \"13:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"date\": \"2021-04-08\",\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"[\n  {\n    \"date\": \"2021-04-07\",\n    \"timePeriods\": {\n        \"startTime\": \"13:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"date\": \"2021-04-08\",\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" 3.2 [ dayOfWeek + timePeriod ] combination scenario"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" (1) The conversion to UTC+0 will not cross the day"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  If the local time is: **Monday & Tuesday 08:00-20:00**, the format transmitted in the API should be (after converting to UTC+0):\n"},"children":[]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\",\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:00:00.000Z\"\n    }\n  }\n]\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\",\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:00:00.000Z\"\n    }\n  }\n]\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" (2) The conversion to UTC+0 will cross the day"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  If the local time is: **Monday & Tuesday 10:00-22:00**, the format transmitted in the API should be (after converting to UTC+0):\n"},"children":[]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"WEDNESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"WEDNESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Finally merge into:"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\",\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\",\n        \"WEDNESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"[\n  {\n    \"dayOfWeek\": [\n        \"MONDAY\",\n        \"TUESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"11:00:00.000Z\",\n        \"endTime\": \"23:59:00.000Z\"\n    }\n  },\n  {\n    \"dayOfWeek\": [\n        \"TUESDAY\",\n        \"WEDNESDAY\"\n    ],\n    \"timePeriods\": {\n        \"startTime\": \"00:00:00.000Z\",\n        \"endTime\": \"01:00:00.000Z\"\n    }\n  }\n]\n"},"children":[]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/time-zone-conversion"}],"panels":[]}]}},{"type":"group","label":"Merchant Authorization","link":"/apis/opendelivery/merchant-authorization","routeSlug":"/apis/opendelivery/merchant-authorization","items":[],"content":{"contentType":"group","meta":{"name":"Merchant Authorization"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Merchant Authorization","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant Adding Authorization (with APP ID)"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    If a merchant wants to authorize an application, the merchant should go to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" App Activation "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" tab in the Merchant Management \n    system, and click the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" \"Activar aplicativo\" "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" button at the top right corner of the page and follow the steps below:\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Enter the APP ID "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" of the service provider's application (available from the provider).\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Confirm provider information "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to ensure accuracy.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Select the store(s) "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to be authorized:\n      "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"For store-level accounts, this step is skipped."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"For brand-level accounts, the merchant must select which stores to authorize."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        Click "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Confirm "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to proceed.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Copy authorization code"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"(Optional) If the application you are about to authorize is an application in shop level authorization code mode, You will see the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" authorization_code "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" on the page. Please copy this code and give it to the software service to complete the authorization process.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        Click "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" \"Registro da autorização\" "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to automatically download an Excel file containing the authorization record\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        Once authorization is complete:\n        "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The service provider's merchant operations email will receive a notification."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider's system will receive a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./authentication/receiveauthorizationwebhook"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" webhook "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" notification."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider can retrieve authorized merchant data via API."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant Adding Authorization (via URL)"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    The service provider logs into the Keeta Dev Portal using a developer or sub-account (operations account), clicks "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" “Add Authorization” "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" , and shares the generated authorization URL with the merchant.\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The merchant opens the URL and logs in using either a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" brand-level "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" store-level "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" account."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The merchant does "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" not "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" need to input an APP ID—simply select the stores to authorize, and click "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Confirm. "},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Copy authorization code"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"(Optional) If the application you are about to authorize is an application in shop level authorization code mode, You will see the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" authorization_code "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" on the page. Please copy this code and give it to the software service to complete the authorization process.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Click "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" “Registro da autorização” "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to automatically download an Excel record of the authorization."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      Once authorization is completed:\n      "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider’s merchant operations email will receive a notification."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider’s system will receive a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./authentication/receiveauthorizationwebhook"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Webhook "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" notification."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Authorized merchant data can be retrieved via API."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    After authorization, the merchant should contact the provider to complete store configuration (such as store mapping).\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Merchant Revokeing Authorization\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Merchants can revoke authorization using either of the following methods:\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Bulk revocation: "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Select the current list of stores and revoke authorization in a batch. A double-confirmation popup is required before the operation proceeds."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Single revocation: "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Click the designated button and confirm to revoke authorization for an individual store."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Upon completion:"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"An Excel file containing the operation record will be automatically downloaded for reference."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The service provider's merchant operations email will receive a notification."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider's system will receive a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./authentication/receiveauthorizationwebhook"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Webhook "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" event."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The provider will lose access to merchant store data via API."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Stay updated of merchants authorization activity"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    The service provider can receive notifications for merchant authorization cancellations or new authorizations via "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./authentication/receiveauthorizationwebhook"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Webhook "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". Keeta will also send an email to the merchant operation mailbox, please check the inbox.\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Or, the service provider can also view all the authorized stores in the Mapping Check in Dev Portal with detailed infomation, as mentioned above.\n  "},"children":[]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchant-authorization"}],"panels":[]}]}},{"type":"group","label":"Merchant Self-serve Authorization","link":"/apis/opendelivery/merchant-self-serve-authorization","routeSlug":"/apis/opendelivery/merchant-self-serve-authorization","items":[],"content":{"contentType":"group","meta":{"name":"Merchant Self-serve Authorization"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Merchant Self-serve Authorization","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    Before accessing merchant data, service providers must obtain authorization from merchants. Within the Keeta platform, it is recommended to use "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Merchant Self-Authorization "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to automate and streamline this process.\n  "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/untitled_diagram_mermaidchart.974705c7b6a0a4e0ce3599ce5b8e53a72f2d617c76c6e7a4effb62016b53489c.68d109a5.png"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 1: Retrieve Authorization Link"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Initiate Request: "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The service provider system calls the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./getauthorizationurl"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta API "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to retrieve the authorization URL.\n      "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Note: If API integration is not available, the URL can be manually acquired via the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Add Authorization "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" button on the Dev Portal."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Generate Link:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta returns an authorization link containing the required parameters."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Distribute Link:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The service provider shares the link with the target merchant to begin the authorization flow."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 2: Merchant Authorization Operation"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Access Authorization Page:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The merchant clicks the link, redirecting their browser to the Keeta authorization page."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Authentication:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The merchant logs in via Keeta, using either a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Brand Account "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" or a "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Store Account. "},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Store Selection:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The system displays the merchant’s store list."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Brand account users must select the store scope to authorize."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Store account users will proceed without additional selection."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Step 3: Post-Authorization Handling (Two Modes)"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Mode A: Redirect Integration (Automated Workflow)"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Automatic Redirect:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" After authorization, Keeta redirects to the service provider system with the authId."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Fetch Store Info:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The service provider calls the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/./apis/opendelivery/authentication/getmerchantinfo"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" API "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to retrieve detailed store information."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Store Mapping UI:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" The service provider displays a mapping interface for the merchant to match their stores with the service provider’s system."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Integration Complete:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Upon confirmation, the service provider registers store data via the onboarding API."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h4","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Mode B: Manual Mapping via Authorization Records"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ul","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant-side Download:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" After authorization, the Keeta merchant management system automatically downloads a spreadsheet of the authorized stores. Alternatively, merchants may manually download the store list to assist with mapping. To explore detailed functionality and operations, please log in to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://merchant.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" merchant portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" using a test store account."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Email Notification to Service Provider:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Keeta sends the authorized store list to the merchant operations email provided by the service provider for reference and mapping."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"View in Dev Portal:"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" Service providers can log into the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://developers.mykeeta.com/","target":"_blank","rel":"noopener noreferrer"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Dev Portal "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" and use the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":" Mapping Check "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" feature to search for authorized store records and maintain mappings manually."},"children":[]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchant-self-serve-authorization"}],"panels":[]}]}},{"type":"group","label":"Development Guides","link":"/apis/opendelivery/development-guides","routeSlug":"/apis/opendelivery/development-guides","items":[{"type":"group","label":"Security","link":"/apis/opendelivery/development-guides/security","routeSlug":"/apis/opendelivery/development-guides/security","items":[{"type":"link","label":"Authentication","link":"/apis/opendelivery/development-guides/security/authentication","routeSlug":"/apis/opendelivery/development-guides/security/authentication","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Authentication"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"development-guides/security/authentication"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta suports two types of authentication methods: "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"OAuth 2 "},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"apiKey"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"."},"children":[]}]}]}],"panels":[]}]}}],"content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Security"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":1,"id":"development-guides/security"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Security"},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Merchant","link":"/apis/opendelivery/development-guides/merchant","routeSlug":"/apis/opendelivery/development-guides/merchant","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Merchant"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":1,"id":"development-guides/merchant"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta follows the merchant model definition in Open Delivery, which refers to the following link: "},"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":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://abrasel-nacional.github.io/docs/#tag/merchantOverview","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant overview"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"a","attrs":{"href":"https://abrasel-nacional.github.io/docs/#tag/merchantStructure","target":"_blank"}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant structure"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"  Please note that Keeta only allows partial update of merchant basic information. The fields in BASIC_INFO and SERVICE entities will be reduced. Please refer to this document."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant Endpoint"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This section details the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This endpoint should be implemented by the Software Service and its URL should be informed to Keeta."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The endpoint is designed so that "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"each merchant has its own URL"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The specification recommends that the endpoint ends with the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" route, but this is "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not mandatory"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Software Service can implement the URL in any way it sees fit, as long as it contains information from "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only one"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" merchant."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"group","label":"Orders","link":"/apis/opendelivery/development-guides/orders","routeSlug":"/apis/opendelivery/development-guides/orders","items":[{"type":"link","label":"Polling","link":"/apis/opendelivery/development-guides/orders/polling","routeSlug":"/apis/opendelivery/development-guides/orders/polling","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Polling"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"development-guides/orders/polling"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Polling"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Receiving events via Polling works as follows:"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/polling.png"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Query new order events"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In order to receive new order events, the merchant Software Service must make requests on the polling endpoint regularly at a certain time interval, determined by  Keeta."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Whenever there is a new event the response will send the response code 200 with the list of events. If there are no new events, the response will send the response code 204."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":  It is important that the Software Service performs the requests within the timeframe determined by Keeta, as blocking and penalties may occur depending on the application's rules."},"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":"Keeta Polling Rate Limiting and Event TTL"},"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 Keeta polling API enforces a rate limit of "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no more than two requests per minute per token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Once a request is blocked due to rate limiting, it will be allowed again in the next time window, which resets every minute."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is recommended to poll for the latest order events associated with the token "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"every 30 seconds"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The TTL for order events is 4 hours and 10 minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". In the Keeta system, orders automatically transition to a final state after 4 hours; an additional 10 minutes is provided as a buffer for time discrepancies."},"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":"Availability of new events in polling:"},"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":"Keeta may have specific rules about the maximum time new events are available in polling before they are removed."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Always check with Keeta what the rules are for using the polling service."},"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":"Duplicate Events"},"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":"Eventually Keeta may return the same event more than once, for example the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CREATED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event, including old orders. For this reason "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"it is important that the Software Application handles the uniqueness of requests and events through id and the date"},"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":"text","inline":true,"attributes":{"content":"When receiving an event, the Software Service must check the event id and validate that this event (id) has not been processed before. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this event has already been received previously, it must be discarded"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The Software Services should only accept a new order or update the status of an order after validating that the event has not been processed before."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is also possible for the Software Service to make a request for the same event more than once (for example, requesting the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /v1/orders/{orderId}/confirm"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint repeatedly)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In these cases  Keeta can handle this situation in two different ways:"},"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":"As Keeta processes the requests synchronously, then Keeta should return "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"HTTP 422"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", indicating that that event has been received before."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Acknowledgment Events"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When receiving new events via "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Polling"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the Software Service should always send acknowledgement so that Keeta does not send that same event again;"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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 recommendations"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"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":"Merchants Software Service should make an acknowledgment request for each polling request with results."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If it receives events that are not used by the itself, it needs to send the acknowledgment of these events anyway so that it is not receiving them every polling again."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is recommended that this be the default treatment for all events not yet mapped in the Software Service application."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Software Services only needs to send acknowledgment of the event once."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Acknowledgment NOT apply for WEBHOOKS."},"children":[]}]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Webhook","link":"/apis/opendelivery/development-guides/orders/webhook","routeSlug":"/apis/opendelivery/development-guides/orders/webhook","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Webhook"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"development-guides/orders/webhook"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhook"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Receiving events via Webhook works as follows:"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/webhook.png"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Order Event Notification"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  Webhook is sent to notify the merchant "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" that an new order event has happened on  "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":".\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that implements this webhook, should return an HTTP "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" response code with an empty response body to acknowledge receipt of the webhook event."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" does not receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" acknowledgement response, than the webhook event will be resent based on  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" policies."},"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":"Keeta Webhook Retry Policy"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Keeta webhook retry policy is designed to ensure reliable delivery of webhook events. If the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" does not acknowledge receipt of a webhook event with a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" response, Keeta will retry sending the event up to 3 times. The retries will occur at intervals of 1 minute, 2 minutes and finally 3 minutes. If the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" still does not acknowledge the event after these retries, the event will be considered undelivered."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Webhook Headers"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" will include security headers for all requests made to the merchant "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" webhook URL."},"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":"Header Description"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Header"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Description"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"X-App-Id"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An Unique Identificator of  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"X-App-MerchantId"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An Unique Identificator of the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" receiving the order"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"X-App-Signature"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SHA256 hash of the request body, using the client secret as the key"},"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":"Webhook Security"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhook messages are signed so that the merchant Software Service can verify that the sender is a valid Keeta. Webhooks requests contain an X-App-Signature header."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Order API","link":"/apis/opendelivery/development-guides/orders/order-api","routeSlug":"/apis/opendelivery/development-guides/orders/order-api","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Order API"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"development-guides/orders/order-api"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order API"},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Merchant Fulfill API","link":"/apis/opendelivery/development-guides/orders/merchant-fulfill-api","routeSlug":"/apis/opendelivery/development-guides/orders/merchant-fulfill-api","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Merchant Fulfill API"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"development-guides/orders/merchant-fulfill-api"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Fulfill API"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The endpoint below should be used "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"when the order logistics service is provided by the Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" and is only available for updates "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"after the merchant accepts the order"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". Orders that are completed or cancelled cannot be updated."},"children":[]}]}]}],"panels":[]}]}}],"content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Orders"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":1,"id":"development-guides/orders"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Orders"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This overview summarizes the Ordering flow and how it interacts with merchant Software Service and Keeta."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Order Events State Machine"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/modified_order_lifecycle.c180197e30af86541572b7bd66b69de08485e0f16f82a2adabb58bf804518d6c.68d109a5.svg"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h2","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Understanding the Order Flow"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/oda_order_flow.2f6f36b29d1623fa46a450fd9dc6855e7b0d54828c2980a55ece2e15eb588060.68d109a5.svg"}},"children":[]}]},{"$$mdtype":"Node","type":"hr","attributes":{},"children":[]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The order flow has the following Macro steps:"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1. Order Event Reception"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Through Order Events,  "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" communicates to the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" the existence of a new order, as well as the other events of the order lifecycle."},"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":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provides two ways for merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to be aware of new events:"},"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":"link","inline":true,"attributes":{"href":"#tag/ordersPolling"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Polling"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Receiving events through polling provided by  "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is the common way "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery Order Events"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" works."},"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":"link","inline":true,"attributes":{"href":"#tag/ordersWebhook"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhook"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optionally it is recommended the implementation of a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" by the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keetas"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to send new events directly, ensuring a much faster communication."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2. Order Details"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Before confirming or canceling an order, it is necessary to get the order details so that the merchant Software Service user can check if he will be able to prepare and deliver this order, such as checking if he has all the necessary items and if he is available to make the delivery to the informed address."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Through the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderDetails"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /orders/{id}"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint the merchant Software Service can get all the details of an order."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This endpoint returns the code 200 and the content of the request. If an invalid request id is entered the endpoint returns 404."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Regarding order detail information, the following additional clarification is provided to prevent user information leakage:"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta will return encrypted data with the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ENC_"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" prefix when returning users' personal privacy data(as customer, delivery). Software Services can call the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/batchDecrypt"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/batchDecrypt"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to decrypt the data."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please note that data can only be decrypted in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"merchant self-delivery or third-party logistics (3PL)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" delivery scenarios. For Keeta platform-delivery orders (full service), the data cannot be decrypted."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"3. Order Events Updates"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n Following the order lifecycle, the merchant Software Service needs to notify Keeta of the upcoming order status.\n"},"children":[]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"After acknowledging receipt of a new order event (either via polling or webhook) is expected that the Software Service explicitly"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/confirmOrder"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /orders/{orderId}/confirm"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/requestCancellation"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /orders/{orderId}/requestCancellation"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" within a  time window set by Keeta."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Otherwise the order can time out and auto-cancel and the merchant can suffer a penalty based on Keeta policy."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order acceptances should be posted as quickly as possible to minimize consumer cancellations."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When the order is ready, it is expected that a request will be sent to "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderReady"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /orders/{orderId}/readyForPickup"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When sending requests to these endpoints, is expected that Keeta notifies the consumer of the progress of the order."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"4. Order Cancellation"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n An order can be canceled for several reasons and the initiative to cancel an order can come from the merchant, the customer, or Keeta.   \n It may also happen that the delivery person requests the cancellation in some  scenarios, such as when the customer is not found at the delivery address.\n"},"children":[]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Cancellation Rules"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected that both Keeta and merchant Software Service have their own order cancellation policies and inform their users."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A cancellation request must always contain:"},"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":"text","inline":true,"attributes":{"content":"reason"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Open text field indicating the reason for the cancellation."},"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":"text","inline":true,"attributes":{"content":"code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": An enumerator containing a cancellation reason."},"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":"text","inline":true,"attributes":{"content":"mode"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Field indicating whether the cancellation occurred Automatically or Manually."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The cancellation can be requested by:"},"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":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (Merchant):"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/oda_cancel_flow.99115cb9e2fb2b2e0fd0a047e01b80a8f3196acd08f36400f25709ab3cb76bdc.68d109a5.svg"}},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the merchant wants to cancel an order, it must make a "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/requestCancellation"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /orders/{orderId}/requestCancellation"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" request."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Penalties"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Avoid order cancellations! Excessive cancellations can result in some penalties (depending on Keeta's policy) such as having the merchant temporarily closed on the platform."},"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":"Cancellation Validation"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Cancellation request does not guarantee that the order is cancelled. When sending a request "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/requestCancellation"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/orders/{orderId}/requestCancellation"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":",  Keeta will send the code 202 (accepted) in response."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This does not yet mean"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"that the request has been cancelled. It means that the request has been accepted and will be processed by Keeta cancellation service. As a result of this request, the merchant Software Service may receive at the next  polling (or via webhook) one of the following events:"},"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":"CANCELLED"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The order should only be Canceled when the CANCELLED event is generated."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Cancellation rules may vary depending on the timing of the order (before or after confirmation). In some situations it is possible that  Keeta cancellation service will consult with the consumer on whether or not the  consumer accepts the cancellation of the order."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"Cancellation codes:\n\n- INSUFFICIENT_DISHES\n- SUSPENSION_OF_BUSINESS\n- INSUFFICIENT_MANPOWER\n- OTHERS\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Cancellation codes:\n\n- INSUFFICIENT_DISHES\n- SUSPENSION_OF_BUSINESS\n- INSUFFICIENT_MANPOWER\n- OTHERS\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Cancellation by "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can happen by:"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"code: CONSUMER_CANCELLATION_REQUESTED\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"code: CONSUMER_CANCELLATION_REQUESTED\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The consumer can request the cancellation of an order."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Depending on the cancellation rules applied, this option may not be enabled for all merchants."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It may also only be allowed at certain times, such as before the  order is confirmed."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"code: OTHER_CANCELLATION_REASON\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"code: OTHER_CANCELLATION_REASON\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keetas may cancel the order for reasons other than via customer."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Possible reasons for order cancellation by the system include: timing out without acceptance,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no rider accepting the order, or the rider reporting the  store as closed."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When the Order Application initiates a cancellation, an order cancellation event is transmitted to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Software Service via webhook or polling. The Software Service must then update the order status based on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the event  details."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"5. Order Refund"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n Users can initiate a fully order refund or a partial item refund request from the Order Application,which will trigger the `USER_REFUND_REQUEST` event to be sent to the Software Service.\n This event will include details  such as the refunded items and pricing information. \n The refund process follows a handshake protocol: if the merchant agrees to the refund request, \n they need to call the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"#operation/acceptRefund","title":"agree refund"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Agree Refund API"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"; \n if they disagree, they should \n  call the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"#operation/rejectRefund","title":"Reject Refund API"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Reject Refund API"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":".\n"},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/oda_refund_flow.eac825ccd955ed0a3f3d1082623065904625fb871abd7ab389c66430ac09052b.68d109a5.svg","width":"8000"}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"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":"Sample metadata"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" within "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_REFUND_REQUEST"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event, refer to "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/pollingEvents"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"polling API"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/newEvent"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"money\": 8500,\n  \"opTime\": 1751005551823,\n  \"shopId\": \"461827\",\n  \"status\": 5002,\n  \"currency\": \"HKD\",\n  \"isAppeal\": 0,\n  \"partRefund\": 0,\n  \"applyOpType\": 10,\n  \"applyReason\": \"Wrong Order\",\n  \"orderViewId\": 783441058793308,\n  \"handleOpType\": 20,\n  \"handleReason\": \"Merchant Agreed to Refund\",\n  \"refundProducts\": [\n      {\n          \"id\": 12053105,\n          \"name\": \"1️⃣  Noodles with 1 Topping\",\n          \"spec\": \"\",\n          \"tags\": [],\n          \"count\": 1,\n          \"price\": 7500,\n          \"skuId\": 8949938,\n          \"spuId\": 9897081,\n          \"groups\": [\n              {\n                  \"groupId\": 4305174,\n                  \"groupName\": \"Choose Your Choices of Noodles\",\n                  \"groupNameI18n\": {\n                      \"en\": \"Choose Your Choices of Noodles\",\n                      \"zh-HK\": \"選擇麵底\",\n                      \"default\": \"選擇麵底\"\n                  },\n                  \"groupOpenItemCode\": \"cgp-7741|1-1\",\n                  \"shopProductGroupSkuList\": [\n                      {\n                          \"count\": 1,\n                          \"price\": 0,\n                          \"spuId\": 2069967,\n                          \"spuName\": \"Rice Stick Noodle Supremes\",\n                          \"currency\": \"HKD\",\n                          \"spuPvList\": [],\n                          \"groupSkuId\": 23903426,\n                          \"refundCount\": 0,\n                          \"refundPrice\": 0,\n                          \"spuNameI18n\": {\n                              \"en\": \"Rice Stick Noodle Supremes\",\n                              \"zh-HK\": \"米線\",\n                              \"default\": \"米線\"\n                          },\n                          \"groupSkuOpenItemCode\": \"128019\"\n                      }\n                  ]\n              }\n          ],\n          \"remark\": \"\",\n          \"picList\": [\n              \"http://img-ap-hongkong.mykeeta.net/sailorproduct/aa2d5209534619f31c2e966080ecac5885942.jpg\"\n          ],\n          \"currency\": \"HKD\",\n          \"nameI18n\": {\n              \"en\": \"1️⃣  Noodles with 1 Topping\",\n              \"zh-HK\": \"1️⃣  單拼小窩米線\",\n              \"default\": \"1️⃣  單拼小窩米線\"\n          },\n          \"priceStr\": \"$75.00\",\n          \"spuPvList\": [],\n          \"promotions\": [],\n          \"refundType\": 1,\n          \"originPrice\": 7500,\n          \"refundCount\": 1,\n          \"refundPrice\": 0,\n          \"orderProductId\": 359379560,\n          \"originPriceStr\": \"$75.00\",\n          \"priceWithGroup\": {\n              \"amount\": 7500,\n              \"amountStr\": \"$75.00\",\n              \"originAmount\": 7500,\n              \"originAmountStr\": \"$75.00\"\n          },\n          \"skuOpenItemCode\": \"AY290105\",\n          \"spuOpenItemCode\": \"8898\",\n          \"priceWithoutGroup\": {\n              \"amount\": 5900,\n              \"amountStr\": \"$59.00\",\n              \"originAmount\": 5900,\n              \"originAmountStr\": \"$59.00\"\n          }\n      }\n  ],\n  \"partRefundCount\": 0,\n  \"afterSaleOrderId\": 783440453161676\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"money\": 8500,\n  \"opTime\": 1751005551823,\n  \"shopId\": \"461827\",\n  \"status\": 5002,\n  \"currency\": \"HKD\",\n  \"isAppeal\": 0,\n  \"partRefund\": 0,\n  \"applyOpType\": 10,\n  \"applyReason\": \"Wrong Order\",\n  \"orderViewId\": 783441058793308,\n  \"handleOpType\": 20,\n  \"handleReason\": \"Merchant Agreed to Refund\",\n  \"refundProducts\": [\n      {\n          \"id\": 12053105,\n          \"name\": \"1️⃣  Noodles with 1 Topping\",\n          \"spec\": \"\",\n          \"tags\": [],\n          \"count\": 1,\n          \"price\": 7500,\n          \"skuId\": 8949938,\n          \"spuId\": 9897081,\n          \"groups\": [\n              {\n                  \"groupId\": 4305174,\n                  \"groupName\": \"Choose Your Choices of Noodles\",\n                  \"groupNameI18n\": {\n                      \"en\": \"Choose Your Choices of Noodles\",\n                      \"zh-HK\": \"選擇麵底\",\n                      \"default\": \"選擇麵底\"\n                  },\n                  \"groupOpenItemCode\": \"cgp-7741|1-1\",\n                  \"shopProductGroupSkuList\": [\n                      {\n                          \"count\": 1,\n                          \"price\": 0,\n                          \"spuId\": 2069967,\n                          \"spuName\": \"Rice Stick Noodle Supremes\",\n                          \"currency\": \"HKD\",\n                          \"spuPvList\": [],\n                          \"groupSkuId\": 23903426,\n                          \"refundCount\": 0,\n                          \"refundPrice\": 0,\n                          \"spuNameI18n\": {\n                              \"en\": \"Rice Stick Noodle Supremes\",\n                              \"zh-HK\": \"米線\",\n                              \"default\": \"米線\"\n                          },\n                          \"groupSkuOpenItemCode\": \"128019\"\n                      }\n                  ]\n              }\n          ],\n          \"remark\": \"\",\n          \"picList\": [\n              \"http://img-ap-hongkong.mykeeta.net/sailorproduct/aa2d5209534619f31c2e966080ecac5885942.jpg\"\n          ],\n          \"currency\": \"HKD\",\n          \"nameI18n\": {\n              \"en\": \"1️⃣  Noodles with 1 Topping\",\n              \"zh-HK\": \"1️⃣  單拼小窩米線\",\n              \"default\": \"1️⃣  單拼小窩米線\"\n          },\n          \"priceStr\": \"$75.00\",\n          \"spuPvList\": [],\n          \"promotions\": [],\n          \"refundType\": 1,\n          \"originPrice\": 7500,\n          \"refundCount\": 1,\n          \"refundPrice\": 0,\n          \"orderProductId\": 359379560,\n          \"originPriceStr\": \"$75.00\",\n          \"priceWithGroup\": {\n              \"amount\": 7500,\n              \"amountStr\": \"$75.00\",\n              \"originAmount\": 7500,\n              \"originAmountStr\": \"$75.00\"\n          },\n          \"skuOpenItemCode\": \"AY290105\",\n          \"spuOpenItemCode\": \"8898\",\n          \"priceWithoutGroup\": {\n              \"amount\": 5900,\n              \"amountStr\": \"$59.00\",\n              \"originAmount\": 5900,\n              \"originAmountStr\": \"$59.00\"\n          }\n      }\n  ],\n  \"partRefundCount\": 0,\n  \"afterSaleOrderId\": 783440453161676\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Reverse Transaction Policy"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n The reverse transaction flow includes two scenarios: Cancellation Requests and Refund Requests, initiated by four possible parties:\n   "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"User"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta Customer Support"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Keeta System"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n Below are the detailed rules:\n "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"style","attrs":{"type":"text/css"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n   .tg  {border-collapse:collapse;border-spacing:0;}\n   .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;\n     overflow:hidden;padding:10px 5px;word-break:normal;}\n   .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;\n     font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}\n   .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}\n   "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"table","attrs":{"className":"tg"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"thead","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"tr","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"th","attrs":{"className":"tg-0pky"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"th","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"User"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"th","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchant"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"th","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Customer Service"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"th","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"System"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"tbody","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"tr","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Cancellation"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Full Service: Users can only cancel order before merchants accpet (confirm) the order, without merchants' approval."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        After a user successfully places an order, the merchant has the option to proactively cancel\n        the order at any time within 48 hours after the order is completed."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchants can choose to initiate order cancellations through the Software Services \n        system, or alternatively, log into the Keeta Order\n         Management System to cancel orders."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"For the latter option, Keeta will send an order cancellation notification to Software Services via API."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n       If an order cancellation request is \n       escalated to Keeta Customer Support,\n        the support team may cancel the order at any time—up to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"30 days after the order is completed. Therefore, if an order is cancelled by Customer Support (even after order completion), the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"cancellation event will be notified to Software Services"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"If an order is not accepted within five minutes, the system will automatically cancel the order. Merchant approval is not required for this cancellation."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"⚠️ Important:"},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"Failure to accept an order within five \n       minutes will result in the temporary closure\n        of the store."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"tr","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Refund"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"After a user submits a refund request, an event notification will be triggered, and merchant approval is required."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n       Regardless of whether the software integrates the deny refund or approve \n       refund API, merchants can always log in to the Keeta Merchant Portal to communicate with users and manage disputes via Instant Messenger."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","attributes":{"content":"No matter which method the merchant uses to process the refund request—either through the Keeta Merchant Portal or via software capabilities—the outcome is idempotent. Both workflows can operate in parallel, and the final result will be determined by whichever response is received first"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Merchants are not able to initiate refund requests via API."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Same as above"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"td","attrs":{"className":"tg-0pky"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"N/A"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"    \n   In summary, Keeta may initiate order refund or cancellation notifications at any point in time. Software Services should handle these order status updates based on its own operational needs — "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"either by aligning with Keeta’s order status, or, by ignoring the notifications to preserve the integrity of its internal system state."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"If you prefer not to have your internal order status changed by Keeta under certain conditions (e.g., after an order is accepted or after completion), please discard Keeta’s order status notifications to ensure your system’s order status remains unaffected."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"If this results in reconciliation issues for the merchant, they should contact Keeta’s Business Development (BD) team to resolve the matter."},"children":[]}]}]}],"panels":[]}]}}],"content":{"contentType":"group","meta":{"name":"Development Guides"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Development Guides","showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/development-guides"}],"panels":[]}]}},{"type":"separator","label":"ChangeLog","content":null},{"type":"group","label":"ChangeLog","link":"/apis/opendelivery/changelog","routeSlug":"/apis/opendelivery/changelog","items":[],"content":{"contentType":"group","meta":{"name":"ChangeLog"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"ChangeLog","showPageActions":true},{"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":"Version[1.0.9] - Jan 6, 2026"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The application in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Client credential mode"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" has been renamed to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"App Level Token mode"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and the parameter passed to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/oauth/token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint for this mode is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=app_level_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If you have already completed development using "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and have passed SIT certification or are already in production, you can continue to use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" without any impact."},"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":"Version[1.0.8] - Nov 14, 2025"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Add image upload interface."},"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":"code","inline":true,"attributes":{"content":"new Merchant Update Notification"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint has adjusted the processing logic for entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ITEM_OFFER"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OPTION"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Previously, it would fetch the entire menu from the Software for updating, now it directly updates the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"status"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"updatedObjects"},"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":"Version[1.0.7] - Nov 11, 2025"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Since there is currently no self-pickup scenario, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PICKED_UP"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event will not be received."},"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":"code","inline":true,"attributes":{"content":"requestCancellation"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" parameter "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" enumeration has been updated from:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"INSUFFICIENT_DISHES\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"SUSPENSION_OF_BUSINESS\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"INSUFFICIENT_MANPOWER\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"OTHERS\""},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to the following values:"},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"SYSTEMIC_ISSUES\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"DUPLICATE_APPLICATION\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"UNAVAILABLE_ITEM\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"RESTAURANT_WITHOUT_DELIVERY_PERSON\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"OUTDATED_MENU\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"ORDER_OUTSIDE_THE_DELIVERY_AREA\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"BLOCKED_CUSTOMER\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"OUTSIDE_DELIVERY_HOURS\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"RISK_AREA\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"DELIVERY_PROBLEM\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Although backward compatibility with the old enumeration values is maintained, we strongly recommend using the new "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" values."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In particular, when using the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OUTDATED_MENU"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" code, the items listed in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"invalidItems"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be deactivated."},"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":"Version[1.0.6] - Sep 2, 2025"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Delivered"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Send Delivery Updates"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs related to \"Merchant Responsible Delivery\"."},"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":"Version[1.0.5] - Jul 25, 2025"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added Integrating with the Keeta API."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added Postman Collection."},"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":"Version[1.0.4] - Jul 18, 2025"},"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":"ORDERS changes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added the post "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/v1/batchDecrypt"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"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":"Version[1.0.3] - Jul 8, 2025"},"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":"ORDERS changes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added the post "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/v1/orders/{orderId}/dispatch"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"em","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"request validation only."},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"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":"Version[1.0.2] - Jul 7, 2025"},"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":"MERCHANT changes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Removed the post "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/v1/merchantStatus/{merchantId}/available"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"post /v1/merchantStatus/{merchantId}/unavailable"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, and unified the merchant status update through the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /merchantUpdate"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint (consistent with the native Open Delivery protocol)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"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":"Version[1.0.1] - Jun 30, 2025"},"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":"Response Body Structure Definition Change"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Version 1.0.0 introduced response body structural changes, while v1.0.1 was adjusted to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"maintain alignment with the Open Delivery"},"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":"ORDERS changes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated order events diagram and order flow diagram in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Overview"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Refund"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" instruction under "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Overview"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" which follows Keeta's refund rules."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added sample metadata for payload within "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_REFUND_REQUEST"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event that could be notified by polling or webhook mechanism."},"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":"MERCHANT changes"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The data structure and fields of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /merchantUpdate"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints are adjusted to be consistent with the native Open Delivery protocol."},"children":[]}]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/changelog"}],"panels":[]}]}},{"type":"separator","label":"FAQ","content":null},{"type":"group","label":"Authentication","link":"/apis/opendelivery/authentication","routeSlug":"/apis/opendelivery/authentication","items":[],"content":{"contentType":"group","meta":{"name":"Authentication"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Authentication","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"style","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n  .p-padding {\n    padding-left: 2em; /* 整个<p>左边空2字符，所有行都缩进 */\n  }\n  .empty-line {\n    height: 1.5em; /* 空行高度，1.5em≈1行半 */\n    line-height: 1.5em; /* 保证高度生效 */\n  }\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1.error response message：\"Invalid signature, Keeta sig is XXXXX. Refer to the documentation link https://xxxx for\n    signature calculation rules\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n      The signature calculation is abnormal. We recommend referring to "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/signature-calculation"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"the technical documentation"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" to\n    check your signature\n    calculation method (paying particular attention to the parameter order, client_id, and client_secret, etc.). The\n    documentation also provides a ready-to-run signature calculation method example (Java version). Finally, here is a\n    signature calculation verification tool we provide that you can use to help verify your calculation method\n    ("},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"/Signature Generator Tools"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"https://toolset.mynocode.host/"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":").\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.error response message：\"This client_id has no authorized Merchant. Please contact Merchant authorize\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"You must complete authorization at least one merchant before you can successfully exchange tokens for your\n    application;"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"3.error response message：\"The access token has expired, please reauthorize\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"You used an expired token to call the endpoint. Please call the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/authentication/gettoken"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"POST /oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" endpoint\n    again to refresh the token."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"4.error response message：\"The access token is invalid, please use a valid access token\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"You used an invalid token. Please check if the token and client_id you used match."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication"}],"panels":[]}]}},{"type":"group","label":"Merchant","link":"/apis/opendelivery/merchant","routeSlug":"/apis/opendelivery/merchant","items":[],"content":{"contentType":"group","meta":{"name":"Merchant"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Merchant","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1.The merchant endpoint returned an exception message,error response message: You must register your merchant on\n    Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"You must complete merchant authorization and onboarding before you can call the merchant API;\n    "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/integrating-with-keeta-api"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"integrating-with-keeta-api"},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.An exception occurred during the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/getmerchant"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    endpoint request："},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        This endpoint is provided by the software service, and Keeta will use it to retrieve the entire merchant's menu\n        information;\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        This endpoint needs to be sent to Keeta via the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"getMerchantURL.baseURL"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" property of the Onboarding\n        endpoint;\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        The specification recommends that the endpoint ends with the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" route, but this is "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"not\n        mandatory"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":". The\n        "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" can implement the URL in any way it sees fit, as long as it contains information from\n        only one\n        merchant. We will use the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"getMerchantURL.baseURL"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" property of the Onboarding endpoint as the standard.\n    "},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"3.Where can I get the "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"keetaMerchantId"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" parameter in the Onboarding endpoint (\"PUT /v1/merchantOnboarding\")?\n"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"span","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"b","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"keetaMerchantId"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":" is a merchant ID generated by Keeta, which can be obtained from the Keeta Developer Portal:"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"span","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/keetamerchantidimg.e48925b440a152d70e4099389491646dec023fc9ec0f1078374ce649d2830d1c.68d109a5.png","width":"60%","height":"60%"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"span","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchant"}],"panels":[]}]}},{"type":"group","label":"Polling/Webhook","link":"/apis/opendelivery/pollingwebhook","routeSlug":"/apis/opendelivery/pollingwebhook","items":[],"content":{"contentType":"group","meta":{"name":"Polling/Webhook"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Polling/Webhook","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1.Unable to get events via webhook/polling."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please check if the merchant authorization and "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/putmerchantonboarding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Onboarding"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        have been completed. This is a prerequisite for\n        successfully obtaining events.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please check if the eventType parameter in the Polling endpoint is filled in correctly. Must either be omitted\n        or\n        non-empty.\n    "},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.Error response message: Polling API returns an exception: \"[xx] is/are invalid\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"ol","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Please check if the merchant has completed "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/merchantendpoints/putmerchantonboarding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"Onboarding"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n        ,\n        or if the passed x-polling-merchants is valid.\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The x-polling-merchants parameter is a Headers parameter in the Polling endpoint, which requires passing the\n        merchant ID of the software service (generated by the software service and corresponding one-to-one with the\n        keeta merchant ID).\n    "},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"li","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"At the same time, the merchantId parameter needs to be sent to Keeta during merchant Onboarding."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/pollingwebhook"}],"panels":[]}]}},{"type":"group","label":"Order API","link":"/apis/opendelivery/order-api","routeSlug":"/apis/opendelivery/order-api","items":[],"content":{"contentType":"group","meta":{"name":"Order API"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order API","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"1.Error response message: \"order status is not in a valid state for XXXX\""},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"The order endpoint cannot be called repeatedly (e.g., an order that is already in the CONFIRMED state cannot be\n    confirm again; repeated calls will return the above error). Please check if the merchant has completed\n    operations such as confirm the order or dispatching the order in Merchant Portal, or if there is a repeated\n    call."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"h3","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"2.Unable to get complete customer information (e.g., phone number, address, name, coordinates) via "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/orderapi/orderdetails"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"order details\n    endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{"className":"p-padding"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"To comply with local laws and protect customers' personal privacy data, Keeta will return encrypted or\n    desensitized customer personal data for platform-delivered orders (customer information is not required for\n    fulfilling the contract in this scenario). For orders self-delivered by the merchant, Keeta will return\n    encrypted data, and the software service can decrypt it via the data decryption endpoint "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"a","attrs":{"href":"https://api-docs.mykeeta.com/apis/opendelivery/orderapi/batchdecrypt"}},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"POST /v1/batchDecrypt"},"children":[]}]},{"$$mdtype":"Node","type":"text","attributes":{"content":"\n    to get complete customer information."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"className":"empty-line"}},"children":[]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/order-api"}],"panels":[]}]}},{"type":"separator","label":"Api Reference","content":null},{"type":"group","label":"Authentication","link":"/apis/opendelivery/authentication","routeSlug":"/apis/opendelivery/authentication","items":[{"label":"Get Access Token","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/authentication/gettoken","routeSlug":"/apis/opendelivery/authentication/gettoken","metadata":{"seo":{"title":"Get Access Token","description":"Requests new access token for accessing Keeta API resources. If you have completed the development in full compliance with the Open Delivery native protocol's grant_type=client_credentials, please contact Keeta.If you have already completed development using grant_type=client_credentials and have passed SIT certification or are already in production, you can continue to use grant_type=client_credentials without any impact."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getToken","name":"Get Access Token","isWebhook":false,"pointer":"/paths/~1oauth~1token/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Access Token","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":"text","inline":true,"attributes":{"content":"Requests new access token for accessing Keeta API resources. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If you have completed the development in full compliance with the Open Delivery native protocol's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", please contact Keeta."},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If you have already completed development using "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and have passed SIT certification or are already in production, you can continue to use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type=client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" without any impact."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"  The Software Service must obtain the merchant’s authorization before accessing their data."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":5,"id":"authentication/gettoken/request/app-level-token-mode","deepLinkHash":"/authentication/gettoken#authentication/gettoken/request/app-level-token-mode"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"APP Level Token mode"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"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":"text","inline":true,"attributes":{"content":"Application-level access_token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The access_token can be used to access all stores authorized"},"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":"text","inline":true,"attributes":{"content":"grant_type = app_level_token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Generate and refresh access_token"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":5,"id":"authentication/gettoken/request/shop-level-authorization-code-mode","deepLinkHash":"/authentication/gettoken#authentication/gettoken/request/shop-level-authorization-code-mode"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Shop Level Authorization Code mode"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"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":"text","inline":true,"attributes":{"content":"Store-level access_token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The access_token can be used to access one store authorized"},"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":"text","inline":true,"attributes":{"content":"grant_type = shop_level_authorization_code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to generate access_token, and return "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for subsequent refresh"},"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":"text","inline":true,"attributes":{"content":"grant_type = refresh_toke"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"n: Use this parameter to refresh a new "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"access_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", before the old "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"access_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" expires."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_134"}},"schemaId":"schema_134","pointer":"/paths/~1oauth~1token/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/oauth/token","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"schema_134"}},"responseCodes":["200","401","503"],"pointer":"/oauth/token","href":"authentication/gettoken","openApiOperationId":"getToken","summary":"Get Access Token"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"schema_134","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_134"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successful returns token request.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_135"}},"schemaId":"schema_135"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1oauth~1token/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_135","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_135"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication/gettoken"}],"panels":[]}]},"httpPath":"/oauth/token"},{"label":"Get Authorization URL","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/authentication/getauthorizationurl","routeSlug":"/apis/opendelivery/authentication/getauthorizationurl","metadata":{"seo":{"title":"Get Authorization URL","description":"Get Keeta merchant authorization link for merchant authorization process."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getAuthorizationUrl","name":"Get Authorization URL","isWebhook":false,"pointer":"/paths/~1oauth~1authorization~1url/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Authorization URL","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":"text","inline":true,"attributes":{"content":"Get Keeta merchant authorization link for merchant authorization process."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"NOTE:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Merchants can click this link to complete the authorization process."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The returned URL can be used to redirect merchants to Keeta's authorization page."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL Example: \"https://merchant.mykeeta.com/m/web/openapi/authorize?locale=en&region=BR&cityId=110200008&risk_cost_id=&responseType=client_credentials&appId=2123830428&redirectUri=&state=&scope=all/#/app-activation\""},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"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":"Authorization Flow:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If Software Services wants merchants to be redirected to your own page after authorization, you can set the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUri"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" parameter accordingly."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When the merchant completes authorization, they will be redirected to your specified "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUri"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with the following parameters appended:"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"redirectUri?authId=authId&state=%s&appId=%s&timestamp=%s&keetaMerchantId=%s&code=%s\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"redirectUri?authId=authId&state=%s&appId=%s&timestamp=%s&keetaMerchantId=%s&code=%s\n"},"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":"Parameter definitions:"},"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":"authId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Unique authorization identifier for this specific authorization session. Use this ID for subsequent API calls."},"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":"state"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": State parameter for request/response correlation (matches your original request)"},"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":"appId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Your application identifier"},"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":"timestamp"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Authorization completion timestamp"},"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":"keetaMerchantId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The merchant ID generated by Keeta, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only returned when the application is in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"shop_level_authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" mode"},"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":"code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The authorization code generated by Keeta, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only returned when the application is in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"shop_level_authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" mode"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For detailed workflow, please refer to: "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/Merchant-Self-serve-Authorization"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Self-serve Authorization"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETSS_OA.png"}},"children":[]}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"clientId","in":"query","schemaId":"schema_136","description":"Client ID","required":true},{"name":"redirectUri","in":"query","schemaId":"schema_136","description":"redirectUri"}],"pointer":"/paths/~1oauth~1authorization~1url/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/oauth/authorization/url","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[{"name":"clientId","in":"query","required":true,"schemaId":"schema_136"},{"name":"redirectUri","in":"query","schemaId":"schema_136"}],"querystring":[],"header":[],"cookie":[]},"security":[],"responseCodes":["200","401","503"],"pointer":"/oauth/authorization/url","href":"authentication/getauthorizationurl","openApiOperationId":"getAuthorizationUrl","summary":"Get Authorization URL"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successfully retrieved authorization URL","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_137"}},"schemaId":"schema_137"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1oauth~1authorization~1url/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_137","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_137"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication/getauthorizationurl"}],"panels":[]}]},"httpPath":"/oauth/authorization/url"},{"label":"Get Authorized Merchant Store List","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/authentication/getmerchantinfo","routeSlug":"/apis/opendelivery/authentication/getmerchantinfo","metadata":{"seo":{"title":"Get Authorized Merchant Store List","description":"Retrieves authorized merchant store list with basic store information and pagination data."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getMerchantInfo","name":"Get Authorized Merchant Store List","isWebhook":false,"pointer":"/paths/~1oauth~1authorized~1{authId}~1merchantInfo/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Authorized Merchant Store List","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":"text","inline":true,"attributes":{"content":"Retrieves authorized merchant store list with basic store information and pagination data."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Valid access token required to access this endpoint."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns all authorized store information for the specified authorization ID with pagination support."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"USE CASE:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This endpoint is commonly used for "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"store binding"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" functionality, allowing service providers to retrieve authorized store details and bind them to their own systems for shop onboarding."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"authId","in":"path","schemaId":"schema_136","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authorization ID that uniquely identifies a specific authorization session. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Each authorization generates a unique authId. There are two ways to obtain the authId: "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" 1. Merchant authorization redirect - the authId is included in the redirect URL        "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" 2. Keeta Authorization Webhook - the authId is provided in the webhook payload "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Please refer to the following for the specific workflow:"},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/Merchant-Self-serve-Authorization"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Self-serve Authorization"},"children":[]}]}]}]}],"required":true}],"pointer":"/paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"pageNum","in":"query","schemaId":"schema_138","description":"Page number starting from 1"},{"name":"pageSize","in":"query","schemaId":"schema_139","description":"Number of items per page"}],"pointer":"/paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/oauth/authorized/{authId}/merchantInfo","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"authId","in":"path","required":true,"schemaId":"schema_136"}],"query":[{"name":"pageNum","in":"query","required":false,"schemaId":"schema_138"},{"name":"pageSize","in":"query","required":false,"schemaId":"schema_139"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["200","401","404","503"],"pointer":"/oauth/authorized/{authId}/merchantInfo","href":"authentication/getmerchantinfo","openApiOperationId":"getMerchantInfo","summary":"Get Authorized Merchant Store List"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successfully retrieved merchant store information","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantData","exampleIds":["paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success"]}},"schemaId":"components/schemas/MerchantData","exampleIds":["paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success"]},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/MerchantData","exampleIds":["paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantData","exampleIds":["paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success"]}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication/getmerchantinfo"}],"panels":[]}]},"httpPath":"/oauth/authorized/{authId}/merchantInfo"},{"label":"Receive Authorization Status Change Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/authentication/receiveauthorizationwebhook","routeSlug":"/apis/opendelivery/authentication/receiveauthorizationwebhook","metadata":{"seo":{"title":"Receive Authorization Status Change Notification","description":"Webhook Endpoint for Software Services"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"receiveAuthorizationWebhook","name":"Receive Authorization Status Change Notification","isWebhook":false,"pointer":"/paths/~1webhook~1authorization/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Receive Authorization Status 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":"Webhook Endpoint for Software Services"},"children":[]}]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This endpoint should be implemented by Software Services to receive authorization status change notifications from Keeta system."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This is an endpoint you need to implement on your server."},"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":"How to configure webhooks"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"  You can log in to the Developer Portal, where there is a webhook configuration section. You can configure webhooks there."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please focus only on the webhook configuration for Formal Store. 1301 represents the webhook for new authorization notifications, and 1302 represents the webhook for authorization cancellation notifications."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"p","attrs":{}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"/assets/webhook_for_authorization.df2cc0e378c27099dcd52634426743765260c78aa609ade1b4caf1ac2d8b7c31.68d109a5.jpg"}},"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":"Notification Triggers:"},"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":"Merchant adds new store authorization"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant cancels store authorization"},"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":"Technical Requirements:"},"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":"text","inline":true,"attributes":{"content":"Method:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" HTTP POST"},"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":"text","inline":true,"attributes":{"content":"Content-Type:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" application/json"},"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":"text","inline":true,"attributes":{"content":"Response Time:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Recommended within 5 seconds"},"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":"text","inline":true,"attributes":{"content":"HTTP Status:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Must return 200 for success"},"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":"text","inline":true,"attributes":{"content":"Response Format:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" JSON with code and message fields"},"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":"Best Practices:"},"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":"text","inline":true,"attributes":{"content":"Idempotency:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Use authId and opType to ensure operation idempotency"},"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":"text","inline":true,"attributes":{"content":"Async Processing:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Respond quickly, process business logic asynchronously"},"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":"text","inline":true,"attributes":{"content":"Logging:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Log all received notifications for troubleshooting"},"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":"text","inline":true,"attributes":{"content":"Monitoring:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Set up monitoring and alerting for webhook reception"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Service Provider"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTOA_SS.png"}},"children":[]}]}]},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"X-App-Signature","in":"header","schemaId":"schema_140","required":true}],"pointer":"/paths/~1webhook~1authorization/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/WebhookNotification","exampleIds":["paths/~1webhook~1authorization/post/requestBody/content/application~1json/example"]}},"schemaId":"components/schemas/WebhookNotification","exampleIds":["paths/~1webhook~1authorization/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1webhook~1authorization/post/requestBody","description":"Authorization status change notification data"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/webhook/authorization","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[{"name":"X-App-Signature","in":"header","required":true,"schemaId":"schema_140"}],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/WebhookNotification","exampleIds":["paths/~1webhook~1authorization/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","400","500"],"pointer":"/webhook/authorization","href":"authentication/receiveauthorizationwebhook","openApiOperationId":"receiveAuthorizationWebhook","summary":"Receive Authorization Status Change Notification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/WebhookNotification","exampleIds":["paths/~1webhook~1authorization/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/WebhookNotification","exampleIds":["paths/~1webhook~1authorization/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":"200","description":"Successfully processed webhook notification"},{"code":"400","description":"Invalid webhook data format","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/400/content/application~1json/example"]}},"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/400/content/application~1json/example"]},{"code":"500","description":"Internal server error processing webhook","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/500/content/application~1json/example"]}},"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1webhook~1authorization/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200"},{"code":"400","schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/400/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/400/content/application~1json/example"]}}},{"code":"500","schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/WebhookResponse","exampleIds":["paths/~1webhook~1authorization/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication/receiveauthorizationwebhook"}],"panels":[]}]},"httpPath":"/webhook/authorization"}],"content":{"contentType":"group","meta":{"name":"authentication"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Authentication","showPageActions":true}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/oauth/token","summary":"Get Access Token","prefix":{"name":"post","color":"post"},"badges":[],"link":"/authentication/gettoken","deprecated":false},{"title":"/oauth/authorization/url","summary":"Get Authorization URL","prefix":{"name":"get","color":"get"},"badges":[],"link":"/authentication/getauthorizationurl","deprecated":false},{"title":"/oauth/authorized/{authId}/merchantInfo","summary":"Get Authorized Merchant Store List","prefix":{"name":"get","color":"get"},"badges":[],"link":"/authentication/getmerchantinfo","deprecated":false},{"title":"/webhook/authorization","summary":"Receive Authorization Status Change Notification","prefix":{"name":"post","color":"post"},"badges":[],"link":"/authentication/receiveauthorizationwebhook","deprecated":false}]}]}]}]}},{"type":"group","label":"Merchant","link":"/apis/opendelivery/merchantendpoints","routeSlug":"/apis/opendelivery/merchantendpoints","items":[{"label":"Register / Update Merchant endpoint info.","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantendpoints/putmerchantonboarding","routeSlug":"/apis/opendelivery/merchantendpoints/putmerchantonboarding","metadata":{"seo":{"title":"Register / Update Merchant endpoint info.","description":"Register and update the Merchant endpoint GET /v1/merchant information in  Keeta. For the Software Service, all authorized merchant will use the same token.To enable Keeta to identify which merchant needs to be registered,the Software Service  must include the Keeta merchant ID in its requests.The Software Service should also save the mapping relationship between the Keeta merchant ID and its own merchant ID in the system.Merchants can obtain this merchantId from the Keeta merchant portal."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"putMerchantOnboarding","name":"Register / Update Merchant endpoint info.","isWebhook":false,"pointer":"/paths/~1v1~1merchantOnboarding/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Register / Update Merchant endpoint info.","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":"text","inline":true,"attributes":{"content":"Register and update the Merchant endpoint "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" information in  Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the Software Service, "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"all authorized merchant will use the same token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To enable Keeta to identify which merchant needs to be registered,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Software Service  must include the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta merchant ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in its requests."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Software Service should also save the mapping relationship between the Keeta merchant ID and its own merchant ID in the system."},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchants can obtain this merchantId from the Keeta merchant portal."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is necessary to provide the Keeta merchant ID to ensure that the mapping between the merchant ID of Software Service and the merchantId of Keeta is accurate."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If an existing "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta MerchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"External MerchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" under the App has been previously registered, any subsequent onboarding request containing these identifiers will result in the deletion of historical data and the creation of a new mapping configuration."},"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":"text","inline":true,"attributes":{"content":"Store registration via onboarding endpoint must be completed prior to order flow integration."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This enables Keeta to properly identify the merchantId in your system. Otherwise, no order events will be received via polling or webhook."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPUTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"merchantId","in":"query","schemaId":"schema_141","required":true}],"pointer":"/paths/~1v1~1merchantOnboarding/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MerchantAPIInfo"}},"schemaId":"components/schemas/MerchantAPIInfo","pointer":"/paths/~1v1~1merchantOnboarding/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v1/merchantOnboarding","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[{"name":"merchantId","in":"query","required":true,"schemaId":"schema_141"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MerchantAPIInfo"}},"responseCodes":["201","400","401","403","404","503"],"pointer":"/v1/merchantOnboarding","href":"merchantendpoints/putmerchantonboarding","openApiOperationId":"putMerchantOnboarding","summary":"Register / Update Merchant endpoint info."},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/MerchantAPIInfo","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MerchantAPIInfo"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"Resource has been created.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantAPIInfo"}},"schemaId":"components/schemas/MerchantAPIInfo"},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1merchantOnboarding/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MerchantAPIInfo","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantAPIInfo"}}},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantendpoints/putmerchantonboarding"}],"panels":[]}]},"httpPath":"/v1/merchantOnboarding"},{"label":"Get information of a Merchant","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantendpoints/getmerchant","routeSlug":"/apis/opendelivery/merchantendpoints/getmerchant","metadata":{"seo":{"title":"Get information of a Merchant","description":"Endpoint to get data of a specific merchant, such as basic info, menus, and services."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getMerchant","name":"Get information of a Merchant","isWebhook":false,"pointer":"/paths/~1v1~1merchant/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get information of a Merchant","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":"text","inline":true,"attributes":{"content":"Endpoint to get data of a specific merchant, such as basic info, menus, and services."},"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":"this endpoint can "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionally"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" require an "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"apiKey"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for authentication, and the Software Service that hosts the endpoint can decide whether it is needed."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Software Service can pass the data through the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/putMerchantOnboarding"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PUT /v1/merchantOnboarding"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The endpoint is designed so that "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"each merchant has its own URL"},"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":"text","inline":true,"attributes":{"content":"The specification recommends that the endpoint ends with the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" route, but this is "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not mandatory"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can implement the URL in any way it sees fit, as long as it contains information from "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only one"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" merchant."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"An item must have either a delivery price or a pickup price. Currently, item with only "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"indoor"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" price is not permitted."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SOFTWARE SERVICE"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETOA_SS.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"apiKey","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The apiKey is a key that should be generated by the endpoint's host and passed to its clients. Each client of the endpoint can have its own key. The creation and content of the key is of responsibility of the endpoint's host."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release, only the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint can require authentication via apiKey."},"children":[]}]}]}]}]}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v1/merchant","servers":[{"url":"https://{domain_of_the_software_service}"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"apiKey","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"responseCodes":["200","403","404","503"],"pointer":"/v1/merchant","href":"merchantendpoints/getmerchant","openApiOperationId":"getMerchant","summary":"Get information of a Merchant","securityGroups":[{},{"apiKey":[]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{domain_of_the_software_service}"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successful returns Merchant information.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Merchant","exampleIds":["paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample"]}},"schemaId":"components/schemas/Merchant","exampleIds":["paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample"]},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1merchant/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/Merchant","exampleIds":["paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Merchant","exampleIds":["paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample"]}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantendpoints/getmerchant"}],"panels":[]}]},"httpPath":"/v1/merchant"},{"label":"New Merchant Update Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantendpoints/merchantupdate","routeSlug":"/apis/opendelivery/merchantendpoints/merchantupdate","metadata":{"seo":{"title":"New Merchant Update Notification","description":"POST /v1/merchantUpdate/{merchantId}"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"merchantUpdate","name":"New Merchant Update Notification","isWebhook":false,"pointer":"/paths/~1v1~1merchantUpdate~1{merchantId}/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"New Merchant Update 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":"blockquote","attributes":{},"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":"POST /v1/merchantUpdate/{merchantId}"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information about a update in the systems."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This endpoint can be used in the following ways:"},"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":"1 - Sent with an empty body:"},"children":[]}]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This will force Keeta to make a new request to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to update all the merchant information."},"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":"2 - Sent with only the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field:"},"children":[]}]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This will force the opening or closing of the merchant within Keeta, without forcing a new "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" call."},"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":"3 - Sent with only the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"entityType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"updatedObjects"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" fields:"},"children":[]}]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This will force  Keeta to update only the sent objects, without forcing a new "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" call."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"1- Please do not pass "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"entityType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"&"},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"updatedObjects"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" at the same time. When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" has a value, the request will be regarded as updating only merchant status, and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"entityType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"&"},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"updatedObjects"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be ignored.Please update merchant status and other entity separately."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"2- When the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"entityType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field is populated, the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"updatedObjects"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field cannot be empty."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"3- It is recommended not to pass an empty body, but to pass a specific entity to be updated to avoid invalid update operations."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"4- An item must have either a delivery price or a pickup price. Currently, item with only "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"indoor"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" price is not permitted."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"5- The business status of a store is determined by many factors (business hours, number of items available for sale, merchant status, etc.)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"6- Please do note that the number of available Options under the Option Group must meet the Option Group's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"minPermitted"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" requirement. If not, the Option Group will become unfufillable, causing all items using this Option Group to be hidden on the APP."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"merchantId","in":"path","schemaId":"schema_142","required":true}],"pointer":"/paths/~1v1~1merchantUpdate~1{merchantId}/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MerchantUpdate"}},"schemaId":"components/schemas/MerchantUpdate","pointer":"/paths/~1v1~1merchantUpdate~1{merchantId}/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/merchantUpdate/{merchantId}","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"merchantId","in":"path","required":true,"schemaId":"schema_142"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MerchantUpdate"}},"responseCodes":["204","400","401","503"],"pointer":"/v1/merchantUpdate/{merchantId}","href":"merchantendpoints/merchantupdate","openApiOperationId":"merchantUpdate","summary":"New Merchant Update Notification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/MerchantUpdate","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MerchantUpdate"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The change was successfully notified to Keeta."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1merchantUpdate~1{merchantId}/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantendpoints/merchantupdate"}],"panels":[]}]},"httpPath":"/v1/merchantUpdate/{merchantId}"},{"label":"Get Merchant Status and Service Hours","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantendpoints/merchantstatus","routeSlug":"/apis/opendelivery/merchantendpoints/merchantstatus","metadata":{"seo":{"title":"Get Merchant Status and Service Hours","description":"Get /v1/merchant/{id}/status"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"merchantStatus","name":"Get Merchant Status and Service Hours","isWebhook":false,"pointer":"/paths/~1v1~1merchant~1{id}~1status/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Merchant Status and Service Hours","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Get /v1/merchant/{id}/status"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Return the merchant status, service hours(serviceHours), and sourceAppId."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"id","in":"path","schemaId":"schema_136","description":"The unique identifier of the merchant. The id is generated by the Software Service.","required":true}],"pointer":"/paths/~1v1~1merchant~1{id}~1status/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v1/merchant/{id}/status","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"id","in":"path","required":true,"schemaId":"schema_136"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["200","400","401","403","404","503"],"pointer":"/v1/merchant/{id}/status","href":"merchantendpoints/merchantstatus","openApiOperationId":"merchantStatus","summary":"Get Merchant Status and Service Hours"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"After the interface request is successful, it will return the business status, business hours, and source of the store. Based on this interface, you can check whether the update of store-related information through merchantUpdate is successful.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantStatus","exampleIds":["paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample"]}},"schemaId":"components/schemas/MerchantStatus","exampleIds":["paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample"]},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1merchant~1{id}~1status/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/MerchantStatus","exampleIds":["paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MerchantStatus","exampleIds":["paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample"]}}},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantendpoints/merchantstatus"}],"panels":[]}]},"httpPath":"/v1/merchant/{id}/status"},{"label":"Image Upload","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantendpoints/imageupload","routeSlug":"/apis/opendelivery/merchantendpoints/imageupload","metadata":{"seo":{"title":"Image Upload","description":"This endpoint allows merchants to upload images to the Keeta platform. The returned image URL can be used during menu synchronization."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"ImageUpload","name":"Image Upload","isWebhook":false,"pointer":"/paths/~1v1~1merchant~1image~1upload/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Image Upload","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":"text","inline":true,"attributes":{"content":"This endpoint allows merchants to upload images to the Keeta platform. The returned image URL can be used during menu synchronization."},"children":[]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"merchantId","in":"query","schemaId":"schema_141","required":true}],"pointer":"/paths/~1v1~1merchant~1image~1upload/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_143"}},"schemaId":"schema_143","pointer":"/paths/~1v1~1merchant~1image~1upload/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/merchant/image/upload","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[{"name":"merchantId","in":"query","required":true,"schemaId":"schema_141"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"schema_143"}},"responseCodes":["200","400","401","403","404","422","503"],"pointer":"/v1/merchant/image/upload","href":"merchantendpoints/imageupload","openApiOperationId":"ImageUpload","summary":"Image Upload"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"schema_143","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_143"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"upload result","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_144"}},"schemaId":"schema_144"},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1merchant~1image~1upload/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_144","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_144"}}},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantendpoints/imageupload"}],"panels":[]}]},"httpPath":"/v1/merchant/image/upload"}],"content":{"contentType":"group","meta":{"name":"merchantEndpoints"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Merchant","showPageActions":true},{"nodeType":"markdoc","content":" "}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/merchantOnboarding","summary":"Register / Update Merchant endpoint info.","prefix":{"name":"put","color":"put"},"badges":[],"link":"/merchantendpoints/putmerchantonboarding","deprecated":false},{"title":"/v1/merchant","summary":"Get information of a Merchant","prefix":{"name":"get","color":"get"},"badges":[],"link":"/merchantendpoints/getmerchant","deprecated":false},{"title":"/v1/merchantUpdate/{merchantId}","summary":"New Merchant Update Notification","prefix":{"name":"post","color":"post"},"badges":[],"link":"/merchantendpoints/merchantupdate","deprecated":false},{"title":"/v1/merchant/{id}/status","summary":"Get Merchant Status and Service Hours","prefix":{"name":"get","color":"get"},"badges":[],"link":"/merchantendpoints/merchantstatus","deprecated":false},{"title":"/v1/merchant/image/upload","summary":"Image Upload","prefix":{"name":"post","color":"post"},"badges":[],"link":"/merchantendpoints/imageupload","deprecated":false}]}]}]}]}},{"type":"group","label":"Order-Polling","link":"/apis/opendelivery/orderspolling","routeSlug":"/apis/opendelivery/orderspolling","items":[{"label":"Get New Events","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderspolling/pollingevents","routeSlug":"/apis/opendelivery/orderspolling/pollingevents","metadata":{"seo":{"title":"Get New Events","description":"Polls events for any orders from merchants associated with the authenticated user.Each event received from this endpoint must be properly acknowledged, otherwise it will continue to be returned on further requests."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"pollingEvents","name":"Get New Events","isWebhook":false,"pointer":"/paths/~1v1~1events:polling/get","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get New Events","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":"text","inline":true,"attributes":{"content":"Polls events for any orders from merchants associated with the authenticated user."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Each event received from this endpoint must be properly acknowledged, otherwise it will continue to be returned on further requests."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Important: The software service "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"must first call the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/putMerchantOnboarding"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Onboarding"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to register the store before calling this endpoint, otherwise the polling endpoint will not be able to obtain the events."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"eventType","in":"query","schemaId":"schema_145"}],"pointer":"/paths/~1v1~1events:polling/get/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"x-polling-merchants","in":"header","schemaId":"schema_146"}],"pointer":"/paths/~1v1~1events:polling/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v1/events:polling","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[{"name":"eventType","in":"query","schemaId":"schema_145"}],"querystring":[],"header":[{"name":"x-polling-merchants","in":"header","required":false,"schemaId":"schema_146"}],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["200","204","400","401","403","503"],"pointer":"/v1/events:polling","href":"orderspolling/pollingevents","openApiOperationId":"pollingEvents","summary":"Get New Events"},"definitionSamples":[{"lang":"curl","label":"cURL","source":"curl -i -X GET \\\n'https://open.mykeeta.com/api/open/opendelivery/v1/events:polling?eventType=CREATED,CANCELLED,CONCLUDED' \\\n-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \\\n-H 'X-App-Signature: YOUR_API_KEY_HERE' \\\n-H 'x-polling-merchants: 22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824'\n"}],"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successful returns list of polled events .","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderEventPollingResponse"}},"schemaId":"components/schemas/OrderEventPollingResponse"},{"code":"204","description":"No content."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1events:polling/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/OrderEventPollingResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderEventPollingResponse"}}},{"code":"204"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderspolling/pollingevents"}],"panels":[]}]},"httpPath":"/v1/events:polling"},{"label":"Acknowledge Events","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderspolling/pollingacknowledgment","routeSlug":"/apis/opendelivery/orderspolling/pollingacknowledgment","metadata":{"seo":{"title":"Acknowledge Events","description":"Acknowledge a set of events, dismissing them from future polling calls.HOST: Keeta"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"pollingAcknowledgment","name":"Acknowledge Events","isWebhook":false,"pointer":"/paths/~1v1~1events~1acknowledgment/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Acknowledge Events","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":"text","inline":true,"attributes":{"content":"Acknowledge a set of events, dismissing them from future polling calls."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_147"}},"schemaId":"schema_147","pointer":"/paths/~1v1~1events~1acknowledgment/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/events/acknowledgment","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"schema_147"}},"responseCodes":["202","400","401","403","404","503"],"pointer":"/v1/events/acknowledgment","href":"orderspolling/pollingacknowledgment","openApiOperationId":"pollingAcknowledgment","summary":"Acknowledge Events"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"schema_147","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_147"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1events~1acknowledgment/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderspolling/pollingacknowledgment"}],"panels":[]}]},"httpPath":"/v1/events/acknowledgment"}],"content":{"contentType":"group","meta":{"name":"ordersPolling"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order-Polling","showPageActions":true},{"nodeType":"markdoc","content":" "}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/events:polling","summary":"Get New Events","prefix":{"name":"get","color":"get"},"badges":[],"link":"/orderspolling/pollingevents","deprecated":false},{"title":"/v1/events/acknowledgment","summary":"Acknowledge Events","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderspolling/pollingacknowledgment","deprecated":false}]}]}]}]}},{"type":"group","label":"Order-Webhook","link":"/apis/opendelivery/orderswebhook","routeSlug":"/apis/opendelivery/orderswebhook","items":[{"label":"New Order Event Notification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderswebhook/newevent","routeSlug":"/apis/opendelivery/orderswebhook/newevent","metadata":{"seo":{"title":"New Order Event Notification","description":"POST /v1/newEvent"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"newEvent","name":"New Order Event Notification","isWebhook":false,"pointer":"/paths/~1v1~1newEvent/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"New Order Event 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":"blockquote","attributes":{},"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":"POST /v1/newEvent"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information about a new event in the systems"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SOFTWARE SERVICE"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTOA_SS.png"}},"children":[]}]}]},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"X-App-Id","in":"header","schemaId":"schema_148","required":true},{"name":"X-App-MerchantId","in":"header","schemaId":"schema_149","required":true},{"name":"X-App-Signature","in":"header","schemaId":"schema_150","required":true}],"pointer":"/paths/~1v1~1newEvent/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/Event"}},"schemaId":"components/schemas/Event","pointer":"/paths/~1v1~1newEvent/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/newEvent","servers":[{"url":"https://{domain_of_the_software_service}/api/open/opendelivery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[{"name":"X-App-Id","in":"header","required":true,"schemaId":"schema_148"},{"name":"X-App-MerchantId","in":"header","required":true,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824","schemaId":"schema_151"},{"name":"X-App-Signature","in":"header","required":true,"schemaId":"schema_150"}],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/Event"}},"responseCodes":["200","204","400","403","404","503"],"pointer":"/v1/newEvent","href":"orderswebhook/newevent","openApiOperationId":"newEvent","summary":"New Order Event Notification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{domain_of_the_software_service}/api/open/opendelivery"}],"schemaId":"components/schemas/Event","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/Event"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Status 200 available for compatibility reasons. Please use status 204 instead."},{"code":"204","description":"Data was received successfully. No response content."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1newEvent/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200"},{"code":"204"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderswebhook/newevent"}],"panels":[]}]},"httpPath":"/v1/newEvent"}],"content":{"contentType":"group","meta":{"name":"ordersWebhook"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order-Webhook","showPageActions":true},{"nodeType":"markdoc","content":" "}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/newEvent","summary":"New Order Event Notification","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderswebhook/newevent","deprecated":false}]}]}]}]}},{"type":"group","label":"Order-Order API","link":"/apis/opendelivery/orderapi","routeSlug":"/apis/opendelivery/orderapi","items":[{"label":"Get Order Details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/orderdetails","routeSlug":"/apis/opendelivery/orderapi/orderdetails","metadata":{"seo":{"title":"Get Order Details","description":"Endpoint to consult the details of an order.HOST: Keeta"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"orderDetails","name":"Get Order Details","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Order Details","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":"text","inline":true,"attributes":{"content":"Endpoint to consult the details of an order."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionGETSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_152","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v1/orders/{orderId}","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_152"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["200","400","401","403","404","503"],"pointer":"/v1/orders/{orderId}","href":"orderapi/orderdetails","openApiOperationId":"orderDetails","summary":"Get Order Details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Order returning success.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Order"}},"schemaId":"components/schemas/Order"},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/Order","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Order"}}},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/orderdetails"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}"},{"label":"Confirm","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/confirmorder","routeSlug":"/apis/opendelivery/orderapi/confirmorder","metadata":{"seo":{"title":"Confirm","description":"Informs  Keeta that the order has been accepted and preparation will start soon."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"confirmOrder","name":"Confirm","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1confirm/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Confirm","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":"text","inline":true,"attributes":{"content":"Informs  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order has been accepted and preparation will start soon."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CONFIRMED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_152","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1confirm/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderConfirmed"}},"schemaId":"components/schemas/OrderConfirmed","pointer":"/paths/~1v1~1orders~1{orderId}~1confirm/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/confirm","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_152"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/OrderConfirmed"}},"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/confirm","href":"orderapi/confirmorder","openApiOperationId":"confirmOrder","summary":"Confirm"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/OrderConfirmed","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderConfirmed"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1confirm/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/confirmorder"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/confirm"},{"label":"Ready For Pickup","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/orderready","routeSlug":"/apis/opendelivery/orderapi/orderready","metadata":{"seo":{"title":"Ready For Pickup","description":"Informs  Keeta that the order is ready for pickup."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"orderReady","name":"Ready For Pickup","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1readyForPickup/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Ready For Pickup","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":"text","inline":true,"attributes":{"content":"Informs  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order is ready for pickup."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"READY_FOR_PICKUP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_153","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1readyForPickup/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/readyForPickup","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_153"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/readyForPickup","href":"orderapi/orderready","openApiOperationId":"orderReady","summary":"Ready For Pickup"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1readyForPickup/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/orderready"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/readyForPickup"},{"label":"Request order cancellation","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/requestcancellation","routeSlug":"/apis/opendelivery/orderapi/requestcancellation","metadata":{"seo":{"title":"Request order cancellation","description":"Request order cancellation to Keeta."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"requestCancellation","name":"Request order cancellation","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1requestCancellation/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Request order cancellation","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":"text","inline":true,"attributes":{"content":"Request order cancellation to Keeta."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLATION_REQUESTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_153","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1requestCancellation/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RequestCancelled"}},"schemaId":"components/schemas/RequestCancelled","pointer":"/paths/~1v1~1orders~1{orderId}~1requestCancellation/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/requestCancellation","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_153"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/RequestCancelled"}},"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/requestCancellation","href":"orderapi/requestcancellation","openApiOperationId":"requestCancellation","summary":"Request order cancellation"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/RequestCancelled","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RequestCancelled"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/CancellationError"}},"schemaId":"components/schemas/CancellationError"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1requestCancellation/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/CancellationError","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/CancellationError"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/requestcancellation"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/requestCancellation"},{"label":"Accept order refund","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/acceptrefund","routeSlug":"/apis/opendelivery/orderapi/acceptrefund","metadata":{"seo":{"title":"Accept order refund","description":"Informs Keeta that the refund request has been accepted and the order can be refunded."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"acceptRefund","name":"Accept order refund","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1acceptRefund/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Accept order refund","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":"text","inline":true,"attributes":{"content":"Informs Keeta that the refund request has been accepted and the order can be refunded."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REFUNDED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_153","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1acceptRefund/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/acceptRefund","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_153"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["204","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/acceptRefund","href":"orderapi/acceptrefund","openApiOperationId":"acceptRefund","summary":"Accept order refund"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"Order refund has been confirmed. No response content."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1acceptRefund/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/acceptrefund"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/acceptRefund"},{"label":"Deny order refund","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/rejectrefund","routeSlug":"/apis/opendelivery/orderapi/rejectrefund","metadata":{"seo":{"title":"Deny order refund","description":"Informs Keeta that the refund request has been denied and the order cannot be refunded."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"rejectRefund","name":"Deny order refund","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1rejectRefund/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Deny order refund","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":"text","inline":true,"attributes":{"content":"Informs Keeta that the refund request has been denied and the order cannot be refunded."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REFUND_FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_153","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1rejectRefund/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RequestDenied"}},"schemaId":"components/schemas/RequestDenied","pointer":"/paths/~1v1~1orders~1{orderId}~1rejectRefund/post/requestBody","description":"Request for order cancellation has been denied."}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/rejectRefund","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_153"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/RequestDenied"}},"responseCodes":["204","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/rejectRefund","href":"orderapi/rejectrefund","openApiOperationId":"rejectRefund","summary":"Deny order refund"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/RequestDenied","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RequestDenied"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"Order refund has been denied. No response content."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1rejectRefund/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/rejectrefund"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/rejectRefund"},{"label":"BatchDecrypt","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/orderapi/batchdecrypt","routeSlug":"/apis/opendelivery/orderapi/batchdecrypt","metadata":{"seo":{"title":"BatchDecrypt","description":"Call this endpoint to decrypt the encrypted data returned by the API."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"batchDecrypt","name":"BatchDecrypt","isWebhook":false,"pointer":"/paths/~1v1~1batchDecrypt/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"BatchDecrypt","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":"text","inline":true,"attributes":{"content":"Call this endpoint to decrypt the encrypted data returned by the API."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"merchant self-delivery or third-party logistics (3PL)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" orders, this endpoint can be called to decrypt the user's phone number and address."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A maximum of "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"50"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" data items can be decrypted at once."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The encrypted data generally uses "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ENC_"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as a prefix."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The following data returned by the order details endpoints will be encrypted data (ciphertext data prefixed with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ENC_"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"):"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"list","attributes":{"ordered":true,"marker":"."},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"customer.​phone.​number"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delivery.​deliveryAddress.​district"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delivery.​deliveryAddress.​number"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delivery.​deliveryAddress.complement"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delivery.​deliveryAddress.​formattedAddress"},"children":[]}]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/BatchDecryptRequest"}},"schemaId":"components/schemas/BatchDecryptRequest","pointer":"/paths/~1v1~1batchDecrypt/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/batchDecrypt","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/BatchDecryptRequest"}},"responseCodes":["200","400","401","403","404","422","503"],"pointer":"/v1/batchDecrypt","href":"orderapi/batchdecrypt","openApiOperationId":"batchDecrypt","summary":"BatchDecrypt"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/BatchDecryptRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/BatchDecryptRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Message batch decrypt success.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/BatchDecryptResponse"}},"schemaId":"components/schemas/BatchDecryptResponse"},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1batchDecrypt/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/BatchDecryptResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/BatchDecryptResponse"}}},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/orderapi/batchdecrypt"}],"panels":[]}]},"httpPath":"/v1/batchDecrypt"}],"content":{"contentType":"group","meta":{"name":"orderAPI"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order-Order API","showPageActions":true},{"nodeType":"markdoc","content":" "}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/orders/{orderId}","summary":"Get Order Details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/orderapi/orderdetails","deprecated":false},{"title":"/v1/orders/{orderId}/confirm","summary":"Confirm","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/confirmorder","deprecated":false},{"title":"/v1/orders/{orderId}/readyForPickup","summary":"Ready For Pickup","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/orderready","deprecated":false},{"title":"/v1/orders/{orderId}/requestCancellation","summary":"Request order cancellation","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/requestcancellation","deprecated":false},{"title":"/v1/orders/{orderId}/acceptRefund","summary":"Accept order refund","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/acceptrefund","deprecated":false},{"title":"/v1/orders/{orderId}/rejectRefund","summary":"Deny order refund","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/rejectrefund","deprecated":false},{"title":"/v1/batchDecrypt","summary":"BatchDecrypt","prefix":{"name":"post","color":"post"},"badges":[],"link":"/orderapi/batchdecrypt","deprecated":false}]}]}]}]}},{"type":"group","label":"Order-Merchant Fulfill API","link":"/apis/opendelivery/merchantfulfillapi","routeSlug":"/apis/opendelivery/merchantfulfillapi","items":[{"label":"Dispatch","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantfulfillapi/dispatchorder","routeSlug":"/apis/opendelivery/merchantfulfillapi/dispatchorder","metadata":{"seo":{"title":"Dispatch","description":"Informs  Keeta that the order has been dispatched."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"dispatchOrder","name":"Dispatch","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1dispatch/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Dispatch","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":"text","inline":true,"attributes":{"content":"Informs  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order has been dispatched."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DISPATCHED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This endpoint should be sent "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only in cases where the order logistics service is provided by the Merchant and not the Marketplace"},"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":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_152","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1dispatch/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderDispatched"}},"schemaId":"components/schemas/OrderDispatched","pointer":"/paths/~1v1~1orders~1{orderId}~1dispatch/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/dispatch","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_152"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/OrderDispatched"}},"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/dispatch","href":"merchantfulfillapi/dispatchorder","openApiOperationId":"dispatchOrder","summary":"Dispatch"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/OrderDispatched","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderDispatched"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1dispatch/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantfulfillapi/dispatchorder"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/dispatch"},{"label":"Delivered","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantfulfillapi/orderdelivered","routeSlug":"/apis/opendelivery/merchantfulfillapi/orderdelivered","metadata":{"seo":{"title":"Delivered","description":"Informs  Keeta that the order has been delivered."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"orderDelivered","name":"Delivered","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1delivered/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Delivered","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":"text","inline":true,"attributes":{"content":"Informs  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order has been delivered."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected to receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event after this action."},"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:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This endpoint is not mandatory and should be sent "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only if the Ordering Application is able to receive this request and only in cases where the order logistics service is provided by the Merchant and not the Marketplace"},"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":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_152","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1delivered/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/delivered","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_152"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/delivered","href":"merchantfulfillapi/orderdelivered","openApiOperationId":"orderDelivered","summary":"Delivered"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1delivered/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantfulfillapi/orderdelivered"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/delivered"},{"label":"Send Delivery Updates","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/opendelivery/merchantfulfillapi/senddeliveryupdates","routeSlug":"/apis/opendelivery/merchantfulfillapi/senddeliveryupdates","metadata":{"seo":{"title":"Send Delivery Updates","description":"Sends information about the delivery in progress."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"sendDeliveryUpdates","name":"Send Delivery Updates","isWebhook":false,"pointer":"/paths/~1v1~1orders~1{orderId}~1tracking/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Send Delivery Updates","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":"text","inline":true,"attributes":{"content":"Sends information about the delivery in progress."},"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":"This endpoint should be used when the delivery is the responsibility of the Merchant, so the Software Service should send the delivery updates to the Ordering Application."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HOST:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"span","attrs":{"style":{"textDecoration":"underline","color":"#26323880","fontSize":"13.006px"}}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DIRECTION:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"div","attrs":{"align":"center"}},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","attributes":{"name":"img","attrs":{"src":"https://abrasel-nacional.github.io/opendelivery/images/directionPOSTSS_OA.png"}},"children":[]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"OAuth2","scopes":["od.all"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"name":"Sig","scopes":[],"type":"apiKey","in":"header","paramName":"X-App-Signature","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"orderId","in":"path","schemaId":"schema_152","required":true}],"pointer":"/paths/~1v1~1orders~1{orderId}~1tracking/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderTracking"}},"schemaId":"components/schemas/OrderTracking","pointer":"/paths/~1v1~1orders~1{orderId}~1tracking/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/orders/{orderId}/tracking","servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"parameters":{"path":[{"name":"orderId","in":"path","required":true,"schemaId":"schema_152"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"OAuth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},{"id":"Sig","type":"apiKey","name":"X-App-Signature","in":"header"}],"scopes":["od.all"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/OrderTracking"}},"responseCodes":["202","400","401","403","404","422","503"],"pointer":"/v1/orders/{orderId}/tracking","href":"merchantfulfillapi/senddeliveryupdates","openApiOperationId":"sendDeliveryUpdates","summary":"Send Delivery Updates"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"schemaId":"components/schemas/OrderTracking","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/OrderTracking"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"202","description":"Request has been accepted for processing."},{"code":"400","description":"Bad Request","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"401","description":"Request lacks valid authentication credentials for the target resource","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"403","description":"Authenticated participant request that violates some authorization rule.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The requested resource was not found.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"422","description":"Server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions. (Check if the instruction has not been sent before.)","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"503","description":"Service is not currently available. Requested service may be under maintenance or outside the operating window.","mediaType":"application/problem+json","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1v1~1orders~1{orderId}~1tracking/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"202"},{"code":"400","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"403","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"422","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}},{"code":"503","schemaId":"components/schemas/Error","mediaTypes":["application/problem+json"],"mediaTypeContent":{"application/problem+json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/merchantfulfillapi/senddeliveryupdates"}],"panels":[]}]},"httpPath":"/v1/orders/{orderId}/tracking"}],"content":{"contentType":"group","meta":{"name":"merchantFulfillAPI"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order-Merchant Fulfill API","showPageActions":true},{"nodeType":"markdoc","content":" "}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/orders/{orderId}/dispatch","summary":"Dispatch","prefix":{"name":"post","color":"post"},"badges":[],"link":"/merchantfulfillapi/dispatchorder","deprecated":false},{"title":"/v1/orders/{orderId}/delivered","summary":"Delivered","prefix":{"name":"post","color":"post"},"badges":[],"link":"/merchantfulfillapi/orderdelivered","deprecated":false},{"title":"/v1/orders/{orderId}/tracking","summary":"Send Delivery Updates","prefix":{"name":"post","color":"post"},"badges":[],"link":"/merchantfulfillapi/senddeliveryupdates","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/ClientCredentialsRequest":{"id":"components/schemas/ClientCredentialsRequest","kind":"json-schema","title":"ClientCredentialsRequest","data":{"type":"object","required":["client_id","grant_type","client_secret"],"properties":{"client_id":{"type":"string","description":"Client identifier provided by Keeta."},"grant_type":{"type":"string","description":"The OAuth grant type.","enum":["app_level_token"]},"client_secret":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Client Secret provided by Keeta.(When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type = app_level_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in)"},"children":[]}]}]}]}}}},"components/schemas/TokenResponseClientCredentials":{"id":"components/schemas/TokenResponseClientCredentials","kind":"json-schema","title":"TokenResponseClientCredentials","data":{"type":"object","properties":{"access_token":{"type":"string","description":"A code representing the access token."},"token_type":{"type":"string","example":"bearer","description":"The token type. Currently, the only supported type is bearer."},"expires_in":{"type":"integer","description":"The token expiration time in seconds"}},"required":["access_token","token_type"]}},"components/schemas/TokenResponseWithRefreshToken":{"id":"components/schemas/TokenResponseWithRefreshToken","kind":"json-schema","title":"TokenResponseWithRefreshToken","data":{"allOf":[{"$ref":"#/components/schemas/TokenResponseClientCredentials"},{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A code representing the refresh token."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Condition:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This field will be returned when the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"shop_level_authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is set to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"app_level_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the response does not contain this field."},"children":[]}]}]}]}}}]}},"components/schemas/ShopLevelAuthorizationCodeRequest":{"id":"components/schemas/ShopLevelAuthorizationCodeRequest","kind":"json-schema","title":"ShopLevelAuthorizationCodeRequest","data":{"type":"object","required":["client_id","grant_type","authorization_code"],"properties":{"client_id":{"type":"string","description":"Client identifier provided by Keeta."},"grant_type":{"type":"string","description":"The OAuth grant type.","enum":["shop_level_authorization_code"]},"authorization_code":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","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":"grant_type = shop_level_authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in"},"children":[]}]}]}]}}}},"components/schemas/RefreshTokenRequest":{"id":"components/schemas/RefreshTokenRequest","kind":"json-schema","title":"RefreshTokenRequest","data":{"type":"object","required":["client_id","grant_type","refresh_token"],"properties":{"client_id":{"type":"string","description":"Client identifier provided by Keeta."},"grant_type":{"type":"string","description":"The OAuth grant type.","enum":["refresh_token"]},"refresh_token":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","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":"grant_type = refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in"},"children":[]}]}]}]}}}},"components/schemas/VersionOrderingApp":{"id":"components/schemas/VersionOrderingApp","kind":"json-schema","title":"VersionOrderingApp","data":{"type":"object","properties":{"merchant":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information regarding the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant's"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" standard endpoints."},"children":[]}]}]}],"properties":{"version":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Current version for MERCHANT endpoints."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Existing MERCHANT routes:"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"\"POST /v1/merchantUpdate\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"GET /v1/merchantStatus\""},"children":[]}]}]}]}]}],"enum":["1.0.0","1.0.1","1.1.0","1.1.1","1.2.0","1.2.1","1.3.0","1.3.1","1.4.0","1.5.0"]}}},"order":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information regarding the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order's"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" standard endpoints."},"children":[]}]}]}],"properties":{"version":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Current version for ORDER endpoints."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Existing ORDER routes:"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"\"GET /v1/events:polling\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/events/acknowledgment\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"GET /v1/orders/{orderId}\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/confirm\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/preparing\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/readyForPickup\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/pickedUp\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/dispatch\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/delivered\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/requestCancellation\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/acceptCancellation\""},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"POST /v1/orders/{orderId}/denyCancellation\""},"children":[]}]}]}]}]}],"enum":["1.0.0","1.0.1","1.1.0","1.1.1","1.2.0","1.2.1","1.3.0","1.3.1","1.4.0","1.5.0"]},"availableEventsMethods":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Lists which methods for obtaining new order events the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can use with this "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string","enum":["POLLING","WEBHOOK"]}}}}}}},"components/schemas/VersionMerchant":{"id":"components/schemas/VersionMerchant","kind":"json-schema","title":"VersionMerchant","data":{"type":"object","properties":{"merchantEndpoint":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Current version for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]}],"enum":["1.0.0","1.0.1","1.1.0","1.1.1","1.2.0","1.2.1"]},"ordersWebhook":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Current version for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/v1/orderUpdate"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" webhook."},"children":[]}]}]}],"enum":["1.0.0","1.0.1","1.1.0","1.1.1","1.2.0","1.2.1"]}}}},"components/schemas/CommonResponse":{"id":"components/schemas/CommonResponse","kind":"json-schema","title":"CommonResponse","data":{"type":"object","required":["status"],"properties":{"status":{"type":"integer","description":"Response Code"},"title":{"type":"string","description":"Response Message"}}}},"components/schemas/OrderEventPollingResponse":{"id":"components/schemas/OrderEventPollingResponse","kind":"json-schema","title":"OrderEventPollingResponse","data":{"type":"array","items":{"$ref":"#/components/schemas/Event"},"maxItems":1000,"description":"Response Message"}},"components/schemas/TokenRequest":{"id":"components/schemas/TokenRequest","kind":"json-schema","title":"TokenRequest","data":{"type":"object","title":"TokenRequest","required":["client_id","client_secret","grant_type"],"properties":{"client_id":{"type":"string","description":"Client identifier provided by Keeta."},"client_secret":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Client Secret provided by Keeta.(When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type = app_level_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in)"},"children":[]}]}]}]},"grant_type":{"type":"string","enum":["app_level_token","shop_level_authorization_code","refresh_token"],"description":"The OAuth grant type."},"authorization_code":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","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":"grant_type = shop_level_authorization_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in"},"children":[]}]}]}]},"refresh_token":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","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":"grant_type = refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field needs to be filled in"},"children":[]}]}]}]}}}},"components/schemas/TokenResponse":{"id":"components/schemas/TokenResponse","kind":"json-schema","title":"TokenResponse","data":{"type":"object","title":"TokenResponse","required":["access_token","token_type"],"properties":{"access_token":{"type":"string","description":"A code representing the access token."},"token_type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The token type. Currently, the only supported type is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"bearer"},"children":[]}]}]}],"enum":["bearer"]},"expires_in":{"type":"number","format":"Long","example":21600,"description":"The token expiration time in seconds"},"refresh_token":{"type":"string","description":"A code representing the refresh token."}}}},"components/schemas/Merchant":{"id":"components/schemas/Merchant","kind":"json-schema","title":"MenuEntity","data":{"type":"object","title":"MenuEntity","required":["id","status","basicInfo","services","items","menus","categories","itemOffers"],"properties":{"lastUpdate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The last modified date and time in ISO timestamp format but with type String."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This should be used in conjuction of the TTL field to update the information on the ordering aplication."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info).\""},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"2021-05-27T20:45:10.332Z"},"TTL":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Time to Live (in seconds)."},"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":"Min: 500"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Max: 86400"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A new request must be done when the TTL expires."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":500},"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"status":{"type":"string","description":"Indicates if the Merchant is Available or Unavailable. Only use this type when you must close (disable) the merchant due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"basicInfo":{"type":"object","description":"A required entity to implement. Describes basic info of a merchant.","allOf":[{"$ref":"#/components/schemas/BasicInfo"}]},"services":{"type":"array","description":"A required entity to implement. Describes food ordering services details for a merchant.","items":{"$ref":"#/components/schemas/Service"}},"menus":{"type":"array","description":"A required entity to implement. Describes an array of menus.","items":{"$ref":"#/components/schemas/Menu"}},"categories":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of sections in the menu where "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be showed."},"children":[]}]}]}],"items":{"type":"object","$ref":"#/components/schemas/Category"}},"itemOffers":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of offers for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Items"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"object","$ref":"#/components/schemas/ItemOffer"}},"items":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of items. To be used with an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"$ref":"#/components/schemas/Item"}},"optionGroups":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes additional options of an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"$ref":"#/components/schemas/OptionGroup"}},"availabilities":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes the time period during which a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity is served."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Note:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Our current menu model supports the following options for configuring product availability:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     1. Specific date ranges defined by the startDate and endDate fields"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     2. A weekly schedule defined by the hours array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Combination of 1 and 2 are not supported."},"children":[]}]}]}]}]}],"items":{"type":"object","allOf":[{"$ref":"#/components/schemas/Availability"}]}}}}},"components/schemas/MerchantStatus":{"id":"components/schemas/MerchantStatus","kind":"json-schema","title":"MenuEntity","data":{"type":"object","title":"MenuEntity","required":["status","services","merchantSourceAppId","Service","ServiceHour","Week Hour","Time Periods"],"properties":{"status":{"type":"string","description":"Indicates if the Merchant is Avaliable or Unavaliable. Only use this type when you must close (disable) the merchant due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"services":{"type":"array","description":"Stores the business information of the store, used to set the business hours and special business hours for the business days of this store."},"merchantSourceAppId":{"type":"string","description":"Keeta internal store ID, identifying the source of Keetapp.","example":"Keeta"},"Service":{"type":"object","description":"Stores the business information of the store, used to set the business hours and special business hours for the business days of this store.","allOf":[{"$ref":"#/components/schemas/MerchantService"}]},"ServiceHour":{"type":"object","description":"A required entity to implement. Describes an array of menus.","allOf":[{"$ref":"#/components/schemas/ServiceHour"}]},"Week Hour":{"type":"array","description":"A list of the day(s) of the week and time periods for which the service is valid.","items":{"type":"object","$ref":"#/components/schemas/HourObject"}},"Holiday Hours":{"type":"array","description":"Map of holiday dates, each with optional timePeriods. If a date does not have a time period specified, the restaurant will be closed for that date.","items":{"type":"object","$ref":"#/components/schemas/HolidayHoursObject"}},"Time Periods":{"type":"array","description":"hours object.","items":{"type":"object","$ref":"#/components/schemas/TimePeriodsObject"}}}}},"components/schemas/UpdateMerchant":{"id":"components/schemas/UpdateMerchant","kind":"json-schema","title":"UpdateMerchant","data":{"type":"object","required":["id","status","basicInfo","services","items","menus","categories","itemOffers"],"properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100},"status":{"type":"string","description":"Indicates if the Merchant is Available or Unavailable. Only use this type when you must close (disable) the merchant due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"basicInfo":{"type":"object","description":"A required entity to implement. Describes basic info of a merchant.","allOf":[{"$ref":"#/components/schemas/BasicInfo"}]},"services":{"type":"array","description":"A required entity to implement. Describes food ordering services details for a merchant.","items":{"$ref":"#/components/schemas/Service"}},"menus":{"type":"array","description":"A required entity to implement. Describes an array of menus.","items":{"$ref":"#/components/schemas/Menu"}},"categories":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of sections in the menu where "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be showed."},"children":[]}]}]}],"items":{"type":"object","$ref":"#/components/schemas/Category"}},"itemOffers":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of offers for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Items"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"object","$ref":"#/components/schemas/ItemOffer"}},"items":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of items. To be used with an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"$ref":"#/components/schemas/Item"}},"optionGroups":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes additional options of an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"$ref":"#/components/schemas/OptionGroup"}},"availabilities":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes the time period during which a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity is served."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Note:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Our current menu model supports the following options for configuring product availability:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     1. Specific date ranges defined by the startDate and endDate fields"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     2. A weekly schedule defined by the hours array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Combination of 1 and 2 are not supported."},"children":[]}]}]}]}]}],"items":{"type":"object","allOf":[{"$ref":"#/components/schemas/Availability"}]}}}}},"components/schemas/MerchantDescription":{"id":"components/schemas/MerchantDescription","kind":"json-schema","title":"MenuEntity","data":{"type":"object","title":"MenuEntity","required":["id","status","basicInfo","services","items","menus","categories","itemOffers"],"properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. `"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the company responsible for the merchant's menu and have to be informed in the Order object by the "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"status":{"type":"string","description":"Indicates if the entity is Available or Unavailable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"]},"basicInfo":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/BasicInfo"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"BasicInfo"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes basic info of a merchant."},"children":[]}]}]}]},"services":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Service"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Service"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes food ordering services details for a merchant."},"children":[]}]}]}],"items":{"type":"object"}},"menus":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Menu"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of menus."},"children":[]}]}]}],"items":{"type":"object"}},"items":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu/Item"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of items. To be used with an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OptionGroups"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"object"}},"categories":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu/Category"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Category"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of sections in the menu where "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be showed."},"children":[]}]}]}],"items":{"type":"object"}},"itemOffers":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu/ItemOffer"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ItemOffers"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A required entity to implement. Describes an array of offers for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Items"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"object"}},"optionGroups":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu/OptionGroup-and-Option"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Options"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes additional options of an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"object"}},"availabilities":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See: "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/Menu/Availability"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Availability"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An optional entity to implement. Describes the time period during which a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity is served."},"children":[]}]}]}],"items":{"type":"object"}}}}},"components/schemas/MerchantService":{"id":"components/schemas/MerchantService","kind":"json-schema","title":"Service","data":{"type":"object","title":"Service","required":["serviceType","serviceHours"],"properties":{"id":{"type":"string","description":"This id is always null because it is derived from the software service provider."},"serviceType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The type of service being offered("},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta only supports DELIVERY"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"):"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - for orders that will be delivered to the customer's address."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAKEOUT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be picked up at the establishment by the customer"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INDOOR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be consumed inside the establishment."},"children":[]}]}]}],"enum":["DELIVERY","TAKEOUT","INDOOR"],"example":"DELIVERY"},"serviceHours":{"type":"object","description":"A required entity to implement. Describes the time window which users can place orders","properties":{"weekHours":{"type":"object","description":"A list of the day(s) of the week and time periods for which the service is valid.","properties":{"dayOfWeek":{"type":"string","description":"Day of the week for which these service hours are valid.","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"example":["MONDAY","TUESDAY"]},"timePeriods":{"type":"string","description":"The time when users can place orders; please refer to the Time Periods Object for details."}}},"holidayHours":{"type":"object","description":"Map of holiday dates, each with optional timePeriods. If a date does not have a time period specified, the restaurant will be closed for that date.","properties":{"date":{"type":"string","description":"date in UTC (RFC3339 format, e.g. 2021-07-04).","example":"2021-12-25"},"timePeriods":{"type":"object","description":"The time when users can place orders; please refer to the Time Periods Object for details.","properties":{"startTime":{"type":"string","description":"Convert the time zone of the secondary city where the Keeta store is located to UTC-0; this value is UTC-0.","example":"09:00:00"},"endTime":{"type":"string","description":"Convert the time zone of the secondary city where the Keeta store is located to UTC-0; this value is UTC-0.","example":"18:00:00"}}}}}}}}}},"components/schemas/ServiceHour":{"id":"components/schemas/ServiceHour","kind":"json-schema","title":"ServiceHour","data":{"type":"object","required":["id","weekHours","holidayHours"],"properties":{"weekHours":{"type":"array","description":"Map of holiday dates, each with optional timePeriods. If a date does not have a time period specified, the restaurant will be closed for that date."},"holidayHours":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For special date time periods, the service will be closed if no specific time period is designated"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":".Map of holiday dates, each with optional timePeriods. If a date does not have a time period specified, the restaurant will be closed for that date."},"children":[]}]}]}]}}}},"components/schemas/HourObject":{"id":"components/schemas/HourObject","kind":"json-schema","title":"HourObject","data":{"type":"object","required":["dayOfWeek","timePeriods"],"properties":{"dayOfWeek":{"type":"string","description":"Day of the week for which these service hours are valid.","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"example":["MONDAY","TUESDAY"]},"timePeriods":{"type":"object","description":"The time when users can place orders; please refer to the Time Periods Object for details."}}}},"components/schemas/HolidayHoursObject":{"id":"components/schemas/HolidayHoursObject","kind":"json-schema","title":"HolidayHoursObject","data":{"type":"object","properties":{"date":{"type":"string","description":"date in UTC (RFC3339 format, e.g. 2021-07-04).","example":"2021-12-25"},"timePeriods":{"type":"object","description":"The time when users can place orders; please refer to the Time Periods Object for details."}}}},"components/schemas/TimePeriodsObject":{"id":"components/schemas/TimePeriodsObject","kind":"json-schema","title":"TimePeriodsObject","data":{"type":"object","required":["startTime","endTime"],"properties":{"startTime":{"type":"string","description":"Convert the time zone of the secondary city where the Keeta store is located to UTC-0; this value is UTC-0.","example":"09:00:00"},"endTime":{"type":"string","description":"Convert the time zone of the secondary city where the Keeta store is located to UTC-0; this value is UTC-0.","example":"18:00:00"}}}},"components/schemas/BasicInfo":{"id":"components/schemas/BasicInfo","kind":"json-schema","title":"BasicInfo","data":{"type":"object","title":"BasicInfo","required":["contactEmails","contactPhones"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Public Name"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"maxLength":500,"example":"Pizza Plaza"},"document":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Document"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"pattern":"^\\d{14}$","example":"22815773000169"},"corporateName":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Corporate Name"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"maxLength":500,"example":"Food Company"},"description":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Description"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"Food company specializing in pizzas."},"averageTicket":{"type":"number","format":"decimal","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Average Ticket. Can be used to show the price range of items available at the merchant. It is not mandatory, but recommended to be used."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":90},"averagePreparationTime":{"type":"number","format":"double","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Average amount of time preparing an order takes, in minutes."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":20},"minOrderValue":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Minimum order value that the merchant accepts."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"merchantType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Type.Currently, only "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"RESTAURANT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is accepted."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"enum":["RESTAURANT"],"example":"RESTAURANT"},"merchantCategories":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Categories"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"items":{"type":"string","enum":["BURGERS","PIZZA","FAST_FOOD","HOT_DOG","JAPANESE","DESSERTS","AMERICAN","ICE_CREAM","BBQ","SANDWICH","MEXICAN","BRAZILIAN","PASTRY","ARABIAN","COMFORT_FOOD","VEGETARIAN","VEGAN","BAKERY","HEALTHY","ITALIAN","CHINESE","JUICE_SMOOTHIES","SEAFOOD","CAFE","SALADS","COFFEE_TEA","PASTA","BREAKFAST_BRUNCH","LATIN_AMERICAN","CONVENIENCE","PUB","HAWAIIAN","EUROPEAN","FAMILY_MEALS","FRENCH","INDIAN","PORTUGUESE","SPANISH","GOURMET","KIDS_FRIENDLY","SOUTH_AMERICAN","SPECIALTY_FOODS","ARGENTINIAN","PREMIUM","AFFORDABLE_MEALS"]},"example":["PIZZA","FAMILY_MEALS","PREMIUM"]},"address":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Address"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Address"}]},"contactEmails":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Contact Emails. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Only supports up to 3"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string"},"example":["food@company.com"]},"contactPhones":{"type":"object","description":"Merchant Contact Phones.","allOf":[{"$ref":"#/components/schemas/ContactPhones"}]},"logoImage":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Image to be used as the merchant logo."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Image"}]},"bannerImage":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Image to be used as the merchant banner (the banner display depends on the client application interface)."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Image"}]},"createdAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant creation date and time. \\n\\n(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}]},"acceptedCards":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates which card brands are accepted by the merchant."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"items":{"type":"string","enum":["VISA","MASTERCARD","DINERS","AMEX","HIPERCARD","ELO","AURA","DISCOVER","VR_BENEFICIOS","SODEXO","TICKET","GOOD_CARD","BANESCARD","SOROCARD","POLICARD","VALECARD","AGICARD","JCB","CREDSYSTEM","CABAL","GREEN_CARD","VEROCHEQUE","AVISTA","OTHER"]}}}}},"components/schemas/Service":{"id":"components/schemas/Service","kind":"json-schema","title":"Service","data":{"type":"object","title":"Service","required":["id","serviceType","menuId","serviceHours"],"properties":{"id":{"type":"string","description":"Unique Identifier","example":"f078e8e2-3044-4eec-b4a8-8359810de123"},"status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates if the entity is Avaliable or Unavaliable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays)."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"serviceType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The type of service being offered:"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - for orders that will be delivered to the customer's address."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAKEOUT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be picked up at the establishment by the customer"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INDOOR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be consumed inside the establishment."},"children":[]}]}]}],"enum":["DELIVERY","TAKEOUT","INDOOR"],"example":"DELIVERY"},"serviceTiming":{"type":"object","title":"Service Timing","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information regarding the accepted service times."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"properties":{"timing":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the timings that the service accepts:"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INSTANT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders that must be prepared immediately."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SCHEDULED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders scheduled for a specific date and time."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ONDEMAND"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders that will only be delivered when the consumer indicates that they are going to pick it up."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please inform all accepted types in the field."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If not informed, defaults to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INSTANT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" option."},"children":[]}]}]}],"items":{"type":"string","enum":["INSTANT","SCHEDULED","ONDEMAND"]},"default":["INSTANT"],"example":["INSTANT","SCHEDULED"]},"schedule":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information regarding the time windows for scheduling."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This only applies to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SCHEDULED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" service timing."},"children":[]}]}]}],"required":["scheduleTimeWindow","scheduleStartWindow","scheduleEndWindow"],"properties":{"scheduleTimeWindow":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Time window where scheduling will be possible."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: If "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"15_MINUTES"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is chosen, then the available scheduling times will be displayed every 15 minutes (e.g. 9:15, 9:30, 9:45, 10:00)."},"children":[]}]}]}]}],"enum":["15_MINUTES","30_MINUTES","45_MINUTES","60_MINUTES","90_MINUTES","120_MINUTES"]},"scheduleStartWindow":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs how long after the merchant has opened (considering the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"serviceHours"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity) the first schedule time will be displayed."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: Service starts at 9:00 and the option "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"45_MINUTES"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" was entered, then the first available time for scheduling will be 9:45."},"children":[]}]}]}]}],"enum":["15_MINUTES","30_MINUTES","45_MINUTES","60_MINUTES","90_MINUTES","120_MINUTES"]},"scheduleEndWindow":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs how long before the merchant closes (considering the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"serviceHours"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity) the last schedule time will be displayed."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: Service ends at 23:00 and the option "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"60_MINUTES"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" was entered, then the last available time for scheduling will be 22:00."},"children":[]}]}]}]}],"enum":["15_MINUTES","30_MINUTES","45_MINUTES","60_MINUTES","90_MINUTES","120_MINUTES"]}}}}},"servicePriority":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates to the Ordering Application whether the merchant works with different order preparation and delivery priorities."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Must enter up to how many priority levels the merchant serves."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If not entered, it means that the merchant does not have any specific configuration for working with priority, and may or may not be able to do so."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"items":{"type":"string","enum":["PRIORITY1","PRIORITY2","PRIORITY3","PRIORITY4","PRIORITY5"]},"example":["PRIORITY1","PRIORITY2"]},"menuId":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The id value of the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Menu"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity correlated to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity."},"children":[]}]}]}],"type":"string","example":"f627ccdc-6789-456f-a782-148538d5035b"},"targetAppId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field is for situations in which the merchant needs to send different menus for the same "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"serviceType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to different Ordering Applications (this can occur when there is an integration software between the merchant software and the Ordering Application). In this case this field must be filled in with the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AppId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the OrderingApplication which will receive this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}]},"serviceArea":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A conditional entity to implement (required if the Service entity associated has serviceType set to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"). Describes the geographical region in which food can be delivered."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/ServiceArea"}]},"serviceHours":{"type":"object","description":"A required entity to implement. Describes the time window which users can place orders.","allOf":[{"$ref":"#/components/schemas/ServiceHours"}]}}}},"components/schemas/ServiceArea":{"id":"components/schemas/ServiceArea","kind":"json-schema","title":"Service Area","data":{"type":"object","title":"Service Area","required":["id"],"properties":{"id":{"type":"string","description":"A unique identifier of the service area.","example":"01339e6d-520b-429e-bc7c-dcfd2df42278"},"polygon":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"polygon"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is chosen to be used, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"geoRadius"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not required."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A polygon or multipolygon expressed as a series of three or more space delimited points."},"children":[]}]}]}],"items":{"allOf":[{"$ref":"#/components/schemas/Polygon"}]}},"geoRadius":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"geoRadius"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is chosen to be used, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"polygon"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not required. Indicates the approximate radius (in meters) of the CIRCLE area."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/GeoRadius"}]},"exclusionAreaPolygon":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This object will act as a complement, indicating specific polygons within the previously mapped delivery area, where NO deliveries will be made."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field can be filled in regardless of whether "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"polygon"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"geoRadius"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is used."},"children":[]}]}]}],"items":{"allOf":[{"$ref":"#/components/schemas/ExclusionPolygon"}]}}}}},"components/schemas/Polygon":{"id":"components/schemas/Polygon","kind":"json-schema","title":"Polygon","data":{"type":"object","title":"Polygon","required":["geoCoordinates"],"properties":{"geoCoordinates":{"type":"array","description":"Coordinates of each point of the polygon. It is recommended that the first and last points be the same, but it is not required.\n\n\n\nEach point in a polygon or multipolygon is defined by a latitude point followed by a longitude point. You also must specify the points in a counter-clockwise direction.","items":{"type":"object","title":"geoCoordinate","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate of the polygon point."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate of the polygon point."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638}}}},"price":{"type":"object","description":"Price of the fee for this polygon","allOf":[{"$ref":"#/components/schemas/Price"}],"example":{"value":5,"currency":"BRL"}},"estimateDeliveryTime":{"type":"integer","description":"Estimate delivery time for this polygon in minutes"}}}},"components/schemas/GeoRadius":{"id":"components/schemas/GeoRadius","kind":"json-schema","title":"GeoRadius","data":{"type":"object","title":"GeoRadius","required":["geoMidpointLatitude","geoMidpointLongitude","radius"],"properties":{"geoMidpointLatitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate at the center of the CIRCLE area."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"geoMidpointLongitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate at the center of the CIRCLE area."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638},"radius":{"type":"array","description":"Informations about each radius of the CIRCLE that the merchant serves.","items":{"type":"object","title":"radius","required":["size"],"properties":{"size":{"type":"integer","description":"The size of the CIRCLE radius in meters."},"price":{"type":"object","description":"Price of the fee for this CIRCLE size.","allOf":[{"$ref":"#/components/schemas/Price"}],"example":{"value":5,"currency":"BRL"}},"estimateDeliveryTime":{"type":"integer","description":"Estimate delivery time for this CIRCLE size in minutes."}}}}}}},"components/schemas/ExclusionPolygon":{"id":"components/schemas/ExclusionPolygon","kind":"json-schema","title":"Polygon","data":{"type":"object","title":"Polygon","required":["geoCoordinates"],"properties":{"geoCoordinates":{"type":"array","description":"Coordinates of each point of the polygon. It is recommended that the first and last points be the same, but it is not required.\n\n\n\nEach point in a polygon or multipolygon is defined by a latitude point followed by a longitude point. You also must specify the points in a counter-clockwise direction.","items":{"type":"object","title":"geoCoordinate","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate of the polygon point."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate of the polygon point."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638}}}}}}},"components/schemas/Catalog":{"id":"components/schemas/Catalog","kind":"json-schema","title":"Catalog","data":{"type":"object","title":"Catalog","required":["id"],"properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Menu"},"children":[]}]}]}],"example":"f078e8e2-3044-4eec-b4a8-8359810de123"}}}},"components/schemas/ItemPrice":{"id":"components/schemas/ItemPrice","kind":"json-schema","title":"Item Price","data":{"type":"object","title":"Item Price","required":["originalValue"],"properties":{"value":{"type":"number","format":"decimal","description":"The actual price value. 4 decimals places are accepted. ","example":50},"originalValue":{"type":"number","format":"decimal","description":"The orginal price value. 4 decimals places are accepted","example":50},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The 3-letter ISO 4217 currency code."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not use this field as the currency unit and will be ignored."},"children":[]}]}]}]}]}],"example":"BRL"}}}},"components/schemas/ServiceHours":{"id":"components/schemas/ServiceHours","kind":"json-schema","title":"Service Hours","data":{"type":"object","title":"Service Hours","required":["id","weekHours"],"properties":{"id":{"type":"string","description":"A unique identifier of the service hours.","example":"fb093d8c-2ca5-40fb-afcf-472fbdae81cc"},"weekHours":{"type":"array","description":"A list of the day(s) of the week and time periods for which the service is valid.","items":{"type":"object","allOf":[{"$ref":"#/components/schemas/Hours"}]}},"holidayHours":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Map of holiday dates, each with optional "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"timePeriods"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". If a date does not have a time period specified, the restaurant will be closed for that date."},"children":[]}]}]}],"items":{"type":"object","allOf":[{"$ref":"#/components/schemas/HolidayHours"}]}}}}},"components/schemas/Hours":{"id":"components/schemas/Hours","kind":"json-schema","title":"Hours","data":{"type":"object","title":"Hours","required":["dayOfWeek","timePeriods"],"properties":{"dayOfWeek":{"type":"array","description":"Day of the week for which these service hours are valid","items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"example":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"timePeriods":{"type":"object","description":"Time window from which users' orders can be placed.","allOf":[{"$ref":"#/components/schemas/TimePeriods"}]}}}},"components/schemas/TimePeriods":{"id":"components/schemas/TimePeriods","kind":"json-schema","title":"Time Periods","data":{"type":"object","title":"Time Periods","required":["startTime","endTime"],"properties":{"startTime":{"type":"string","format":"time","description":"Indicates the specific time of day in ISO format starting from which users' orders can be placed.","example":"10:00:00.000Z"},"endTime":{"type":"string","format":"time","description":"Indicates the specific time of day in ISO format beyond which users' orders cannot be placed.","example":"18:00:00.000Z"}}}},"components/schemas/HolidayHours":{"id":"components/schemas/HolidayHours","kind":"json-schema","title":"Holiday Hours","data":{"type":"object","title":"Holiday Hours","required":["date","timePeriods"],"properties":{"date":{"type":"string","format":"date","description":"date","example":"2021-04-07"},"timePeriods":{"type":"object","description":"hours","allOf":[{"$ref":"#/components/schemas/TimePeriods"}]}}}},"components/schemas/Item":{"id":"components/schemas/Item","kind":"json-schema","title":"Item","data":{"type":"object","title":"Item","required":["id","name","externalCode","status"],"properties":{"id":{"type":"string","description":"A unique identifier of the item.","example":"732bd31e-77fc-47ee-88ee-a0437f97b198"},"name":{"type":"string","description":"Item name","maxLength":150,"example":"1/2 Pepperoni"},"description":{"type":"string","description":"Item Description","example":"Pepperoni flavored pizza with LOTS of pepperoni."},"externalCode":{"type":"string","description":"Item External Code. (Tipically the merchant Software Service item code)","example":"233467"},"status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates if the entity is Available or Unavailable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays). Default is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AVAILABLE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["AVAILABLE","UNAVAILABLE"],"default":"AVAILABLE","example":"AVAILABLE"},"image":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Image of the item. This field should be used when there is only one image for the item without size variations."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It must "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be considered"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" only if the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"images"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" array "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is empty"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"images"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"contains any value"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", this field must "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be ignored"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" even if it is filled."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Image"}]},"images":{"type":"array","maxItems":2,"items":{"allOf":[{"$ref":"#/components/schemas/ImageWithType"}]},"description":"Array of images of the item. This field should be used when you need size variations for the images."},"nutritionalInfo":{"type":"object","description":"Nutrition information for the dish.","allOf":[{"$ref":"#/components/schemas/NutritionalInfo"}]},"serving":{"type":"integer","description":"Field to show the number of people the portion serves.","example":2},"unit":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item's Unit of Measurement."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Possible 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":"code","inline":true,"attributes":{"content":"UN"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Unit"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Kilogram (Keeta is not currently supported)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"L"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Liter (Keeta is not currently supported)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OZ"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Ounce (Keeta is not currently supported)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"LB"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Pound (Keeta is not currently supported)"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Gallon (Keeta is not currently supported)"},"children":[]}]}]}]}],"enum":["UN","KG","L","OZ","LB","GAL"],"example":"KG"},"ean":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"EAN (European Article Number). "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}],"example":"7896005202074"}}}},"components/schemas/NutritionalInfo":{"id":"components/schemas/NutritionalInfo","kind":"json-schema","title":"Nutritional Info","data":{"type":"object","title":"Nutritional Info","required":["description","calories"],"properties":{"description":{"type":"string","description":"Nutrition information in free text. For example \"Contains preservatives\".","example":"Contains preservatives"},"calories":{"type":"string","description":"The number of calories in Cal, kcal, or kJ, using the following format: value Cal or min-max Cal","pattern":"^[0-9]+(\\.[0-9]+)? ?(- ?[0-9]+(\\.[0-9]+)?)? [a-zA-Z]+$","example":"2000 Cal"},"allergen":{"type":"array","description":"Allergens of this Item","items":{"type":"string","enum":["ALMONDS","ALPHA_ISOMETHYL_IONONE","ALCOHOL","AMYL_CINNAMAL","ANISE_ALCOHOL","BARLEY","BENZYL_ALCOHOL","BENZYL_BENZOATE","BENZYL_CINNAMATE","BENZYL_SALICYLATE","BRAZIL_NUTS","BUTYLPHENYL_METHYLPROPIONATE","CARROTS","CASHEW_NUTS","CELERY","CEREALS_CONTAINING_GLUTEN","CINNAMAL","CINNAMYL_ALCOHOL","CITRAL","CITRONELLOL","COCOA","CORIANDER","CORN","COUMARIN","CRUSTACEANS","EGGS","EUGENOL","EVERNIA_FURFURACEA","EVERNIA_PRUNASTRI","FARNESOL","FISH","GERANIOL","GLUTEN","HAZELNUTS","HEXYL_CINNAMAL","HYDROXYCITRONELLAL","KAMUT","LACTOSE","LUPINE","MACADAMIA_NUTS","METHYL_2_OCTYNOATE","MILK","MOLLUSCS","MUSTARD","NO_DECLARED_ALLERGENS","OAT","PEANUTS","PEAS","PECAN_NUTS","PISTACHIOS","POD_FRUITS","QUEENSLAND_NUTS","RYE","SESAME_SEEDS","SOYBEANS","SPELT","SULPHUR_DIOXIDE","TREE_NUTS","TREE_NUT_TRACES","WALNUTS","WHEAT"],"example":"GLUTEN"}},"additives":{"type":"array","description":"Additives of this Item","items":{"type":"string"}},"suitableDiet":{"type":"array","description":"The dish complies with the described dietary restriction","items":{"type":"string","enum":["DIABETIC","GLUTEN_FREE","HALAL","HINDU","KOSHER","LOW_CALORIE","LOW_FAT","LOW_LACTOSE","LOW_SALT","VEGAN","VEGETARIAN"]}},"isAlcoholic":{"type":"boolean","description":"Indicates if an item is alcoholic.","example":false}}}},"components/schemas/Menu":{"id":"components/schemas/Menu","kind":"json-schema","title":"Menu","data":{"type":"object","title":"Menu","required":["id","name","externalCode","categoryId"],"properties":{"id":{"type":"string","description":"A unique identifier of the menu.","example":"f627ccdc-6789-456f-a782-148538d5035b"},"name":{"type":"string","description":"Menu name","maxLength":500,"example":"Pizzas"},"description":{"type":"string","description":"Menu Description","example":"Pizza menu"},"externalCode":{"type":"string","description":"Menu External Code. (Tipically the merchant Software Service menu code)","example":"123"},"disclaimer":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Disclaimer."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry."},"disclaimerURL":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Disclaimer URL."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"http://example.com"},"categoryId":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A list of the id values of the child "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities that correspond to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Menu"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity. Default assumes all "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities are available in this menu."},"children":[]}]}]}],"items":{"type":"string"},"example":["92fad022-2c28-4239-a026-989f5b555cb7","6bb71850-1d40-49f9-8046-b13e068c0cca"]}}}},"components/schemas/Category":{"id":"components/schemas/Category","kind":"json-schema","title":"Category","data":{"type":"object","title":"Category","required":["id","index","name","externalCode","status","itemOfferId"],"properties":{"id":{"type":"string","description":"A unique identifier of the category.","example":"92fad022-2c28-4239-a026-989f5b555cb7"},"index":{"type":"integer","description":"Category display index.","example":0},"name":{"type":"string","description":"Category name.","maxLength":150,"example":"Salted Pizza"},"description":{"type":"string","description":"Category description.","example":"Salted pizza flavors."},"image":{"type":"object","description":"Image of the category.","allOf":[{"$ref":"#/components/schemas/Image"}]},"externalCode":{"type":"string","description":"Category External Code. (Tipically the merchant Software Service category code)","example":"13"},"status":{"type":"string","description":"This parameter is currently not processed by Keeta.","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"availabilityId":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The id values of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Availability"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities which provide details on when the category is available."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"If not informed, assumes a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is AVAILABLE at all times."},"children":[]}]}]}]}]}],"items":{"type":"string","description":"A unique identifier of the availability.","example":"11d063c4-73a7-4f87-a0eb-71636cc02029"},"example":["11d063c4-73a7-4f87-a0eb-71636cc02029"]},"itemOfferId":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A list of the id values of the child "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities that correspond to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity."},"children":[]}]}]}],"items":{"type":"string","description":"A unique identifier of the item offer.","example":"f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9"},"example":["f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9"]}}}},"components/schemas/ItemOffer":{"id":"components/schemas/ItemOffer","kind":"json-schema","title":"ItemOffer","data":{"type":"object","title":"ItemOffer","required":["id","itemId","index","status","price"],"properties":{"id":{"type":"string","description":"A unique identifier of the item offer.","example":"f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9"},"itemId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The id value of the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Item"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity correlated to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity."},"children":[]}]}]}],"example":"732bd31e-77fc-47ee-88ee-a0437f97b198"},"index":{"type":"integer","description":"ItemOffer display index.","example":0},"status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates if the entity is Available or Unavailable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays). Default is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AVAILABLE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["AVAILABLE","UNAVAILABLE"],"default":"AVAILABLE","example":"AVAILABLE"},"price":{"type":"object","description":"Price of the menu item offer. Original and actual values can be informed, for showing discounts.","allOf":[{"$ref":"#/components/schemas/ItemPrice"}],"example":{"value":43,"originalValue":43,"currency":"BRL"}},"availabilityId":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The id values of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Availability"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities which provide details on when the menu item offer is available."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"If not informed, assumes an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is AVAILABLE at all times."},"children":[]}]}]}]}]}],"items":{"type":"string","description":"A unique identifier of the availability.","example":"11d063c4-73a7-4f87-a0eb-71636cc02029"},"example":["11d063c4-73a7-4f87-a0eb-71636cc02029"]},"optionGroupsId":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A list of the id values of the child "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OptionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities that correspond to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity."},"children":[]}]}]}],"items":{"type":"string","description":"A unique identifier of the option group.","example":"fe67e551-f42f-499a-8afb-0ed893c71fa3"},"example":["fe67e551-f42f-499a-8afb-0ed893c71fa3"]}}}},"components/schemas/OptionGroup":{"id":"components/schemas/OptionGroup","kind":"json-schema","title":"Option Group","data":{"type":"object","title":"Option Group","required":["id","index","name","externalCode","status","minPermitted","maxPermitted"],"properties":{"id":{"type":"string","description":"A unique identifier of the option group.","example":"fe67e551-f42f-499a-8afb-0ed893c71fa3"},"index":{"type":"integer","description":"Option Group display index.","example":0},"name":{"type":"string","description":"Option Group Name.","maxLength":150,"example":"Choose your salted pizza flavor"},"description":{"type":"string","description":"Option Group Description.","example":"Choose your salted pizza flavor."},"externalCode":{"type":"string","description":"Option External Code. (Tipically the merchant Software Service option group code)","example":"12"},"status":{"type":"string","description":"Indicates if the entity is Available or Unavailable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"minPermitted":{"type":"integer","description":"The minimum number of options which should be selected in the option group.","example":2},"maxPermitted":{"type":"integer","description":"The maximum number of options which should be selected in the option group.","example":2},"priceMethod":{"type":"string","description":[{"$$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":"Keeta does not support this field and will be ignored."},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Instructions on how this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"optionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" should be calculated before being applied to the item."},"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":"- SUM"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": It will be added to the other optionGroups without any additional rules. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Default"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" option."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"- MAX"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The highest "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"optionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" value between all "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"optionGroups"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"priceMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"MAX"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be applied to the calculation."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"- AVG"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The average between "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"optionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"priceMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AVG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be applied to the calculation."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example:"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item base price: $25,00"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionGroup1 - priceMethod = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"AVG"},"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":"text","inline":true,"attributes":{"content":"option 1 = $5,00 (selected)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"option 2 = $10,00 (not selected)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionGroup2 - priceMethod = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"AVG"},"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":"option 1 = $7,00 (not selected)"},"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":"text","inline":true,"attributes":{"content":"option 2 = $10,00 (selected)"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionGroup3 - priceMethod = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MAX"},"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":"text","inline":true,"attributes":{"content":"option 1 = $15,00 (selected)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"option 2 = $20,00 (not selected)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionGroup4 - priceMethod = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MAX"},"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":"option 1 = $30,00 (not selected)"},"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":"text","inline":true,"attributes":{"content":"option 2 = $35,00 (selected)"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionGroup5 - priceMethod = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SUM"},"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":"option 1 = $2,00 (not selected)"},"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":"text","inline":true,"attributes":{"content":"option 2 = $3,00 (selected)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"option 3 = $5,00 (not selected)"},"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":"optionsPrice"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = avg(optionGroup1, optionGroup2) + max(optionGroup3, optionGroup4) + optionGroup5"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionsPrice"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = 7,50 + 35,00 + 3,00"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"optionPrice"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = 45,50"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"itemPrice"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = 25,00 + 45,50 = 70,50"},"children":[]}]}]}],"enum":["SUM","MAX","AVG"],"default":"SUM"},"options":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A list of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entities that correspond to this option group"},"children":[]}]}]}],"items":{"type":"object","description":"options","allOf":[{"$ref":"#/components/schemas/Option"}]}}}}},"components/schemas/Option":{"id":"components/schemas/Option","kind":"json-schema","title":"Option","data":{"type":"object","title":"Option","required":["id","itemId","index","status"],"properties":{"id":{"type":"string","description":"A unique identifier of the option.","example":"e5232f14-430c-4a94-8ff6-289d5a16a87a"},"itemId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The id value of the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Item"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity correlated to this "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity."},"children":[]}]}]}],"example":"502ecf11-0509-48ed-b63c-6211c48fd9b9"},"index":{"type":"integer","description":"Option display index.","example":0},"status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates if the entity is Available or Unavailable. Only use this type when you must disable the entity due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays). Default is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"AVAILABLE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["AVAILABLE","UNAVAILABLE"],"default":"AVAILABLE","example":"AVAILABLE"},"price":{"type":"object","description":"Price of the option. Original and actual values can be informed, for showing discounts.","allOf":[{"$ref":"#/components/schemas/ItemPrice"}]},"maxPermitted":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The maximum quantity of this option which can be selected in the option group. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}],"example":2}}}},"components/schemas/Availability":{"id":"components/schemas/Availability","kind":"json-schema","title":"Availability","data":{"type":"object","title":"Availability","required":["id","hours"],"properties":{"id":{"type":"string","description":"A unique identifier of the availability.","example":"11d063c4-73a7-4f87-a0eb-71636cc02029"},"startDate":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Availability start date. If not informed, the availabilty is already available"},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"2021-05-01"},"endDate":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Availability end date. If not informed, the availabilty is always available."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"2021-05-30"},"hours":{"type":"array","description":"Hours","items":{"allOf":[{"$ref":"#/components/schemas/Hours"}]}}}}},"components/schemas/MerchantUpdate":{"id":"components/schemas/MerchantUpdate","kind":"json-schema","title":"MerchantUpdate","data":{"type":"object","discriminator":{"propertyName":"entityType","mapping":{"MERCHANT":"#/components/schemas/FullMerchantUpdate","BASIC_INFO":"#/components/schemas/BasicInfoUpdate","SERVICE":"#/components/schemas/ServiceUpdate","MENU":"#/components/schemas/MenuUpdate","CATEGORY":"#/components/schemas/CategoryUpdate","ITEM":"#/components/schemas/ItemUpdate","ITEM_OFFER":"#/components/schemas/ItemOfferUpdate","OPTION_GROUP":"#/components/schemas/OptionGroupUpdate","OPTION":"#/components/schemas/OptionUpdate","AVAILABILITY":"#/components/schemas/AvailabilityUpdate"}},"properties":{"merchantStatus":{"type":"string","description":"Indicates if the Merchant is Avaliable or Unavaliable. Only use this type when you must close (disable) the merchant due to an unexpected event and you don't know when the service will be re-established (e.g. do not use for holidays).","enum":["AVAILABLE","UNAVAILABLE"],"example":"AVAILABLE"},"entityType":{"type":"string","description":"The entity type of the updated object."}}}},"components/schemas/FullMerchantUpdate":{"id":"components/schemas/FullMerchantUpdate","kind":"json-schema","title":"FullMerchantUpdate","data":{"description":"Updated Merchant Object","allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Merchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects"},"children":[]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/UpdateMerchant"}]}}}}]}},"components/schemas/BasicInfoUpdate":{"id":"components/schemas/BasicInfoUpdate","kind":"json-schema","title":"BasicInfoUpdate","data":{"description":"Updated Service Object","allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Only the first one in the array will be used."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BasicInfo"}]}}}}]}},"components/schemas/ServiceUpdate":{"id":"components/schemas/ServiceUpdate","kind":"json-schema","title":"ServiceUpdate","data":{"description":"Updated Service Object","allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"When updating merchant "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"serviceHours"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" info, only entities with serviceType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be used."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Service"}]}}}}]}},"components/schemas/MenuUpdate":{"id":"components/schemas/MenuUpdate","kind":"json-schema","title":"MenuUpdate","data":{"description":"Updated Menu Object","allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Menu"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, Keeta does not support module-level information updates for merchant menus. Therefore,  Keeta will actively request the GET /merchant endpoint to obtain the full merchant information for update when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Menu"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}],"type":"array","items":[{"$ref":"#/components/schemas/Menu"}]}}}]}},"components/schemas/CategoryUpdate":{"id":"components/schemas/CategoryUpdate","kind":"json-schema","title":"CategoryUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, Keeta does not support module-level information updates for merchant menus. Therefore,  Keeta will actively request the GET /merchant endpoint to obtain the full merchant information for update when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Category"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Category"}]}}}}]}},"components/schemas/ItemUpdate":{"id":"components/schemas/ItemUpdate","kind":"json-schema","title":"ItemUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Item"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Item"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, Keeta does not support module-level information updates for merchant menus. Therefore,  Keeta will actively request the GET /merchant endpoint to obtain the full merchant information for update when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Item"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Item"}]}}}}]}},"components/schemas/ItemOfferUpdate":{"id":"components/schemas/ItemOfferUpdate","kind":"json-schema","title":"ItemOfferUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ItemOffer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ITEM_OFFER"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", Keeta will only update the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"status"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field, other fields are not yet supported for updating."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ItemOffer"}]}}}}]}},"components/schemas/OptionGroupUpdate":{"id":"components/schemas/OptionGroupUpdate","kind":"json-schema","title":"OptionGroupUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OptionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OptionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, Keeta does not support module-level information updates for merchant menus. Therefore,  Keeta will actively request the GET /merchant endpoint to obtain the full merchant information for update when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OptionGroup"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OptionGroup"}]}}}}]}},"components/schemas/OptionUpdate":{"id":"components/schemas/OptionUpdate","kind":"json-schema","title":"OptionUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Option"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OPTION"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", Keeta will only update the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"status"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field, other fields are not yet supported for updating."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Option"}]}}}}]}},"components/schemas/AvailabilityUpdate":{"id":"components/schemas/AvailabilityUpdate","kind":"json-schema","title":"AvailabilityUpdate","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Availability"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Object"},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MerchantUpdate"},{"type":"object","properties":{"updatedObjects":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Updated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Availability"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entity objects."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Note:"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Our current menu model supports the following options for configuring product availability:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     1. Specific date ranges defined by the startDate and endDate fields"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"     2. A weekly schedule defined by the hours array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Combination of 1 and 2 are not supported."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Currently, Keeta does not support module-level information updates for merchant menus. Therefore,  Keeta will actively request the GET /merchant endpoint to obtain the full merchant information for update when receiving an update request with entityType="},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Availability"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}]}],"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Availability"}]}}}}]}},"components/schemas/AckEvents":{"id":"components/schemas/AckEvents","kind":"json-schema","title":"Ack Events","data":{"type":"object","title":"Ack Events","required":["id","orderId","eventType"],"properties":{"id":{"type":"string","description":"A unique identifier of the event."},"orderId":{"type":"string","description":"The unique identifier of the order. The order ID is generated by Keeta."},"eventType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The event type. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/pollingEvents"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Click here"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for definitions of each type."},"children":[]}]}]}],"enum":["CREATED","CONFIRMED","DISPATCHED","READY_FOR_PICKUP","PICKED_UP","DELIVERED","CONCLUDED","CANCELLATION_REQUESTED","CANCELLED","USER_REFUND_REQUEST","REFUNDED","REFUND_FAILED","RECOMMENDED_PREPARATION_START"]}}}},"components/schemas/Order":{"id":"components/schemas/Order","kind":"json-schema","title":"Order","data":{"type":"object","title":"Order","required":["id","type","displayId","createdAt","orderTiming","preparationStartDateTime","merchant","items","total","payments"],"properties":{"id":{"type":"string","description":"The unique identifier of the order. The order ID is generated by Keeta."},"type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - for orders that will be delivered to the customer's address."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAKEOUT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be picked up at the establishment by the customer"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INDOOR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - orders that will be consumed inside the establishment."},"children":[]}]}]}],"enum":["DELIVERY","TAKEOUT","INDOOR"]},"displayId":{"type":"string","description":"Order Id shown in  Keeta interface for the customer."},"sourceAppId":{"type":"string","description":"This field must be filled in with the AppId of Keeta that originated the order. This field is to help the applications that will work as a Hub, intermediating the requests from Keeta with the Software Service."},"salesChannel":{"type":"string","description":"You can indicate through which sales channel this order originated."},"virtualBrand":{"type":"string","description":"This field can be used as an alternative id for the merchant, in cases where the same merchant has different identifications or brands (such as dark kitchens). It is important to note that Keeta or Software Hub must know this Id beforehand."},"category":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the order category."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If you find that your order category does not fit any of the listed categories, please open an issue so it can be added."},"children":[]}]}]}]}],"enum":["FOOD","GROCERY","DRUGSTORE","PETSTORE"],"default":"FOOD"},"createdAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order creation date and time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info.)."},"children":[]}]}]}]},"lastEvent":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The last valid event polled (whether acknowledged or not) or sent via webhook. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/pollingEvents"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Click here"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for definitions of each type."},"children":[]}]}]}],"enum":["CREATED","CONFIRMED","DISPATCHED","READY_FOR_PICKUP","PICKED_UP","DELIVERED","CONCLUDED","CANCELLATION_REQUESTED","CANCELLED","USER_REFUND_REQUEST","REFUNDED","REFUND_FAILED","RECOMMENDED_PREPARATION_START"]},"orderTiming":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the timing for initiating the order:"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INSTANT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders that must be prepared immediately."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SCHEDULED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders scheduled for a specific date and time. It will always be accompanied by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"schedule"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ONDEMAND"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": for orders that will only be delivered when the consumer indicates that they are going to pick it up. In this case, the Software Service will receive a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PREPARATION_REQUESTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event indicating that the order should be started."},"children":[]}]}]}],"enum":["INSTANT","SCHEDULED","ONDEMAND"]},"preparationStartDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Suggestion for the preparation start time after Order creation. This can be used by Keeta to inform the merchant to delay the start of the preparation for any reason. Default is the same time as the order creation time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"merchant":{"type":"object","required":["id","name"],"description":"Merchant information.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"name":{"type":"string","description":"Merchant Public Name","maxLength":500,"example":"Pizza Plaza"}}},"items":{"type":"array","description":"Order items.","items":{"type":"object","required":["id","name","unit","quantity","unitPrice","totalPrice","externalCode"],"properties":{"id":{"type":"string","description":"A unique identifier of the item."},"index":{"type":"integer","description":"Item's position."},"name":{"type":"string","description":"Product name"},"externalCode":{"type":"string","description":"External product code."},"unit":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item's Unit of Measurement."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Possible 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":"code","inline":true,"attributes":{"content":"UN"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Unit"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Kilogram"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"L"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Liter"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OZ"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Ounce"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"LB"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Pound"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Gallon"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use fractional values for quantities smaller than the unit of measure:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: 500 grams = 0.5 KG"},"children":[]}]}]}]}],"enum":["UN","KG","L","OZ","LB","GAL"],"example":"KG"},"ean":{"type":"string","description":"EAN is the barcode standard used on items."},"quantity":{"type":"number","format":"decimal","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Amount of items."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use fractional values for quantities smaller than the unit of measure:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: 500 grams = 0.5 KG"},"children":[]}]}]}]}]},"specialInstructions":{"type":"string","description":"Special instructions about the items."},"unitPrice":{"type":"object","allOf":[{"$ref":"#/components/schemas/Price"}],"description":"Price per unit. This is the price the customer is paying and will be considered for order totals calculations."},"originalPrice":{"type":"object","allOf":[{"$ref":"#/components/schemas/Price"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Original price of the product."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This price "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is for information purposes only"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and should be used to inform the price of an item before applying markdowns on the list price."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Discounts applied during the order such as coupons and vouchers should not be considered here. These must be reported in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"discounts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object."},"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":"THIS PRICE WILL NOT BE CONSIDERED FOR ORDER TOTALS CALCULATIONS."},"children":[]}]}]}]}]},"scalePriceApplied":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates whether or not the unit price of the item has changed due to a scaled purchase (where the quantity of items purchased changes the value of the item). Default is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]}]}]}],"default":false},"optionsPrice":{"type":"object","allOf":[{"$ref":"#/components/schemas/Price"}],"description":"The sum of the total prices of all options of the item."},"subtotalPrice":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This price "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is for information purposes only"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and should be used to inform the total price for the quantity of items ordered, excluding additional options. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(quantity * unitPrice)"},"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":"THIS PRICE WILL NOT BE CONSIDERED FOR ORDER TOTALS CALCULATIONS."},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"totalPrice":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total Price of the item. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(quantity * (unitPrice + optionsPrice))"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"indoor":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item-related properties for when the order is of type "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INDOOR"},"children":[]}]}]}],"properties":{"productionPoint":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Production point for this specific item."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It should be used when the merchant has more than one production point and it is necessary to carry out production at a specific location."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Note: The locations must be previously registered in both  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}},"options":{"type":"array","description":"The optional extras chosen by the consumer, related to this item.","items":{"type":"object","required":["id","name","externalCode","unit","quantity","unitPrice","totalPrice"],"properties":{"index":{"type":"integer","description":"Option's position."},"id":{"type":"string","description":"A unique identifier of the item."},"name":{"type":"string","description":"Options name"},"externalCode":{"type":"string","description":"External product code."},"unit":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Item's Unit of Measurement."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Possible 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":"code","inline":true,"attributes":{"content":"UN"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Unit"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"KG"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Kilogram"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"L"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Liter"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OZ"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Ounce"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"LB"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Pound"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - Gallon"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use fractional values for quantities smaller than the unit of measure:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: 500 grams = 0.5 KG"},"children":[]}]}]}]}],"enum":["UN","KG","L","OZ","LB","GAL"],"example":"KG"},"ean":{"type":"string","description":"EAN is the barcode standard used on items."},"quantity":{"type":"number","format":"decimal"},"unitPrice":{"type":"object","allOf":[{"$ref":"#/components/schemas/Price"}],"description":"Price per unit. This is the price the customer is paying and will be considered for order totals calculations."},"originalPrice":{"type":"object","allOf":[{"$ref":"#/components/schemas/Price"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Original price of the option."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This price "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is for information purposes only"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and should be used to inform the price of an option before applying markdowns on the list price."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Discounts applied during the order such as coupons and vouchers should not be considered here. These must be reported in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"discounts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object."},"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":"THIS PRICE WILL NOT BE CONSIDERED FOR ORDER TOTALS CALCULATIONS."},"children":[]}]}]}]}]},"subtotalPrice":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This price "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is for information purposes only"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and should be used to inform the total price for the quantity of items ordered, excluding additional options. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(quantity * unitPrice)"},"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":"THIS PRICE WILL NOT BE CONSIDERED FOR ORDER TOTALS CALCULATIONS."},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"totalPrice":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total Price of the option. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(quantity * unitPrice)"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"specialInstructions":{"type":"string","description":"More instructions, if needed."}}}}}}},"otherFees":{"type":"array","description":"Other fees that may apply.","items":{"type":"object","required":["name","type","receivedBy","price"],"properties":{"name":{"type":"string","description":"Name related to the other fees."},"type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Other fees that may apply:"},"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":"DELIVERY_FEE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Fee charged for delivering the order to the customer's address."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SERVICE_FEE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Fee charged for the service provided by the Keeta platform or merchant."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TIP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Gratuity amount given to the delivery person or service staff."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"MIN_ORDER_FEE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Additional fee charged when the order value is below the minimum required amount."},"children":[]}]}]}]}],"enum":["DELIVERY_FEE","SERVICE_FEE","TIP","MIN_ORDER_FEE"]},"receivedBy":{"type":"string","enum":["MARKETPLACE","MERCHANT","LOGISTIC_SERVICES"]},"receiverDocument":{"type":"string","description":"Mandatory for marketplace."},"price":{"type":"object","description":"The fee price","allOf":[{"$ref":"#/components/schemas/Price"}]},"observation":{"type":"string","description":"Any extra comments."}}}},"discounts":{"type":"array","description":"Any discounts that may apply.","items":{"type":"object","required":["amount","target","sponsorshipValues"],"properties":{"amount":{"type":"object","description":"Amount value of the discount.","allOf":[{"$ref":"#/components/schemas/Price"}]},"target":{"type":"string","enum":["CART","DELIVERY_FEE","ITEM"]},"targetId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Only mandatory for "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"target"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ITEM"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"sponsorshipValues":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Values sponsored by either party. The sum of the amounts listed in this atribute must match the value informed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" atribute above."},"children":[]}]}]}],"type":"array","items":{"type":"object","required":["name","amount"],"properties":{"name":{"type":"string","enum":["MARKETPLACE","MERCHANT","CHAIN"]},"amount":{"type":"object","description":"Discount amount given by the sponsor.","allOf":[{"$ref":"#/components/schemas/Price"}]},"discountCode":{"type":"string","description":"Code related to the discount applied. Here you can enter a coupon used by the user, or an identification code from a marketing campaign, for example."}}}}}}},"total":{"type":"object","required":["itemsPrice","otherFees","orderAmount","discount"],"description":"Set of fields with the sum of the values previously described in the order.","properties":{"itemsPrice":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sum of the total price of the items listed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"items"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" attribute."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"otherFees":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sum of the total value of other fees listed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"otherFees"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" attribute. If there isn't one, use 0."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"discount":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sum of any discounts that may be listed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"discounts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" attribute. If there isn't one, use 0."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"orderAmount":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The final value of the order (itemsPrice + otherFees - discounts)."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]}}},"payments":{"type":"object","required":["prepaid","pending","methods"],"description":"All the description of the payment, such as methods, pre-payments, change, etc.","properties":{"prepaid":{"type":"number","format":"decimal","description":"Amount paid in advance."},"pending":{"type":"number","format":"decimal","description":"Amount that is still to be paid."},"methods":{"type":"array","description":"The payment method used. Whether it was online, on delivery, credit card, voucher, cash, etc.","items":{"type":"object","required":["value","currency","type","method"],"properties":{"value":{"type":"number","format":"decimal","description":"Price value. 4 decimals places are accepted"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"The 3-letter ISO 4217 currency code.","example":"BRL"},"type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PREPAID"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the payment was made through some platform, or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if it going to be paid on delivery or in cash, for example."},"children":[]}]}]}],"enum":["PREPAID","PENDING"]},"method":{"type":"string","enum":["CREDIT","DEBIT","MEAL_VOUCHER","FOOD_VOUCHER","DIGITAL_WALLET","PIX","CASH","CREDIT_DEBIT","COUPON","REDEEM","PREPAID_REDEEM","OTHER"]},"brand":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the brand of the card selected in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"method"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field must only be filled in if "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"method"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CREDIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DEBIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CREDIT_DEBIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"MEAL_VOUCHER"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FOOD_VOUCHER"},"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":"If "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OTHER"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is chosen, it is recommended that you describe the brand name in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"methodInfo"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field."},"children":[]}]}]}],"enum":["VISA","MASTERCARD","DINERS","AMEX","HIPERCARD","ELO","AURA","DISCOVER","VR_BENEFICIOS","SODEXO","TICKET","GOOD_CARD","BANESCARD","SOROCARD","POLICARD","VALECARD","AGICARD","JCB","CREDSYSTEM","CABAL","GREEN_CARD","VEROCHEQUE","AVISTA","OTHER"]},"methodInfo":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additional information regarding the payment method."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It can be used to indicate some useful information of the chosen payment method, such as the name of the wallet, or an authorization number."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field can be used for any "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"method"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" entered, but it is highly recommended to fill it in when the chosen "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"method"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OTHER"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"transaction":{"type":"object","description":"Authorization details and intermediary identification for credit card and/or subsidy transactions","properties":{"authorizationCode":{"type":"string","description":"Credit card and/or subsidy transaction authorization number."},"acquirerDocument":{"type":"string","description":"Document of the Transaction Intermediary (agency, delivery platform, marketplace, and similar) of services and businesses."}}},"changeFor":{"type":"number","format":"decimal","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the total that will be paid in cash by the customer and that should be considered for the calculation of the change"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(ex. customer will pay a $43 order with a $50 bill. Then 50.00 must be entered.)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Only mandatory when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"method"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CASH"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}}}},"taxInvoice":{"type":"object","description":"Tax Invoice information.","properties":{"issued":{"type":"boolean","description":"Inform if a tax invoice has already been issued for this order.","default":false},"taxInvoiceURL":{"type":"string","description":"The address to download the tax invoice issued."}}},"customer":{"type":"object","required":["id","phone","name","ordersCountOnMerchant"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Customer related information."},"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":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the chosen "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]}]}]}],"properties":{"id":{"type":"string","description":"A unique identifier related to the consumer. If Keeta does not have an Id for the customer, this Id can be generated when creating the order. "},"name":{"type":"string","description":"Customer's name."},"documentNumber":{"description":"Customer document. This document may be sent for dealing with tax issues.","type":"string"},"phone":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Customer's phone. Here you can enter the customer's phone number directly (provided that the customer has given permission for this data to be shared, according to local policies) or another phone number (such as the Keeta's call center phone number) where the merchant can communicate about order issues that affect the customer (such as health issues)."},"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":"Please note"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The telephone number is considered an identification field and therefore the customer's advance consent is required."},"children":[]}]}]}],"required":["number"],"properties":{"number":{"type":"string"},"extension":{"type":"string"}}},"email":{"description":"Customer email. This document may be sent for dealing with tax issues.","type":"string"},"ordersCountOnMerchant":{"description":"Total number of orders that the customer already placed within the merchant.","type":"number","format":"decimal"}}},"schedule":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information for scheduled orders."},"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":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderTiming"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SCHEDULED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"required":["scheduledDateTimeStart","scheduledDateTimeEnd"],"properties":{"scheduledDateTimeStart":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time for when the order is ready. It can be calculated by  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" using the average preparation time of the dishes. Default is the same time as order creation time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"scheduledDateTimeEnd":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time for when the order is ready. It can be calculated by  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" using the average preparation time of the dishes. Default is the same time as order creation time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"orderPriority":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Defines the priority of preparation and delivery of this order in relation to other orders from the same "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The lower the priority, the faster this order should be fulfilled."},"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":"Note:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" This field depends on both Keeta and the Merchant being able to support this functionality."},"children":[]}]}]}],"enum":["PRIORITY1","PRIORITY2","PRIORITY3","PRIORITY4","PRIORITY5"]},"delivery":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information for DELIVERY orders."},"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":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the chosen "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERY"},"children":[]}]}]}],"required":["deliveredBy","deliveryAddress","estimatedDeliveryDateTime"],"properties":{"deliveredBy":{"type":"string","enum":["MERCHANT","MARKETPLACE"]},"deliveryAddress":{"type":"object","description":"The address to which the order will be delivered.","required":["country","street","formattedAddress","number","city","postalCode","coordinates","district","state"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"Neighborhood or District.","example":"Moema"},"street":{"type":"string","description":"Street name.","example":"Plaza Avenue"},"number":{"type":"string","description":"Street number.","example":"100"},"complement":{"type":"string","description":"Address complement.","example":"BL 02 AP 31"},"reference":{"type":"string","description":"Address reference.","example":"Yellow House"},"formattedAddress":{"type":"string","description":"Full Formated Address Text","example":"Plaza Avenue, 100, BL 02 AP 31, Moema - São Paulo, SP - Brazil"},"postalCode":{"type":"string","description":"Postal Code","example":"20111-000"},"coordinates":{"type":"object","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54823},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63632}}}}},"estimatedDeliveryDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Estimated delivery date and time. The same date showed to the customer, in  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" interface."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"deliveryDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery date. The date time that the delivery actually took place."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"pickupCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It gives the Merchant a code so that the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"delivery man"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can collect the order."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Note: Not to be confused with the customer's delivery code."},"children":[]}]}]}]}}},"takeout":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information for TAKEOUT orders."},"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":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the chosen "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAKEOUT"},"children":[]}]}]}],"required":["mode","takeoutDateTime"],"properties":{"mode":{"type":"string","enum":["DEFAULT","PICKUP_AREA"]},"takeoutDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Takeout date and time. It can be calculated by  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" using the average preparation time of the dishes. Default is the same time as order creation time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"indoor":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information for INDOOR orders."},"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":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the chosen "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INDOOR"},"children":[]}]}]}],"required":["mode","indoorDateTime"],"properties":{"mode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indoor mode identifier:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DEFAULT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Used for orders placed in  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to be consumed inside the merchant without a specific location."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PLACE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Used for orders placed in  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to be consumed inside the merchant at a specific location already specified, such as a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"table"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"counter"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAB"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Used for establishments that control orders via "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"tabs"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"control cards"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (can be used in conjunction with the place field)."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TERMINAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Used for orders placed through self-services, such as kiosks, totems or tablets."},"children":[]}]}]}]}]}],"enum":["DEFAULT","PLACE","TAB","TERMINAL"]},"indoorDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time for when the order is ready. It can be calculated by  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" using the average preparation time of the dishes. Default is the same time as order creation time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"place":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The place identifier (Required if mode is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PLACE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")"},"children":[]}]}]}]},"tab":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The tab or control card identifier (Required if mode is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TAB"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")"},"children":[]}]}]}]},"seat":{"type":"string","description":"Optional Identifier of the seat where the customer is located."},"waiterCode":{"type":"string","description":"Optional code to identify the waiter responsible for the order."}}},"sendPreparing":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field indicates whether it is necessary for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to make a request to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderPreparing"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/orders/{orderId}/preparing"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to indicate to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order is in production."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Indicates that the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is waiting for a request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"not informed"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": It is not required to make a request."},"children":[]}]}]}]},"sendDelivered":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field indicates whether it is necessary for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to make a request to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderDelivered"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/orders/{orderId}/delivered"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to indicate to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order has been delivered to the client."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Indicates that the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is waiting for a request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"not informed"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": It is not required to make a request."},"children":[]}]}]}]},"sendPickedUp":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field indicates whether it is necessary for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to make a request to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderPickedUp"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/orders/{orderId}/pickedUp"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to indicate to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that the order has been picked up by the client."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Indicates that the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is waiting for a request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"not informed"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": It is not required to make a request."},"children":[]}]}]}]},"sendTracking":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field indicates whether it is necessary for the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to make a request to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/orderTracking"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/orders/{orderId}/tracking"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint to inform the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about delivery updates."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Indicates that the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is waiting for a request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"not informed"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": It is not required to make a request."},"children":[]}]}]}]},"extraInfo":{"type":"string","description":"Extra information, if necessary."}}}},"components/schemas/OrderConfirmed":{"id":"components/schemas/OrderConfirmed","kind":"json-schema","title":"Order Confirmed","data":{"type":"object","title":"Order Confirmed","required":["createdAt","orderExternalCode"],"properties":{"reason":{"type":"string","description":"Free field for more information about the order confirmation, such as which employee accepted the order, for example."},"createdAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order creation date and time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"orderExternalCode":{"type":"string","description":"External order code, which can be used by merchant or marketplace."},"preparationTime":{"type":"integer","description":"Indicates an estimate of the preparation time (in minutes) for the order being confirmed."}}}},"components/schemas/RequestCancelled":{"id":"components/schemas/RequestCancelled","kind":"json-schema","title":"Request Cancelattion","data":{"type":"object","title":"Request Cancelattion","required":["reason","code","mode"],"properties":{"reason":{"type":"string","description":"Open text field indicating the reason for the cancellation."},"code":{"type":"string","enum":["SYSTEMIC_ISSUES","DUPLICATE_APPLICATION","UNAVAILABLE_ITEM","RESTAURANT_WITHOUT_DELIVERY_PERSON","OUTDATED_MENU","ORDER_OUTSIDE_THE_DELIVERY_AREA","BLOCKED_CUSTOMER","OUTSIDE_DELIVERY_HOURS","INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT","RISK_AREA","DELIVERY_PROBLEM"],"description":"Explanation: The enumeration values have been updated. The old values are: INSUFFICIENT-DISHES, SUSPENSION OF OF BUSINESS, INSUFICS-MANPOWER, THE. Although the new enumeration value maintains compatibility with the old enumeration value, we strongly recommend using the new enumeration value. If you are using an old value, please update it as soon as possible. Thank you for your cooperation."},"mode":{"type":"string","description":"Indicates whether the cancellation request was made by an automatic or manual process in the Software Service","enum":["AUTO","MANUAL"]},"outOfStockItems":{"type":"array","description":"Items that are not in the merchant's inventory.","items":{"type":"string"},"maxItems":100},"invalidItems":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Items that do not exist in the merchant's inventory."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When the code is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OUTDATED_MENU"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the items listed in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"invalidItems"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be deactivated, and the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" should use the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta item ID"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}],"items":{"type":"string"},"maxItems":100}}}},"components/schemas/RequestDenied":{"id":"components/schemas/RequestDenied","kind":"json-schema","title":"Request Refund","data":{"type":"object","title":"Request Refund","required":["reason","code"],"properties":{"reason":{"type":"string","description":"Reason for rejecting refund."},"code":{"type":"string","enum":["DISH_ALREADY_DONE","OUT_FOR_DELIVERY","OTHER"]}}}},"components/schemas/Event":{"id":"components/schemas/Event","kind":"json-schema","title":"Event","data":{"type":"object","title":"Event","required":["eventId","eventType","orderId","orderURL","createdAt"],"discriminator":{"propertyName":"eventType","mapping":{"CREATED":"#/components/schemas/EventMetadata","CONFIRMED":"#/components/schemas/EventMetadata","DISPATCHED":"#/components/schemas/EventMetadata","READY_FOR_PICKUP":"#/components/schemas/EventMetadata","PICKUP_ONGOING":"#/components/schemas/EventMetadataPickupOngoing","PICKED_UP":"#/components/schemas/EventMetadata","DELIVERED":"#/components/schemas/EventMetadata","CONCLUDED":"#/components/schemas/EventMetadata","CANCELLATION_REQUESTED":"#/components/schemas/EventMetadata","CANCELLED":"#/components/schemas/EventMetadataCancel","USER_REFUND_REQUEST":"#/components/schemas/SendRefundRequest","REFUNDED":"#/components/schemas/Refunded","REFUND_FAILED":"#/components/schemas/RefundFailed","RIDER_ARRIVED_AT_STORE":"#/components/schemas/EventMetadata","ORDER_COLLECTED":"#/components/schemas/EventMetadata","RECOMMENDED_PREPARATION_START":"#/components/schemas/EventMetadataRecommendedPreparationStart"}},"properties":{"eventId":{"type":"string","description":"A unique identifier of the event."},"eventType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The event type. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/pollingEvents"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Click here"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for definitions of each type."},"children":[]}]}]}],"enum":["CREATED","CONFIRMED","DISPATCHED","READY_FOR_PICKUP","PICKUP_ONGOING","PICKED_UP","DELIVERED","CONCLUDED","CANCELLATION_REQUESTED","CANCELLED","USER_REFUND_REQUEST","REFUNDED","REFUND_FAILED","RIDER_ARRIVED_AT_STORE","ORDER_COLLECTED","RECOMMENDED_PREPARATION_START"]},"orderId":{"type":"string","description":"The unique identifier of the order. The order ID is generated by Keeta."},"orderURL":{"type":"string","format":"uri","description":"The URL to get the order details"},"createdAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order creation date and time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"sourceAppId":{"type":"string","description":"This field must be filled in with the AppId of Keeta that originated the order. This field is to help the applications that will work as a Hub, intermediating the requests from  Keeta with the Software Service."},"virtualBrand":{"type":"string","description":"This field can be used as an alternative id for the merchant, in cases where the same merchant has different identifications or brands (such as dark kitchens). It is important to note that Keeta or Software Hub must know this Id beforehand."}}}},"components/schemas/EventMetadataCancel":{"id":"components/schemas/EventMetadataCancel","kind":"json-schema","title":"EventMetadataCancel","data":{"description":"Metadata","required":["metadata"],"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"required":["reason","code"],"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information related to the Event Type."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]}]}]}],"example":"{\"orderViewId\":2340761421922475,\"opTime\":1764488817847,\"cancelType\":505001,\"opType\":30,\"shopId\":159400835,\"cancelReason\":\"Preparo dos alimentos demorado\",\"status\":50}","properties":{"reason":{"type":"string","description":"Reason for the cancellation"},"code":{"type":"string","description":"Cancelation reason code","enum":["INSUFFICIENT_DISHES","SUSPENSION_OF_BUSINESS","INSUFFICIENT_MANPOWER","OTHERS"]},"clientId":{"type":"string","description":"The ID of the client system that generated the action that resulted in this event (to be used with application with multiple stations)."}}}}}]}},"components/schemas/SendRefundRequest":{"id":"components/schemas/SendRefundRequest","kind":"json-schema","title":"SendRefundRequest","data":{"description":"Metadata","required":["metadata"],"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"required":["reason","code"],"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information related to the Event Type."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Within "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundProducts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"count"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundCount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" both represent the total quantity of SKUs to be refunded for the product item."},"children":[]}]}]}],"example":"{ \"money\": 8500, \"opTime\": 1751005551823, \"shopId\": \"461827\", \"status\": 5002, \"currency\": \"BRL\", \"isAppeal\": 0, \"partRefund\": 0, \"applyOpType\": 10, \"applyReason\": \"Ordem errada\", \"orderViewId\": 783441058793308, \"handleOpType\": 20, \"handleReason\": \"Mercante concordou em devolver\", \"refundProducts\": [ { \"id\": 12053105, \"name\": \"1️⃣  Noodles com 1 Topping\", \"spec\": \"\", \"tags\": [], \"count\": 1, \"price\": 7500, \"skuId\": 8949938, \"spuId\": 9897081, \"groups\": [ { \"groupId\": 4305174, \"groupName\": \"Escolha Suas Escolhas de Noodles\", \"groupNameI18n\": { \"en\": \"Escolha Suas Escolhas de Noodles\", \"zh-HK\": \"Seleccione a superfície inferior\", \"default\": \"Seleccione a superfície inferior\" }, \"groupOpenItemCode\": \"cgp-7741|1-1\", \"shopProductGroupSkuList\": [ { \"count\": 1, \"price\": 0, \"spuId\": 2069967, \"spuName\": \"Rice Stick Noodle Supremes\", \"currency\": \"BRL\", \"spuPvList\": [], \"groupSkuId\": 23903426, \"refundCount\": 1, \"refundPrice\": 0, \"spuNameI18n\": { \"en\": \"Rice Stick Noodle Supremes\", \"zh-HK\": \"noodles de arroz\", \"default\": \"noodles de arroz\" }, \"groupSkuOpenItemCode\": \"128019\" } ] } ], \"remark\": \"\", \"picList\": [ \"http://img-ap-hongkong.mykeeta.net/sailorproduct/aa2d5209534619f31c2e966080ecac5885942.jpg\" ], \"currency\": \"BRL\", \"nameI18n\": { \"en\": \"1️⃣  Noodles com 1 Topping\", \"zh-HK\": \"1️⃣  Ninho de pedaços noodles de arroz\", \"default\": \"1️⃣  Ninho de pedaços noodles de arroz\" }, \"priceStr\": \"R$75.00\", \"spuPvList\": [], \"promotions\": [], \"refundType\": 1, \"originPrice\": 7500, \"refundCount\": 1, \"refundPrice\": 0, \"orderProductId\": 359379560, \"originPriceStr\": \"R$75.00\", \"priceWithGroup\": { \"amount\": 7500, \"amountStr\": \"R$75.00\", \"originAmount\": 7500, \"originAmountStr\": \"R$75.00\" }, \"skuOpenItemCode\": \"AY290105\", \"spuOpenItemCode\": \"8898\", \"priceWithoutGroup\": { \"amount\": 5900, \"amountStr\": \"R$59.00\", \"originAmount\": 5900, \"originAmountStr\": \"R$59.00\" } } ], \"partRefundCount\": 0, \"afterSaleOrderId\": 783440453161676 }","properties":{"reason":{"type":"string","description":"Reason for the cancellation"},"code":{"type":"string","description":"Cancelation reason code","enum":["INSUFFICIENT_DISHES","SUSPENSION_OF_BUSINESS","INSUFFICIENT_MANPOWER","OTHERS"]},"clientId":{"type":"string","description":"The ID of the client system that generated the action that resulted in this event (to be used with application with multiple stations)."}}}}}]}},"components/schemas/Refunded":{"id":"components/schemas/Refunded","kind":"json-schema","title":"Refunded","data":{"description":"Metadata","required":["metadata"],"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"required":["reason","code"],"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information related to the Event Type."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Within "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundProducts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"count"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundCount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" both represent the total quantity of SKUs to be refunded for the product item."},"children":[]}]}]}],"example":"{\"money\": 8800, \"opTime\": 1764567420888, \"shopId\": \"159470627\", \"status\": 5002, \"currency\": \"BRL\", \"isAppeal\": 0, \"partRefund\": 0, \"applyOpType\": 0, \"applyReason\": \"No courier\", \"orderViewId\": 2350762747079930, \"handleOpType\": 0, \"handleReason\": \"No courier\", \"refundProducts\": [{\"id\": 250189055, \"name\": \"Chicken Supreme\", \"spec\": \"\", \"tags\": [], \"count\": 1, \"price\": 8500, \"skuId\": 83325441, \"spuId\": 83607187, \"groups\": [{\"groupId\": 19831845, \"groupName\": \"Crust\", \"groupNameI18n\": {\"pt-BR\": \"Crust\", \"default\": \"Crust\"}, \"groupOpenItemCode\": \"3463\", \"shopProductGroupSkuList\": [{\"count\": 1, \"price\": 0, \"spuId\": 83527562, \"spuName\": \"Pan\", \"currency\": \"BRL\", \"spuPvList\": [], \"subGroups\": [], \"groupSkuId\": 117285534, \"refundCount\": 1, \"refundPrice\": 0, \"spuNameI18n\": {\"pt-BR\": \"Pan\", \"default\": \"Pan\"}, \"groupSkuOpenItemCode\": \"2041\"}]}], \"currency\": \"BRL\", \"nameI18n\": {\"pt-BR\": \"Chicken Supreme\", \"default\": \"Chicken Supreme\"}, \"priceStr\": \"R$85.00\", \"specI18n\": {\"pt-BR\": \"\", \"default\": \"\"}, \"spuPvList\": [], \"promotions\": [], \"refundType\": 1, \"originPrice\": 8500, \"refundCount\": 1, \"refundPrice\": 0, \"orderProductId\": 685458900, \"originPriceStr\": \"R$85.00\", \"priceWithGroup\": {\"amount\": 8500, \"amountStr\": \"R$85.00\", \"originAmount\": 8500, \"originAmountStr\": \"R$85.00\"}, \"skuOpenItemCode\": \"sku-2720\", \"spuOpenItemCode\": \"spu-2720\", \"priceWithoutGroup\": {\"amount\": 8500, \"amountStr\": \"R$85.00\", \"originAmount\": 8500, \"originAmountStr\": \"R$85.00\"}}], \"partRefundCount\": 0, \"afterSaleOrderId\": 2350762034940118}","properties":{"reason":{"type":"string","description":"Reason for the cancellation"},"code":{"type":"string","description":"Cancelation reason code","enum":["INSUFFICIENT_DISHES","SUSPENSION_OF_BUSINESS","INSUFFICIENT_MANPOWER","OTHERS"]},"clientId":{"type":"string","description":"The ID of the client system that generated the action that resulted in this event (to be used with application with multiple stations)."}}}}}]}},"components/schemas/RefundFailed":{"id":"components/schemas/RefundFailed","kind":"json-schema","title":"RefundFailed","data":{"description":"Metadata","required":["metadata"],"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"required":["reason","code"],"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information related to the Event Type."},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Within "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundProducts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"count"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refundCount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" both represent the total quantity of SKUs to be refunded for the product item."},"children":[]}]}]}],"example":"{\"money\": 8800, \"opTime\": 1764567420888, \"shopId\": \"159470627\", \"status\": 5003, \"currency\": \"BRL\", \"isAppeal\": 0, \"partRefund\": 0, \"applyOpType\": 0, \"applyReason\": \"No courier\", \"orderViewId\": 2350762747079930, \"handleOpType\": 0, \"handleReason\": \"No courier\", \"refundProducts\": [{\"id\": 250189055, \"name\": \"Chicken Supreme\", \"spec\": \"\", \"tags\": [], \"count\": 1, \"price\": 8500, \"skuId\": 83325441, \"spuId\": 83607187, \"groups\": [{\"groupId\": 19831845, \"groupName\": \"Crust\", \"groupNameI18n\": {\"pt-BR\": \"Crust\", \"default\": \"Crust\"}, \"groupOpenItemCode\": \"3463\", \"shopProductGroupSkuList\": [{\"count\": 1, \"price\": 0, \"spuId\": 83527562, \"spuName\": \"Pan\", \"currency\": \"BRL\", \"spuPvList\": [], \"subGroups\": [], \"groupSkuId\": 117285534, \"refundCount\": 1, \"refundPrice\": 0, \"spuNameI18n\": {\"pt-BR\": \"Pan\", \"default\": \"Pan\"}, \"groupSkuOpenItemCode\": \"2041\"}]}], \"currency\": \"BRL\", \"nameI18n\": {\"pt-BR\": \"Chicken Supreme\", \"default\": \"Chicken Supreme\"}, \"priceStr\": \"R$85.00\", \"specI18n\": {\"pt-BR\": \"\", \"default\": \"\"}, \"spuPvList\": [], \"promotions\": [], \"refundType\": 1, \"originPrice\": 8500, \"refundCount\": 1, \"refundPrice\": 0, \"orderProductId\": 685458900, \"originPriceStr\": \"R$85.00\", \"priceWithGroup\": {\"amount\": 8500, \"amountStr\": \"R$85.00\", \"originAmount\": 8500, \"originAmountStr\": \"R$85.00\"}, \"skuOpenItemCode\": \"sku-2720\", \"spuOpenItemCode\": \"spu-2720\", \"priceWithoutGroup\": {\"amount\": 8500, \"amountStr\": \"R$85.00\", \"originAmount\": 8500, \"originAmountStr\": \"R$85.00\"}}], \"partRefundCount\": 0, \"afterSaleOrderId\": 2350762034940118}","properties":{"reason":{"type":"string","description":"Reason for the cancellation"},"code":{"type":"string","description":"Cancelation reason code","enum":["INSUFFICIENT_DISHES","SUSPENSION_OF_BUSINESS","INSUFFICIENT_MANPOWER","OTHERS"]},"clientId":{"type":"string","description":"The ID of the client system that generated the action that resulted in this event (to be used with application with multiple stations)."}}}}}]}},"components/schemas/EventMetadataPickupOngoing":{"id":"components/schemas/EventMetadataPickupOngoing","kind":"json-schema","title":"EventMetadataPickupOngoing","data":{"description":"Metadata","required":["metadata"],"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pickupEtaDatetime"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Informs the date and time the delivery person is expected to arrive at the merchant for order pickup."},"children":[]}]}]}],"example":"{\"pickupEtaDatetime\":\"2024-01-01T14:00:00Z\"}"}}}]}},"components/schemas/EventMetadataRecommendedPreparationStart":{"id":"components/schemas/EventMetadataRecommendedPreparationStart","kind":"json-schema","title":"EventMetadataRecommendedPreparationStart","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Metadata for RECOMMENDED_PREPARATION_START event"},"children":[]}]}]}],"required":["metadata"],"example":{"eventId":"string","eventType":"RECOMMENDED_PREPARATION_START","orderId":"string","orderURL":"http://example.com","createdAt":"2019-08-24T14:15:22Z","sourceAppId":"string","virtualBrand":"string","metadata":"{\"pickupEtaDateTime\":\"2019-08-24T14:15:22Z\"}"},"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"string"},{"properties":{"metadata":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"strong","attrs":{}},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The metadata type is a JSONObject String."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pickupEtaDateTime"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Informs the date and time the delivery person is expected to arrive at the merchant for order pickup."},"children":[]}]}]}],"example":"{\"pickupEtaDateTime\":\"2019-08-24T14:15:22Z\"}"}}}]}},"components/schemas/EventMetadata":{"id":"components/schemas/EventMetadata","kind":"json-schema","title":"EventMetadata","data":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/Event"}]}},"components/schemas/OrderDispatched":{"id":"components/schemas/OrderDispatched","kind":"json-schema","title":"Order Dispatched","data":{"type":"object","title":"Order Dispatched","properties":{"deliveryTrackingInfo":{"type":"object","description":"Information about the person that was assigned to deliver the order.","allOf":[{"$ref":"#/components/schemas/DeliveryTrackingInfoDisptach"}]}}}},"components/schemas/BatchDecryptRequest":{"id":"components/schemas/BatchDecryptRequest","kind":"json-schema","title":"BatchDecryptRequest","data":{"type":"object","required":["cipherInfos"],"properties":{"cipherInfos":{"type":"array","description":"List of encrypted data to be decrypted","items":{"type":"object","required":["cipherText"],"properties":{"cipherText":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Encrypt text in the format of an encrypted string starting with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ENC_"},"children":[]}]}]}],"example":"ENC_#MQesaE=#1#"}}}}}}},"components/schemas/BatchDecryptResponse":{"id":"components/schemas/BatchDecryptResponse","kind":"json-schema","title":"BatchDecryptResponse","data":{"type":"object","required":["plainInfos"],"properties":{"plainInfos":{"type":"array","description":"List of decrypted data with processing results","items":{"type":"object","required":["errorMsg","plainText","errorCode","cipherText"],"properties":{"errorMsg":{"type":"string","description":"Error message for this decryption item","example":"success"},"plainText":{"type":"string","description":"Decrypted plain text result","example":"Bob"},"errorCode":{"type":"integer","description":"Error code for this decryption item","example":0},"cipherText":{"type":"string","description":"Original encrypted text that was processed","example":"ENC_#MQesaE=#1#"}}}}}}},"components/schemas/OrderTracking":{"id":"components/schemas/OrderTracking","kind":"json-schema","title":"Order Tracking","data":{"type":"object","title":"Order Tracking","required":["deliveryTrackingInfo"],"properties":{"deliveryTrackingInfo":{"type":"object","description":"Information about the person that was assigned to deliver the order.","allOf":[{"$ref":"#/components/schemas/DeliveryTrackingInfo"}]}}}},"components/schemas/DeliveryTrackingInfoDisptach":{"id":"components/schemas/DeliveryTrackingInfoDisptach","kind":"json-schema","title":"DeliveryTrackingInfoDisptach","data":{"description":"Delivery Tracking Info","type":"object","properties":{"event":{"description":"The delivery last known event.","type":"object","required":["type","datetime"],"properties":{"type":{"type":"string","description":"The current delivery event.","enum":["DELIVERY_ONGOING","ARRIVED_AT_CUSTOMER","ORDER_DELIVERED","CANCELLED"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the event ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"problem":{"description":"In the event of a delivery problem, it states the last known reason.","type":"object","required":["reason","datetime"],"properties":{"reason":{"type":"string","description":"Problem reason.","enum":["DELIVERYPERSON_OCCURRENCE","PAYMENT_PROBLEMS","WRONG_PRODUCT_OR_ITEM","ORDER_DELAYED","ORDER_DAMAGED_OR_VIOLATED","CUSTOMER_DID_NOT_PLACE_ORDER","CUSTOMER_ADDRESS_UNKNOWN","ORDER_MISSING_ITEMS","NOBODY_TO_RECEIVE","DELIVERYPERSON_WAITING_PAYMENT_FOR_ALREADY_PAID_ORDER","ORDER_DELIVERED_WITHOUT_PAYMENT","FRAUD_OR_THEFT"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the problem ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"vehicle":{"description":"The vehicle that will be used for this delivery.","type":"object","required":["type"],"properties":{"type":{"type":"array","description":"Vehicle Type","items":{"type":"string","enum":["MOTORBIKE_BAG","MOTORBIKE_BOX","CAR","BICYCLE","SCOOTER","VUC"]},"maxItems":10},"licencePlate":{"type":"string","description":"Licence plate of the vehicle user for the delivery."}}},"eta":{"type":"object","description":"Estimate Times of Pickup and Delivery.","properties":{"deliveryEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to arrive at the consumer's address for order delivery."},"children":[]}]}]}]},"deliveryEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta Datetime. Informs the date and time the delivery person is expected to arrive at the consumer's address for order delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"maxDeliveryTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Maximum Date and Time for delivery. This time should not exceed the delivery time limit given in the order request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"deliveryPerson":{"type":"object","description":"Information about the person taht was assigned to deliver the order.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person Id given by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"name":{"type":"string","description":"Delivery Person Name."},"pictureURL":{"type":"string","format":"URI","description":"URL to access the photo of the delivery person. Before entering this field, check that the parties allow data to be shared according to data disclosure laws and rules."},"areaCode":{"type":"string","description":"Delivery Person telephone area code.","example":"+55"},"phone":{"type":"string","description":"Delivery Person phone number.","example":"1234567"}}},"geoLocalization":{"description":"Geo Localization Info.","type":"object","properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638},"lastAddress":{"description":"The last known address that the delivery person was when the event was sent.","type":"object","required":["distanceToPickup","distanceToDelivery","timestamp"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"District or Neighborhood name.","example":"Moema"},"street":{"type":"string","description":"Street Name.","example":"Plaza Avenue"},"postalCode":{"type":"string","description":"Postal Code.","example":"20111-000"},"distanceToPickup":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Pickup in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"distanceToDelivery":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Delivery in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"timestamp":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when this information is valid."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}}},"externalTrackingURL":{"type":"string","format":"URI","description":"External URL, provided by the logistics service to track the delivery on a specific page. Example: Real-time map view, or delivery timeline."}}}},"components/schemas/DeliveryTrackingInfo":{"id":"components/schemas/DeliveryTrackingInfo","kind":"json-schema","title":"DeliveryTrackingInfo","data":{"description":"Delivery Tracking Info Updates","type":"object","properties":{"event":{"description":"The delivery last known event.","type":"object","required":["type","datetime"],"properties":{"type":{"type":"string","description":"The current delivery event.","enum":["PICKUP_ONGOING","ARRIVED_AT_MERCHANT","ORDER_PICKED","DELIVERY_ONGOING","ARRIVED_AT_CUSTOMER","ORDER_DELIVERED","CANCELLED"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the event ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"problem":{"description":"In the event of a delivery problem, it states the last known reason.","type":"object","required":["reason","datetime"],"properties":{"reason":{"type":"string","description":"Problem reason.","enum":["DELIVERYPERSON_OCCURRENCE","PAYMENT_PROBLEMS","WRONG_PRODUCT_OR_ITEM","ORDER_DELAYED","ORDER_DAMAGED_OR_VIOLATED","CUSTOMER_DID_NOT_PLACE_ORDER","CUSTOMER_ADDRESS_UNKNOWN","ORDER_MISSING_ITEMS","NOBODY_TO_RECEIVE","DELIVERYPERSON_WAITING_PAYMENT_FOR_ALREADY_PAID_ORDER","ORDER_DELIVERED_WITHOUT_PAYMENT","FRAUD_OR_THEFT"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the problem ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"vehicle":{"description":"The vehicle that will be used for this delivery.","type":"object","required":["type"],"properties":{"type":{"type":"array","description":"Vehicle Type","items":{"type":"string","enum":["MOTORBIKE_BAG","MOTORBIKE_BOX","CAR","BICYCLE","SCOOTER","VUC"]},"maxItems":10},"licencePlate":{"type":"string","description":"Licence plate of the vehicle user for the delivery."}}},"eta":{"type":"object","description":"Estimate Times of Pickup and Delivery.","properties":{"pickupEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to arrive at the merchant for order pickup."},"children":[]}]}]}]},"pickupEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Eta Datetime. Informs the date and time the delivery person is expected to arrive at the merchant for order pickup."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"deliveryEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to arrive at the consumer's address for order delivery."},"children":[]}]}]}]},"deliveryEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta Datetime. Informs the date and time the delivery person is expected to arrive at the consumer's address for order delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"maxDeliveryTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Maximum Date and Time for delivery. This time should not exceed the delivery time limit given in the order request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"deliveryPerson":{"type":"object","description":"Information about the person taht was assigned to deliver the order.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person Id given by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"name":{"type":"string","description":"Delivery Person Name."},"pictureURL":{"type":"string","format":"URI","description":"URL to access the photo of the delivery person. Before entering this field, check that the parties allow data to be shared according to data disclosure laws and rules."}}},"geoLocalization":{"description":"Geo Localization Info.","type":"object","properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638},"lastAddress":{"description":"The last known address that the delivery person was when the event was sent.","type":"object","required":["distanceToPickup","distanceToDelivery","timestamp"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"District or Neighborhood name.","example":"Moema"},"street":{"type":"string","description":"Street Name.","example":"Plaza Avenue"},"postalCode":{"type":"string","description":"Postal Code.","example":"20111-000"},"distanceToPickup":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Pickup in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"distanceToDelivery":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Delivery in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"timestamp":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when this information is valid."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}}},"externalTrackingURL":{"type":"string","format":"URI","description":"External URL, provided by the logistics service to track the delivery on a specific page. Example: Real-time map view, or delivery timeline."}}}},"components/schemas/Address":{"id":"components/schemas/Address","kind":"json-schema","title":"Address","data":{"type":"object","title":"Address","required":["country","state","city","district","street","number","postalCode","complement","latitude","longitude"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"District or Neighborhood name.","example":"Moema"},"street":{"type":"string","description":"Street Name.","example":"Plaza Avenue"},"number":{"type":"string","description":"Street Number.","example":"100"},"postalCode":{"type":"string","description":"Postal Code","example":"20111-000"},"complement":{"type":"string","description":"Address complement.","example":"BL 02 AP 31"},"reference":{"type":"string","description":"Address reference.","example":"Yellow House"},"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638}}}},"components/schemas/AddressLogistics":{"id":"components/schemas/AddressLogistics","kind":"json-schema","title":"Address","data":{"type":"object","title":"Address","required":["country","state","city","district","street","number","postalCode","complement"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"District or Neighborhood name.","example":"Moema"},"street":{"type":"string","description":"Street Name.","example":"Plaza Avenue"},"number":{"type":"string","description":"Street Number.","example":"100"},"postalCode":{"type":"string","description":"Postal Code","example":"20111-000"},"complement":{"type":"string","description":"Address complement.","example":"BL 02 AP 31"},"reference":{"type":"string","description":"Address reference.","example":"Yellow House"},"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638}}}},"components/schemas/ContactPhones":{"id":"components/schemas/ContactPhones","kind":"json-schema","title":"Contact Phones","data":{"type":"object","title":"Contact Phones","required":["commercialNumber"],"properties":{"commercialNumber":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Telephone number of the merchant. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please note that the area code is required."},"children":[]}]}]}]}],"example":"55-11999999999"},"whatsappNumber":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Whatsapp number of the merchant, Keeta will temporarily ignore this information."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta does not support this field and will be ignored."},"children":[]}]}]}]}]}],"example":"11998888888"}}}},"components/schemas/Price":{"id":"components/schemas/Price","kind":"json-schema","title":"Price","data":{"type":"object","title":"Price","required":["value","currency"],"properties":{"value":{"type":"number","format":"decimal","description":"Price value. 4 decimals places are accepted","example":40},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"The 3-letter ISO 4217 currency code.","example":"BRL"}}}},"components/schemas/Error":{"id":"components/schemas/Error","kind":"json-schema","title":"Error","data":{"type":"object","required":["title","status"],"properties":{"title":{"type":"string","description":"Short description of the problem.","example":"Unexpected error"},"status":{"type":"integer","description":"HTTP code of the returned status.","example":500}}}},"components/schemas/CancellationError":{"id":"components/schemas/CancellationError","kind":"json-schema","title":"CancellationError","data":{"type":"object","required":["title","status"],"properties":{"title":{"type":"string","description":"Short description of the problem.","example":"Unexpected error"},"status":{"type":"integer","description":"HTTP code of the returned status.","example":500},"cancellationStatus":{"type":"string","description":"Indicates the result of the cancellation request.","enum":["CANCELLED"]}}}},"components/schemas/Image":{"id":"components/schemas/Image","kind":"json-schema","title":"Image","data":{"type":"object","required":["URL"],"properties":{"URL":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL pointing to an image of the merchant logo."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Image requirements:"},"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":"Supports standard HTTP/HTTPS external image URLs."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"File size must be less than 5MB, it is recommended to be less than 2MB."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Support JPG, PNG, JPEG format."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The width of the image cannot be less than 600px, and the height cannot be less than 450px. The recommended aspect ratio is 4:3, but this is not a constraint."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected that the images referenced in the URL are downloaded from the server that is making the request, because the URL may no longer be valid after a period of time."},"children":[]}]}]}]}],"example":"https://food-company.com/image.jpg"},"CRC-32":{"type":"string","format":"CRC32","description":"CRC-32 of the image file. This field can be used to check for changes in the image file.","example":"96b41025"}}}},"components/schemas/ImageWithType":{"id":"components/schemas/ImageWithType","kind":"json-schema","title":"ImageWithType","data":{"description":"Image Object","type":"object","required":["URL","type"],"properties":{"URL":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL pointing to an image of the merchant logo."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Image requirements:"},"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":"Supports standard HTTP/HTTPS external image URLs."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"File size must be less than 5MB, it is recommended to be less than 2MB."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Support JPG, PNG, JPEG format."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The width of the image cannot be less than 600px, and the height cannot be less than 450px. The recommended aspect ratio is 4:3, but this is not a constraint."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is expected that the images referenced in the URL are downloaded from the server that is making the request, because the URL may no longer be valid after a period of time."},"children":[]}]}]}]}],"example":"https://food-company.com/image.jpg"},"CRC-32":{"type":"string","format":"CRC32","description":"CRC-32 of the image file. This field can be used to check for changes in the image file.","example":"96b41025"},"type":{"type":"string","enum":["main","thumb"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The type of the image. The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"main"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" type is generally used for larger images, such as in the item detail, while the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"thumb"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" type is for smaller images, typically used in the menu listing."},"children":[]}]}]}]}}}},"components/schemas/MerchantAPIInfo":{"id":"components/schemas/MerchantAPIInfo","kind":"json-schema","title":"MerchantAPIInfo","data":{"type":"object","required":["keetaMerchantId"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information about the endpoints that are hosted at the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"getMerchantURL":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information about the merchant's Software Service's "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" access. This endpoint has the necessary information for Keeta to be able to make the merchant's available on their plataform."},"children":[]}]}]}],"required":["baseURL"],"properties":{"baseURL":{"type":"string","format":"uri","description":"The URL for accessing the endpoint."},"apiKey":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The API_KEY for accessing the endpoint (see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"AUTHENTICATION"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section form more information)."},"children":[]}]}]}]}}},"ordersWebhookURL":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Information about the merchant's Software Service's "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/newEvent"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /v1/newEvent"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" webhook access. This is where Keeta will sent the order's events to the Software Service as they happen."},"children":[]}]}]}]},"keetaMerchantId":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Keeta merchant ID is generated by Keeta. Merchants can obtain this merchantId from the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta merchant portal"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}},"components/schemas/DeliveryOrder":{"id":"components/schemas/DeliveryOrder","kind":"json-schema","title":"DeliveryOrder","data":{"description":"Delivery Order Object.","type":"object","required":["orderId","orderDisplayId","merchant","pickupAddress","returnToMerchant","canCombine","deliveryAddress","customerName","vehicle","limitTimes","totalOrderPrice","totalWeight","payments"],"properties":{"orderId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The orderId generated by the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"52122852-6626-11ed-9022-0242ac120002"},"orderDisplayId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Id shown in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" interface for the customer."},"children":[]}]}]}],"example":"96b41025"},"merchant":{"type":"object","required":["id","name"],"description":"Merchant information.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"name":{"type":"string","description":"Merchant Public Name","maxLength":500,"example":"Pizza Plaza"}}},"pickupAddress":{"description":"Pickup Address.","allOf":[{"$ref":"#/components/schemas/AddressLogistics"},{"type":"object","properties":{"pickupLocation":{"type":"string","description":"Pickup Location"},"parkingSpace":{"type":"boolean","description":"Parking Space"},"instructions":{"type":"string","description":"Any instructions that may help the delivery."}}}]},"pickupCode":{"type":"string","description":"Pickup code to be provided to the delivery person for order collection at the merchant. This code may have been generated by Keeta or by the Software Service."},"notifyReadyForPickup":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to wait for a notification that the order was ready for been picked up. This notification happens via the endpoint: "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/logisticsReadyForPicked"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /logistics/orderPicked/{orderId}"},"children":[]}]}]}]}]},"notifyPickup":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to wait for a notification that the order has actually been picked. This notification happens via the endpoint: "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/logisticsPicked"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /logistics/orderPicked/{orderId}"},"children":[]}]}]}]}]},"notifyConclusion":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to wait for a delivery finish notification from the requester, before actually finalizing the delivery in its system. This notification is made via the endpoint: "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/logisticsFinish"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST /logistics/finishDelivery/{orderId}"},"children":[]}]}]}]}]},"returnToMerchant":{"type":"boolean","description":"Inform whether the delivery person should return to the pickup address after the delivery has been made."},"canCombine":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can combine this order with other orders in the same delivery."},"children":[]}]}]}]},"confirmationCodeRequired":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" needs to validate a Delivery Confirmation Code passed by the customer to complete the delivery."},"children":[]}]}]}]},"deliveryAddress":{"description":"Delivery Address","allOf":[{"$ref":"#/components/schemas/AddressLogistics"},{"type":"object","properties":{"instructions":{"type":"string","description":"Instructions"}}}]},"customerName":{"type":"string","description":"Customer Name."},"customerPhone":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Customer's phone. Here you can enter the customer's phone number directly (provided that the customer has given permission for this data to be shared, according to local policies) or another phone number (such as the Keeta's call center phone number)."},"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":"Please note"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The telephone number is considered an identification field and therefore the customer's advance consent is required."},"children":[]}]}]}]},"customerPhoneLocalizer":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie should be used as a complementary field to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customerPhone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field in cases where a generic phone number is provided, such as a call center, and it is necessary to provide some order or customer identification."},"children":[]}]}]}]},"vehicle":{"description":"Vehicle Info. informs which vehicle options are to be used for delivery. More than one can be informed, but the logistics service must choose only one of the types of vehicles informed.","allOf":[{"$ref":"#/components/schemas/Vehicle"}]},"limitTimes":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Limit Times. Informs the maximum pickup and delivery times that must be met by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"pickupLimit":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Limit in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". It should be used to inform the maximum amount of minutes from the time the request was made to which the order should be collected at the merchant."},"children":[]}]}]}],"example":23},"deliveryLimit":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Limit in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". It should be used to inform the maximum amount of minutes from the time the request was made to which the order should be delivered at the consumer's address."},"children":[]}]}]}],"example":48},"orderCreatedAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The date and time that the Order was created at "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"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":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"preparationStartDateTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Estimated time when the order will start being prepared."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"totalOrderPrice":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total order price that was calculated and displayed for the final consumer in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". This value may already contain taxes and shipping in addition to the value of the items purchased."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"orderDeliveryFee":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field informs the delivery fee paid by the consumer in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"totalWeight":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total packaging weight in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"grams"},"children":[]}]}]}]}]},"packageVolume":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The cubage of the packaging in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"cubic meters (m³)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"packageQuantity":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Number of packages that will be transported in this order. For example, 2 packages, or 3 boxes."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The unit of measure will not be considered, only the quantity."},"children":[]}]}]}]}]},"items":{"type":"array","description":"List of items that are part of the delivery.","items":{"type":"object","properties":{"name":{"type":"string","description":"Product name"},"quantity":{"type":"number","format":"decimal","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Amount of items."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use fractional values for quantities smaller than the unit of measure:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: 500 grams = 0.5 KG"},"children":[]}]}]}]}]}}}},"specialInstructions":{"type":"string","description":"Free text to describe special instructions that may apply. These instructions can be used to give some special guidance to the delivery person at the time of the pickup or delivery."},"additionalPricePercentual":{"type":"number","format":"double","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates to the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" an additional percentage to the list price that the requester agrees to pay for the delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The delivery request will be refused if the delivery price exceeds this value."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: List Price = $10"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Actual calculated price = $15"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additonal price percentage = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"50"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In this case, any value informed below 50, would result in the order being rejected."},"children":[]}]}]}]},"payments":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payments Info. It informs the payment methods chosen by the consumer in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". This section should be used by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to check how much the delivery person should receive from the consumer when delivering the order."},"children":[]}]}]}],"properties":{"method":{"type":"string","description":"OFFLINE - The order will be paid by the consumer at the time the order is received.  \nONLINE - The order has already been paid through the order application.","enum":["OFFLINE","ONLINE"]},"wirelessPos":{"type":"boolean","description":"Indicates whether the delivery person should take the wireless payment device with him."},"offlineMethod":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the method is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OFFLINE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the payment information should be provided."},"children":[]}]}]}],"items":{"type":"object","description":"","properties":{"type":{"type":"string","enum":["CREDIT","DEBIT","MEAL_VOUCHER","FOOD_VOUCHER","PIX","CASH","CREDIT_DEBIT","OTHER"]},"amount":{"allOf":[{"$ref":"#/components/schemas/Price"}]}}},"maxItems":100},"change":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If type is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CASH"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", tells how much change will be needed."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]}}},"combinedOrdersIds":{"type":"array","description":"Combined Orders Ids. Informs the logistics service of the Id of other orders already in progress so that the operator can combine these orders. This combination may or may not be accepted by the logistic service, respecting the contracted policies.","items":{"type":"string"},"maxItems":10},"sourceAppId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field must be filled in with the AppId of "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that originated the order. This field is to help the applications that will work as a Hub, intermediating the requests from "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"sourceOrderId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field must be filled in with the original OrderId generated by "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". In most cases this property will have the same value as the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" property, since it is already recommended that the order id created by "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" be sent in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" property. But if the order id created by  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not sent in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" property then it must be entered in this field."},"children":[]}]}]}]}}}},"components/schemas/Vehicle":{"id":"components/schemas/Vehicle","kind":"json-schema","title":"Vehicle","data":{"description":"Vehicle Object.","type":"object","required":["type","container"],"properties":{"type":{"type":"array","description":"Vehicle Type","items":{"type":"string","enum":["MOTORBIKE_BAG","MOTORBIKE_BOX","CAR","BICYCLE","SCOOTER","VUC"]},"maxItems":10},"container":{"type":"string","description":"Vehicle container (bag) type.","enum":["NORMAL","THERMIC"]},"containerSize":{"type":"string","description":"Vehicle container (bag) size.","enum":["SMALL","MEDIUM","LARGE","EXTRA_LARGE"]},"instruction":{"type":"string","description":"Free text to describe special instructions that may apply. These instructions can be used to give some special guidance to the delivery person at the time of the pickup or delivery."}}}},"components/schemas/DeliveryOrderResponse":{"id":"components/schemas/DeliveryOrderResponse","kind":"json-schema","title":"DeliveryOrderResponse","data":{"description":"Delivery Order Response Object.","type":"object","required":["deliveryId","event","completion"],"properties":{"deliveryId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The delivery Id generated by the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"48ae4d68-6626-11ed-9022-0242ac120002"},"event":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Current event of the order. It is expected to be sent with the value "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" at this moment, since the acceptance or rejection of the request will be processed asynchronously."},"children":[]}]}]}],"type":"string","enum":["PENDING","ACCEPTED","REJECTED","PICKUP_ONGOING","ARRIVED_AT_MERCHANT","ORDER_PICKED","DELIVERY_ONGOING","ARRIVED_AT_CUSTOMER","ORDER_DELIVERED","RETURNING_TO_MERCHANT","RETURNED_TO_MERCHANT","DELIVERY_FINISHED","CANCELLED"]},"completion":{"type":"object","description":"Informs the expected date and time for sending the acceptance or refusal of the delivery order.","properties":{"estimate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Expected date and time for completion."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"rejectAfter":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Maximum date and time to wait for the acceptance or refusal of the order. After this time the delivery request should be disregarded and a new request should be made."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"deliveryDetailsURL":{"type":"string","format":"URI","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It is the URL where the delivery information can be found."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"It should return the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/logisticDetails"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /logistics/delivery/{orderId}"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" route for this order.\""},"children":[]}]}]}],"example":"http://yourApiBaseUrl.com/v1/logistics/delivery/52122852-6626-11ed-9022-0242ac120002"}}}},"components/schemas/DeliveryOrderEvent":{"id":"components/schemas/DeliveryOrderEvent","kind":"json-schema","title":"DeliveryOrderEvent","data":{"description":"Delivery Order Event Object.","type":"object","required":["deliveryId","orderId","orderDisplayId","merchant","event","customerName"],"properties":{"deliveryId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The delivery ID generated by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"48ae4d68-6626-11ed-9022-0242ac120002"},"orderId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The orderId generated by the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"52122852-6626-11ed-9022-0242ac120002"},"orderDisplayId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Id shown in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" interface for the customer."},"children":[]}]}]}],"example":"96b41025"},"merchant":{"type":"object","required":["id","name"],"description":"Merchant information.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"name":{"type":"string","description":"Merchant Public Name","maxLength":500,"example":"Pizza Plaza"}}},"event":{"description":"Current Event Info.","allOf":[{"$ref":"#/components/schemas/DeliveryEvent"}]},"problem":{"type":"array","description":"List of problems that may occur.","items":{"allOf":[{"$ref":"#/components/schemas/DeliveryProblem"}]}},"customerName":{"type":"string","description":"Customer Name."},"vehicle":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Chosen Vehicle Info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/ChosenVehicle"}]},"deliveryPrice":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Pricing Info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/DeliveryPrice"}]},"eta":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Estimate Times of Pickup and Delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/ETA"}]},"deliveryPerson":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person Info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/DeliveryMan"}]},"geoLocalization":{"description":"Geo Localization Info.","allOf":[{"$ref":"#/components/schemas/GeoLocalization"}]},"externalTrackingURL":{"type":"string","format":"URI","description":"External URL, provided by the logistics service to track the delivery on a specific page. Example: Real-time map view, or delivery timeline."},"combinedOrdersIds":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Combined Orders Ids. Informs which other orders from the same merchant are being carried by the same delivery person, with the same "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"deliveryId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string"}}}}},"components/schemas/DeliveryEvent":{"id":"components/schemas/DeliveryEvent","kind":"json-schema","title":"DeliveryEvent","data":{"description":"Delivery Event Object.","type":"object","required":["type","datetime"],"properties":{"type":{"type":"string","description":"The current delivery event.","enum":["PENDING","ACCEPTED","REJECTED","PICKUP_ONGOING","ARRIVED_AT_MERCHANT","ORDER_PICKED","DELIVERY_ONGOING","ARRIVED_AT_CUSTOMER","ORDER_DELIVERED","RETURNING_TO_MERCHANT","RETURNED_TO_MERCHANT","DELIVERY_FINISHED","CANCELLED"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the event ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"rejectionInfo":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Rejection Info. It should be informed to provide more information when the event type is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/DeliveryEventDenied"}]}}}},"components/schemas/DeliveryEventDenied":{"id":"components/schemas/DeliveryEventDenied","kind":"json-schema","title":"DeliveryEventDenied","data":{"description":"Delivery Event Denied Object.","type":"object","required":["reason"],"discriminator":{"propertyName":"reason","mapping":{"PRICE_EXCEEDED":"#/components/schemas/DeliveryEventDeniedPrice","VEHICLE_NOT_AVAILABLE":"#/components/schemas/DeliveryEventDeniedVehicle","NO_DELIVERYPERSON_AVAILABLE":"#/components/schemas/DeliveryEventDeniedNoDeliveryMan","DOES_NOT_MEET_REQUESTED_TIMES":"#/components/schemas/DeliveryEventDeniedEta","REGION_NOT_SERVED":"#/components/schemas/DeliveryEventDenied","INVALID_ADDRESS":"#/components/schemas/DeliveryEventDenied","OTHER":"#/components/schemas/DeliveryEventDenied"}},"properties":{"reason":{"type":"string","description":"Rejection reason.","enum":["PRICE_EXCEEDED","VEHICLE_NOT_AVAILABLE","NO_DELIVERYPERSON_AVAILABLE","DOES_NOT_MEET_REQUESTED_TIMES","REGION_NOT_SERVED","OTHER"]}}}},"components/schemas/DeliveryEventDeniedVehicle":{"id":"components/schemas/DeliveryEventDeniedVehicle","kind":"json-schema","title":"DeliveryEventDeniedVehicle","data":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/DeliveryEventDenied"},{"type":"object"},{"properties":{"metadata":{"type":"object","description":"Information about vehicles availability at the moment.","properties":{"availableVehicles":{"type":"integer","description":"Informs how many vehicles are available at the moment."},"vehiclesAvailable":{"description":"List of currently available vehicles.","allOf":[{"$ref":"#/components/schemas/Vehicle"}]},"nextAvailableVehicle":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs how soon the next vehicle will be available in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}}}]}},"components/schemas/DeliveryEventDeniedPrice":{"id":"components/schemas/DeliveryEventDeniedPrice","kind":"json-schema","title":"DeliveryEventDeniedPrice","data":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/DeliveryEventDenied"},{"type":"object"},{"properties":{"metadata":{"type":"object","description":"The actual delivery price calculated according to the data given in the request.","allOf":[{"$ref":"#/components/schemas/DeliveryPrice"}]}}}]}},"components/schemas/DeliveryEventDeniedNoDeliveryMan":{"id":"components/schemas/DeliveryEventDeniedNoDeliveryMan","kind":"json-schema","title":"DeliveryEventDeniedNoDeliveryMan","data":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/DeliveryEventDenied"},{"type":"object"},{"properties":{"metadata":{"type":"object","description":"Information about delivery person availability.","properties":{"nextAvailableVehicle":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs how soon the next delivery person will be available in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}}}]}},"components/schemas/DeliveryEventDeniedEta":{"id":"components/schemas/DeliveryEventDeniedEta","kind":"json-schema","title":"DeliveryEventDeniedEta","data":{"description":"Metadata","allOf":[{"$ref":"#/components/schemas/DeliveryEventDenied"},{"type":"object"},{"properties":{"metadata":{"type":"object","description":"The actual ETAs calculated according to the data given in the request.","allOf":[{"$ref":"#/components/schemas/ETA"}]}}}]}},"components/schemas/DeliveryProblem":{"id":"components/schemas/DeliveryProblem","kind":"json-schema","title":"DeliveryProblem","data":{"description":"Delivery Problem Object.","type":"object","required":["reason","datetime","canFinishDeliver","needMerchantAction"],"properties":{"reason":{"type":"string","description":"Problem reason.","enum":["DELIVERYPERSON_OCCURRENCE","PAYMENT_PROBLEMS","WRONG_PRODUCT_OR_ITEM","ORDER_DELAYED","ORDER_DAMAGED_OR_VIOLATED","CUSTOMER_DID_NOT_PLACE_ORDER","CUSTOMER_ADDRESS_UNKNOWN","ORDER_MISSING_ITEMS","NOBODY_TO_RECEIVE","DELIVERYPERSON_WAITING_PAYMENT_FOR_ALREADY_PAID_ORDER","ORDER_DELIVERED_WITHOUT_PAYMENT","FRAUD_OR_THEFT","OTHER"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the problem ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"canFinishDeliver":{"type":"boolean","description":"Informs whether or not it is still possible to finish the delivery."},"needMerchantAction":{"type":"boolean","description":"Informs whether or not the merchant needs to perform some action in order for delivery to continue."}}}},"components/schemas/DeliveryProblemHistory":{"id":"components/schemas/DeliveryProblemHistory","kind":"json-schema","title":"DeliveryProblemHistory","data":{"description":"Delivery Event.","type":"object","required":["reason","datetime","resolved"],"properties":{"reason":{"type":"string","description":"Problem reason.","enum":["DELIVERYPERSON_OCCURRENCE","PAYMENT_PROBLEMS","WRONG_PRODUCT_OR_ITEM","ORDER_DELAYED","ORDER_DAMAGED_OR_VIOLATED","CUSTOMER_DID_NOT_PLACE_ORDER","CUSTOMER_ADDRESS_UNKNOWN","ORDER_MISSING_ITEMS","NOBODY_TO_RECEIVE","DELIVERYPERSON_WAITING_PAYMENT_FOR_ALREADY_PAID_ORDER","ORDER_DELIVERED_WITHOUT_PAYMENT","FRAUD_OR_THEFT","OTHER"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."},"datetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the problem ocurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"resolved":{"type":"boolean","description":"Informs if the problem was resolved or not."},"actionTaken":{"type":"string","description":"Action taken by the requester.","enum":["RETURN_TO_STORE","DELIVER_PRODUCT","CANCEL_DELIVERY"]},"resolutionDate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the problem was resolved."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}},"components/schemas/ChosenVehicle":{"id":"components/schemas/ChosenVehicle","kind":"json-schema","title":"ChosenVehicle","data":{"description":"Delivery Order Response Object","type":"object","required":["type","container"],"properties":{"type":{"type":"string","description":"Vehicle Type.","enum":["MOTORBIKE_BAG","MOTORBIKE_BOX","CAR","BICYCLE","SCOOTER","VUC"]},"container":{"type":"string","description":"The veichle container (bag) type.","enum":["NORMAL","THERMIC"]},"containerSize":{"type":"string","description":"Vehicle container (bag) size.","enum":["SMALL","MEDIUM","LARGE","EXTRA_LARGE"]},"instruction":{"type":"string","description":"Special Instructions."}}}},"components/schemas/DeliveryPrice":{"id":"components/schemas/DeliveryPrice","kind":"json-schema","title":"DeliveryPrice","data":{"description":"Delivery Pricing","type":"object","required":["price","pricingList","additionalPricePercentual"],"properties":{"price":{"description":"The calculated price of the delivery. It may be 0. The price shall be calculated according to the Price List being used, as well as previously established commercial agreements.","allOf":[{"$ref":"#/components/schemas/Price"}]},"pricingList":{"type":"string","description":"Indicates what list was used to calculate the delivery price.","enum":["NORMAL","DYNAMIC"]},"additionalPricePercentual":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the additional percentage to the list price that was calculated for this delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: List Price = $10"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Actual calculated price = $15"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additonal price percentage = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"50"},"children":[]}]}]}]}]}}}},"components/schemas/DeliveryAvailabilityPrice":{"id":"components/schemas/DeliveryAvailabilityPrice","kind":"json-schema","title":"DeliveryAvailabilityPrice","data":{"description":"Delivery Order Object","type":"object","required":["pickupAddress","returnToMerchant","canCombine","deliveryAddress","vehicle","limitTimes","totalOrderPrice","totalWeight"],"properties":{"merchant":{"type":"object","required":["id","name"],"description":"Merchant information.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"name":{"type":"string","description":"Merchant Public Name","maxLength":500,"example":"Pizza Plaza"}}},"pickupAddress":{"description":"Pickup Address.","allOf":[{"$ref":"#/components/schemas/AddressLogistics"},{"type":"object","properties":{"pickupLocation":{"type":"string","description":"Pickup Location"},"parkingSpace":{"type":"boolean","description":"Parking Space"},"instructions":{"type":"string","description":"Instructions"}}}]},"returnToMerchant":{"type":"boolean","description":"Inform whether the delivery person should return to the pickup address after the delivery has been made."},"canCombine":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Inform whether the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can combine this order with other orders in the same delivery."},"children":[]}]}]}]},"deliveryAddress":{"description":"Delivery Address","allOf":[{"$ref":"#/components/schemas/AddressLogistics"},{"type":"object","properties":{"instructions":{"type":"string","description":"Instructions"}}}]},"vehicle":{"description":"Vehicle Info. informs which vehicle options are to be used for delivery. More than one can be informed, but the logistics service must choose only one of the types of vehicles informed.","allOf":[{"$ref":"#/components/schemas/Vehicle"}]},"limitTimes":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Limit Times. Informs the maximum pickup and delivery times that must be met by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"pickupLimit":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Limit in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". It should be used to inform the maximum amount of minutes from the time the request was made to which the order should be collected at the merchant."},"children":[]}]}]}],"example":23},"deliveryLimit":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Limit in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". It should be used to inform the maximum amount of minutes from the time the request was made to which the order should be delivered at the consumer's address."},"children":[]}]}]}],"example":48},"orderCreatedAt":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The date and time that the Order was created at  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"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":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}},"totalOrderPrice":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total order price that was calculated and displayed for the final consumer in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". This value may already contain taxes and shipping in addition to the value of the items purchased."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"orderDeliveryFee":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This field informs the delivery fee paid by the consumer in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/Price"}]},"totalWeight":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total Weight in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"grams"},"children":[]}]}]}]}]},"packageVolume":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The cubage of the packaging in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"cubic meters (m³)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"packageQuantity":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Number of packages that will be transported in this order. For example, 2 packages, or 3 boxes."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The unit of measure will not be considered, only the quantity."},"children":[]}]}]}]}]},"specialInstructions":{"type":"string","description":"Free text to describe special instructions that may apply."},"additionalPricePercentual":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates to the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistic Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" an additional percentage to the list price that the requester agrees to pay for the delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The delivery request will be refused if the delivery price exceeds this value."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Example: List Price = $10"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Actual calculated price = $15"},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additonal price percentage = "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"50"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In this case, any value informed below 50, would result in the order being rejected."},"children":[]}]}]}]},"onlinePayment":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs whether or not the payment has already been made in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]}]}]}]}}}},"components/schemas/DeliveryAvailabilityPriceResponse":{"id":"components/schemas/DeliveryAvailabilityPriceResponse","kind":"json-schema","title":"DeliveryAvailabilityPriceResponse","data":{"description":"Delivery Order Response Object","type":"object","properties":{"deliveryPrice":{"description":"Delivery Pricing Info.","allOf":[{"$ref":"#/components/schemas/DeliveryPrice"}]},"vehicles":{"type":"object","description":"Chosen Vehicle Info.","properties":{"availableVehicles":{"type":"integer","description":"Informs how many vehicles are available at the moment."},"vehiclesAvailable":{"description":"List of currently available vehicles.","allOf":[{"$ref":"#/components/schemas/Vehicle"}]},"nextAvailableVehicle":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informs how soon the next vehicle will be available in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}},"ETAs":{"description":"ETAs","allOf":[{"$ref":"#/components/schemas/ETA"}]}}}},"components/schemas/ETA":{"id":"components/schemas/ETA","kind":"json-schema","title":"ETA","data":{"description":"ETA","type":"object","required":["updateMethod","pickupEtaInMinutes","pickupEtaDatetime","deliveryEtaInMinutes","deliveryEtaDatetime","maxDeliveryTime"],"properties":{"updateMethod":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Update Method: Indicates how the times will be updated in the events."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OFFLINE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The time will be calculated in the event "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ACCEPTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and will no longer be updated in the following events."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ONLINE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The time will be updated in all events. In this case, when the collection has already occurred, the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pickupEtaInMinutes"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" property will be set to "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"0"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pickupEtaDatetime"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" property will be the time when the collection occurred."},"children":[]}]}]}],"enum":["OFFLINE","ONLINE"]},"pickupEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to arrive at the merchant for order pickup."},"children":[]}]}]}]},"pickupEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pickup Eta Datetime. Informs the date and time the delivery person is expected to arrive at the merchant for order pickup."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"deliveryEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to arrive at the consumer's address for order delivery."},"children":[]}]}]}]},"deliveryEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta Datetime. Informs the date and time the delivery person is expected to arrive at the consumer's address for order delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"returnToMerchantEtaInMinutes":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person return to merchant Eta in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"minutes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Informs how many minutes it will take the delivery person to return to the merchant. Only valid when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnToMerchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"returnToMerchantEtaDatetime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person return to merchant Eta Datetime. Informs the date and time the delivery person will arrive at the returning merchant. Only valid when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnToMerchant"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"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":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"maxDeliveryTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Maximum Date and Time for delivery. This time should not exceed the delivery time limit given in the order request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}},"components/schemas/DeliveryMan":{"id":"components/schemas/DeliveryMan","kind":"json-schema","title":"DeliveryMan","data":{"description":"Delivery Person","type":"object","required":["id","name"],"properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Person Id generated at the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"name":{"type":"string","description":"Delivery Person Name."},"pictureURL":{"type":"string","format":"URI","description":"URL to access the photo of the delivery person. Before entering this field, check that the parties allow data to be shared according to data disclosure laws and rules."},"phone":{"type":"string","description":"Delivery Person Phone. Before entering this field, check that the parties allow data to be shared according to data disclosure laws and rules."}}}},"components/schemas/GeoLocalization":{"id":"components/schemas/GeoLocalization","kind":"json-schema","title":"GeoLocalization","data":{"description":"Delivery Event","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the latitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Latitude in degrees. Values are restricted to the range [[-90, 90]]."},"children":[]}]}]}],"example":-23.54809},"longitude":{"type":"number","format":"float","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indicates the longitude coordinate of the actual position of the delivery person."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Longitude in degrees. Values are restricted to the range [[-180, 180]]."},"children":[]}]}]}],"example":-46.63638},"lastAddress":{"description":"The last known address that the delivery person was when the event was sent.","type":"object","required":["distanceToPickup","distanceToDelivery","timestamp"],"properties":{"country":{"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":"Two-letter "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72482.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-1 alpha-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" country code."},"children":[]}]}]}],"example":"BR"},"state":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"State or country subdivision. It is recommended (but not required) that you use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/standard/72483.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 3166-2"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" representation."},"children":[]}]}]}],"example":"BR-SP"},"city":{"type":"string","description":"City name.","example":"São Paulo"},"district":{"type":"string","description":"District or Neighborhood name.","example":"Moema"},"street":{"type":"string","description":"Street Name.","example":"Plaza Avenue"},"postalCode":{"type":"string","description":"Postal Code.","example":"20111-000"},"distanceToPickup":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Pickup in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"distanceToDelivery":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Distance To Delivery in "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"meters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"timestamp":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when this information is valid."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}}}},"components/schemas/DeliveryCancel":{"id":"components/schemas/DeliveryCancel","kind":"json-schema","title":"DeliveryCancel","data":{"description":"Delivery Cancel","type":"object","required":["reason"],"properties":{"reason":{"type":"string","description":"Cancel Reason.","enum":["CONSUMER_CANCELLATION_REQUESTED","NO_SHOW","PROBLEM_AT_MERCHANT","HIGH_ACCEPTANCE_TIME","INCORRECT_ORDER_OR_PRODUCT_PICKUP","PROBLEM_RESOLUTION","DISCOMBINE_ORDER","OTHER"]},"action":{"type":"string","description":"Action to be taken by the delivery person, after the cancellation.","enum":["RETURN_TO_STORE","CANCEL_DELIVERY"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."}}}},"components/schemas/DeliveryCancelResponse":{"id":"components/schemas/DeliveryCancelResponse","kind":"json-schema","title":"DeliveryCancelResponse","data":{"type":"object","required":["additionalCharges"],"properties":{"additionalCharges":{"type":"boolean","description":"Informs whether or not the cancellation will cause an additional charge to the delivery."}}}},"components/schemas/DeliveryHandleProblem":{"id":"components/schemas/DeliveryHandleProblem","kind":"json-schema","title":"DeliveryHandleProblem","data":{"description":"Delivery Cancel","type":"object","required":["reason","action"],"properties":{"reason":{"type":"string","description":"Problem Reason.","enum":["DELIVERYPERSON_OCCURRENCE","PAYMENT_PROBLEMS","WRONG_PRODUCT_OR_ITEM","ORDER_DELAYED","ORDER_DAMAGED_OR_VIOLATED","CUSTOMER_DID_NOT_PLACE_ORDER","CUSTOMER_ADDRESS_UNKNOWN","ORDER_MISSING_ITEMS","NOBODY_TO_RECEIVE","DELIVERYPERSON_WAITING_PAYMENT_FOR_ALREADY_PAID_ORDER","ORDER_DELIVERED_WITHOUT_PAYMENT","FRAUD_OR_THEFT","OTHER"]},"action":{"type":"string","description":"The action that the delivery person should take to solve this problem.","enum":["RETURN_TO_STORE","DELIVER_PRODUCT","CANCEL_DELIVERY"]},"message":{"type":"string","description":"Free message. It should be used to provide more detailed information."}}}},"components/schemas/DeliveryOrderPicked":{"id":"components/schemas/DeliveryOrderPicked","kind":"json-schema","title":"Order Picked","data":{"type":"object","title":"Order Picked","properties":{"pickupDate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the order pickup occurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"volumePicked":{"type":"integer","description":"Number of volumes picked up."},"observation":{"type":"string","description":"Free text. It should be used to provide more detailed information."}}}},"components/schemas/DeliveryOrderFinish":{"id":"components/schemas/DeliveryOrderFinish","kind":"json-schema","title":"Order Picked","data":{"type":"object","title":"Order Picked","required":["finishDate"],"properties":{"finishDate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when delivery completion occurred."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"observation":{"type":"string","description":"Free text. It should be used to provide more detailed information."}}}},"components/schemas/DeliveryOrderDetails":{"id":"components/schemas/DeliveryOrderDetails","kind":"json-schema","title":"DeliveryOrderDetails","data":{"description":"Delivery Order Details Object","type":"object","required":["deliveryId","orderId","orderDisplayId","merchant","customerName","events"],"properties":{"deliveryId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The delivery ID generated by the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Logistics Service"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"orderId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The orderId generated by the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"orderDisplayId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order Id shown in the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" interface for the customer."},"children":[]}]}]}],"example":"96b41025"},"merchant":{"type":"object","required":["id","name"],"description":"Merchant information.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"name":{"type":"string","description":"Merchant Public Name","maxLength":500,"example":"Pizza Plaza"}}},"customerName":{"type":"string","description":"Customer Name."},"customerPhone":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Customer's telephone number."},"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":"Please note"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": The telephone number is considered an identification field and therefore the customer's advance consent is required."},"children":[]}]}]}]},"events":{"type":"array","description":"Events History.","items":{"allOf":[{"$ref":"#/components/schemas/DeliveryEvent"}]}},"problem":{"type":"array","description":"History of problems that occuried during delivery.","items":{"allOf":[{"$ref":"#/components/schemas/DeliveryProblemHistory"}]}},"vehicle":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Chosen Vehicle Info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when current "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/ChosenVehicle"}]},"deliveryPrice":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Pricing Info."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when current "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/DeliveryPrice"}]},"times":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Estimate Times of Pickup and Delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This propertie is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REQUIRED"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when current "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"event > type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is different from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REJECTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]}]}]}]}],"allOf":[{"$ref":"#/components/schemas/DeliveryTimes"}]},"deliveryPerson":{"description":"Delivery person Info.","allOf":[{"$ref":"#/components/schemas/DeliveryMan"}]},"combinedOrdersIds":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Combined Orders Ids. Informs which other orders from the same merchant are being carried by the same delivery person, with the same "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"deliveryId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string"}},"externalTrackingURL":{"type":"string","format":"URI","description":"External URL, provided by the logistics service to track the delivery on a specific page. Example: Real-time map view, or delivery timeline."}}}},"components/schemas/DeliveryTimes":{"id":"components/schemas/DeliveryTimes","kind":"json-schema","title":"DeliveryTimes","data":{"description":"ETA","type":"object","required":["deliveryEtaDate","maxDeliveryTime","isDeliveryFinished"],"properties":{"deliveryEtaDate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivery Eta Datetime. Informs the date and time the delivery person is expected to arrive at the consumer's address for order delivery."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"maxDeliveryTime":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Maximum Date and Time for delivery. This time should not exceed the delivery time limit given in the order request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]},"isDeliveryFinished":{"type":"boolean","description":"Informs whether or not the delivery is finished."},"deliveryFinishDate":{"type":"string","format":"date-time","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Date and time when the delivery finished."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(UTC date-time in ISO timestamp format. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#section/General-Guidelines"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guidelines"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more info)."},"children":[]}]}]}]}}}},"components/schemas/DeliveryConfirmationCode":{"id":"components/schemas/DeliveryConfirmationCode","kind":"json-schema","title":"DeliveryConfirmationCode","data":{"description":"Delivery Confirmation Object.","type":"object","required":["orderId","deliveryCode"],"properties":{"orderId":{"type":"string","description":"The orderId informed in the Delivery Request.","example":"52122852-6626-11ed-9022-0242ac120002"},"deliveryCode":{"type":"string","description":"Delivery confirmation code provided by the customer."}}}},"components/schemas/MerchantData":{"id":"components/schemas/MerchantData","kind":"json-schema","title":"MerchantData","data":{"description":"Delivery Confirmation Object.","type":"object","required":["userId","brandId","brandName","authorizedShops","page"],"properties":{"userId":{"type":"integer","format":"int64","description":"Keeta brand account ID","example":12345678},"brandId":{"type":"integer","description":"Keeta brand ID","example":1001},"brandName":{"type":"string","description":"Keeta brand name","example":"Sample Brand"},"authorizedShops":{"type":"array","description":"List of authorized stores","items":{"$ref":"#/components/schemas/AuthorizedShop"}},"page":{"$ref":"#/components/schemas/PageInfo"}}}},"components/schemas/AuthorizedShop":{"id":"components/schemas/AuthorizedShop","kind":"json-schema","title":"AuthorizedShop","data":{"type":"object","required":["id","name","address","longitude","latitude","timeZone"],"properties":{"id":{"type":"integer","format":"int64","description":"Unique store identifier","example":159416882},"name":{"type":"string","description":"Store name","example":"stbaxi3 - API Test store"},"address":{"type":"string","description":"Store address","example":"Rua Augusta, 500, São Paulo, SP, Brasil"},"longitude":{"type":"number","format":"double","description":"Longitude coordinate","example":46.049568},"latitude":{"type":"number","format":"double","description":"Latitude coordinate","example":-18.770281},"timeZone":{"type":"string","description":"Time zone information","example":"America/Sao_Paulo"}}}},"components/schemas/PageInfo":{"id":"components/schemas/PageInfo","kind":"json-schema","title":"PageInfo","data":{"type":"object","required":["pageNum","pageSize","totalPage","totalCount"],"properties":{"pageNum":{"type":"integer","description":"Current page number starting from 1","example":1},"pageSize":{"type":"integer","description":"Number of items per page","example":10},"totalPage":{"type":"integer","description":"Total number of pages","example":1},"totalCount":{"type":"integer","description":"Total number of records","example":3}}}},"components/schemas/WebhookNotification":{"id":"components/schemas/WebhookNotification","kind":"json-schema","title":"WebhookNotification","data":{"type":"object","required":["clientId","authId","opType","shopId","shopName","createTime"],"properties":{"clientId":{"type":"integer","format":"int64","description":"Application ID identifying the Software Services application","example":2666245991},"authId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authorization ID that uniquely identifies a specific authorization session. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Each authorization generates a unique authId. There are two ways to obtain the authId: "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" 1. Merchant authorization redirect - the authId is included in the redirect URL        "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" 2. Keeta Authorization Webhook - the authId is provided in the webhook payload "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Please refer to the following for the specific workflow:"},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/Merchant-Self-serve-Authorization"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merchant Self-serve Authorization"},"children":[]}]}]}]}],"example":"41008"},"opType":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Operation type: 1 = Add authorization, 2 = Cancel authorization"},"children":[]}]}]}],"enum":[1,2],"example":1},"shopId":{"type":"integer","format":"int64","description":"Store ID","example":478268},"shopName":{"type":"string","description":"Store name","example":"10 Shanghai"},"createTime":{"type":"integer","format":"int64","description":"Event timestamp in milliseconds","example":1753151456973}}}},"components/schemas/WebhookResponse":{"id":"components/schemas/WebhookResponse","kind":"json-schema","title":"WebhookResponse","data":{"type":"object","required":["status","title"],"properties":{"status":{"type":"integer","description":"Response code, 0 indicates success","example":0},"title":{"type":"string","description":"Response message","example":"success"}}}},"schema_134":{"kind":"json-schema","data":{"oneOf":[{"$ref":"#/components/schemas/ClientCredentialsRequest"},{"$ref":"#/components/schemas/ShopLevelAuthorizationCodeRequest"},{"$ref":"#/components/schemas/RefreshTokenRequest"}],"discriminator":{"propertyName":"grant_type","mapping":{"app_level_token":"#/components/schemas/ClientCredentialsRequest","shop_level_authorization_code":"#/components/schemas/ShopLevelAuthorizationCodeRequest","refresh_token":"#/components/schemas/RefreshTokenRequest"}}},"id":"schema_134"},"schema_135":{"kind":"json-schema","data":{"oneOf":[{"$ref":"#/components/schemas/TokenResponseClientCredentials"},{"$ref":"#/components/schemas/TokenResponseWithRefreshToken"},{"$ref":"#/components/schemas/TokenResponseWithRefreshToken"}],"discriminator":{"propertyName":"grant_type","mapping":{"refresh_token":"#/components/schemas/TokenResponseWithRefreshToken","shop_level_authorization_code":"#/components/schemas/TokenResponseWithRefreshToken","app_level_token":"#/components/schemas/TokenResponseClientCredentials"}}},"id":"schema_135"},"schema_136":{"kind":"json-schema","data":{"type":"string"},"id":"schema_136"},"schema_137":{"kind":"json-schema","data":{"type":"object","properties":{"merchantAuthorizationUrl":{"type":"string","description":"Authorization URL for merchant","example":"https://merchant.mykeeta.com/m/web/openapi/authorize?locale=en&region=BR&cityId=110200008&risk_cost_id=&responseType=client_credentials&appId=2123830428&redirectUri=&state=&scope=all/#/app-activation"}},"required":["merchantAuthorizationUrl"]},"id":"schema_137"},"schema_138":{"kind":"json-schema","data":{"type":"integer","default":1,"minimum":1},"id":"schema_138"},"schema_139":{"kind":"json-schema","data":{"type":"integer","default":10,"minimum":1,"maximum":100},"id":"schema_139"},"schema_140":{"kind":"json-schema","data":{"type":"string","format":"SHA256","description":"SHA256 hash of the request body, using the client secret as the key"},"id":"schema_140"},"schema_141":{"kind":"json-schema","data":{"type":"string","description":"The ID of the Merchant for whom you want to complete or change registration info."},"id":"schema_141"},"schema_142":{"kind":"json-schema","data":{"type":"string","description":"The unique identifier of the merchant. The merchantId is generated by the Software Service."},"id":"schema_142"},"schema_143":{"kind":"json-schema","data":{"required":["imageData","imageName"],"type":"object","properties":{"imageData":{"type":"string","format":"binary","description":"The byte array of the image."},"imageName":{"type":"string","description":"The name of the image."}}},"id":"schema_143"},"schema_144":{"kind":"json-schema","data":{"type":"object","properties":{"data":{"type":"string","description":"image URL","example":"https://abrasel-nacional.github.io/opendelivery/images/wertwr34ebh67thook.png"}}},"id":"schema_144"},"schema_145":{"kind":"json-schema","data":{"type":"array","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Desired event types. All other events not selected by group will be automatically acknowledged and omitted from the response."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Must either be omitted or non-empty."},"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":"Event Types definitions:"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CREATED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order created."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CONFIRMED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order confirmed."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"READY_FOR_PICKUP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": Order ready for pickup by the customer or delivery person."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DISPATCHED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order went out for delivery."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PICKED_UP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order has been picked up by customer. Since there is currently no self-pickup scenario, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PICKED_UP"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" event will not be received."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DELIVERED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order has been delivered to customer."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CONCLUDED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Order completed."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLATION_REQUESTED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Sent by the Software Service to Keeta."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CANCELLED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : When the order is actually cancelled."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_REFUND_REQUEST"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Sent by Keeta to the Software Service."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REFUNDED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Sent by Keeta to the Software Service."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REFUND_FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Sent by Keeta to the Software Service."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"RECOMMENDED_PREPARATION_START"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" : Sent by Keeta to notify the merchant to begin kitchen preparation immediately."},"children":[]}]}]}]}],"items":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The event type. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/pollingEvents"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Click here"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for definitions of each type."},"children":[]}]}]}],"enum":["CREATED","CONFIRMED","DISPATCHED","READY_FOR_PICKUP","PICKED_UP","DELIVERED","CONCLUDED","CANCELLATION_REQUESTED","CANCELLED","USER_REFUND_REQUEST","REFUNDED","REFUND_FAILED","RECOMMENDED_PREPARATION_START"]},"maxItems":13},"id":"schema_145"},"schema_146":{"kind":"json-schema","data":{"type":"array","description":"Subset of merchants to fetch events from. Must either be omitted or non-empty.","items":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's Software Service."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"maxItems":100},"id":"schema_146"},"schema_147":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/AckEvents"},"maxItems":100},"id":"schema_147"},"schema_148":{"kind":"json-schema","data":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An unique Identificator of the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"**Keetas**"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The same ID must be sent to all "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"**Software Service**s"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that implements this webhook."},"children":[]}]}]}]},"id":"schema_148"},"schema_149":{"kind":"json-schema","data":{"$ref":"#/components/schemas/Merchant/properties/id","description":"An unique Identificator of the Merchant "},"id":"schema_149"},"schema_150":{"kind":"json-schema","data":{"type":"string","format":"SHA256","description":"SHA256 hash of the request body, using the client secret as the key, and finally encoded into Base64 format."},"id":"schema_150"},"schema_151":{"kind":"json-schema","data":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique Identifier. Identifies the merchant in the different systems that the merchant will communicate."},"children":[]},{"$$mdtype":"Node","type":"hardbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This id must be generated by the merchant's "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The software service should ensure that merchantId is unique."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If this is not possible, it is recommended to at least use a UUID."},"children":[]}]}]}]}],"minLength":36,"maxLength":100,"example":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824"},"id":"schema_151"},"schema_152":{"kind":"json-schema","data":{"type":"string","description":"The unique identifier of the order. The order ID is generated by  Keeta."},"id":"schema_152"},"schema_153":{"kind":"json-schema","data":{"type":"string","description":"The unique identifier of the order. The order ID is generated by Keeta."},"id":"schema_153"}},"exampleStore":{"components/examples/tokenExample":{"id":"components/examples/tokenExample","value":{"client_id":"user1234","client_secret":"ty23yhmas4ldfias9834023jsdf032j023f02","grant_type":"app_level_token"},"summary":"New Token"},"components/examples/merchantStatusExample":{"id":"components/examples/merchantStatusExample","value":{"status":"AVAILABLE","services":[{"id":"string","serviceType":"DELIVERY","serviceHours":{"weekHours":[{"dayOfWeek":["WEDNESDAY","MONDAY","THURSDAY","SUNDAY","FRIDAY","TUESDAY","SATURDAY"],"timePeriods":{"startTime":"00:00:00.000Z","endTime":"03:00:00.000Z"}},{"dayOfWeek":["WEDNESDAY","MONDAY","THURSDAY","SUNDAY","TUESDAY","FRIDAY","SATURDAY"],"timePeriods":{"startTime":"03:00:00.000Z","endTime":"23:59:59.999Z"}}],"holidayHours":[{"date":"2025-10-04","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-03","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-02","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-03","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}},{"date":"2025-10-01","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}},{"date":"2025-10-02","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}}]}}],"merchantSourceAppId":"Keeta"},"summary":"MerchantStatus Example"},"components/examples/merchantExample":{"id":"components/examples/merchantExample","value":{"lastUpdate":"2021-05-27T20:45:10.332Z","TTL":500,"id":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824","status":"AVAILABLE","basicInfo":{"name":"Pizza Plaza","document":"22815773000169","corporateName":"Food Company","description":"Food company specializing in pizzas.","averageTicket":90,"averagePreparationTime":20,"minOrderValue":{"value":20,"currency":"BRL"},"merchantType":"RESTAURANT","merchantCategories":["PIZZA","FAMILY_MEALS","PREMIUM"],"address":{"country":"BR","state":"SP","city":"São Paulo","district":"Moema","street":"Plaza Avenue","number":"100","postalCode":"20111-000","complement":"2001","reference":"Yellow house","latitude":-23.54804,"longitude":-46.6363},"contactEmails":["food@company.com"],"contactPhones":{"commercialNumber":"11999999999","whatsappNumber":"11998888888"},"logoImage":{"URL":"https://food-company.com/logo.png","CRC-32":"432098ASDSR"},"bannerImage":{"URL":"https://food-company.com/banner.png","CRC-32":"09345UIHF98"},"createdAt":"2021-05-10T20:45:10.332Z"},"services":[{"id":"f078e8e2-3044-4eec-b4a8-8359810de123","status":"AVAILABLE","serviceType":"DELIVERY","menuId":"f627ccdc-6789-456f-a782-148538d5035b","serviceArea":{"id":"f078e8e2-3044-4eec-b4a8-8359810de124","polygon":[{"geoCoordinates":[{"latitude":-20.2333,"longitude":-20.8383},{"latitude":-20.85008,"longitude":-21.00007},{"latitude":-21.15002,"longitude":-21.95483}],"price":{"value":5,"currency":"BRL"},"estimateDeliveryTime":25}],"geoRadius":{"geoMidpointLatitude":-20.2333,"geoMidpointLongitude":-20.8383,"radius":[{"size":10,"price":{"value":5.5,"currency":"BRL"},"estimateDeliveryTime":10}]}},"serviceHours":{"id":"fb093d8c-2ca5-40fb-afcf-472fbdae81cc","weekHours":[{"dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY"],"timePeriods":{"startTime":"10:00:00.000Z","endTime":"18:00:00.000Z"}},{"dayOfWeek":["SATURDAY","SUNDAY"],"timePeriods":{"startTime":"14:00:00.000Z","endTime":"18:00:00.000Z"}}],"holidayHours":[{"date":"2021-05-27","timePeriods":{"startTime":"12:00:00.000Z","endTime":"17:00:00.000Z"}}]}}],"items":[{"id":"732bd31e-77fc-47ee-88ee-a0437f97b198","name":"Medium - 2 flavors","description":"Medium two-flavored pizza.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/medium-pizza.png","CRC-32":"09345UIHF98"},"serving":8,"unit":"UN"},{"id":"b728fd88-4af0-43f7-956f-95c251f01ddd","name":"Small - 1 flavor","description":"Small one-flavored pizza.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/small-pizza.png","CRC-32":"09345UIHF98"},"serving":4,"unit":"UN"},{"id":"502ecf11-0509-48ed-b63c-6211c48fd9b9","name":"1/2 Pepperoni","description":"Pepperoni flavored pizza with LOTS of pepperoni.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/pepperoni.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2000 Cal","allergen":["GLUTEN"]},"unit":"UN"},{"id":"7e507cab-7235-4f75-a0c2-e955fb2f2048","name":"1/2 Mozzarella","description":"Delicious mozzarella pizza.","externalCode":"24","image":{"URL":"https://www.food-place.com/images/mozzarella.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2500 Cal","allergen":["GLUTEN","LACTOSE"]},"unit":"UN"},{"id":"2c0f3447-5309-49cc-a167-4eac5c664470","name":"Banana","description":"Banana Pizza with cream.","externalCode":"25","image":{"URL":"https://www.food-place.com/images/banana.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2500 Cal","allergen":["GLUTEN"]},"unit":"UN"}],"menus":[{"id":"f627ccdc-6789-456f-a782-148538d5035b","name":"Pizzas","description":"Pizza menu","externalCode":"123","disclaimer":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","categoryId":["92fad022-2c28-4239-a026-989f5b555cb7","6bb71850-1d40-49f9-8046-b13e068c0cca"]}],"categories":[{"id":"92fad022-2c28-4239-a026-989f5b555cb7","index":0,"name":"Salted Pizza","description":"Salted pizza flavors.","image":{"URL":"https://food-company.com/category1.png","CRC-32":"09345UIHF98"},"externalCode":"13","status":"AVAILABLE","availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"itemOfferId":["f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9"]},{"id":"6bb71850-1d40-49f9-8046-b13e068c0cca","index":1,"name":"Sweeted Pizza","description":"Sweeted pizza flavors.","image":{"URL":"https://food-company.com/category2.png","CRC-32":"09345UIHF98"},"externalCode":"13","status":"AVAILABLE","availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"itemOfferId":["377b99ba-5413-43d1-b875-7cdcaa72860e"]}],"itemOffers":[{"id":"f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9","itemId":"732bd31e-77fc-47ee-88ee-a0437f97b198","index":0,"price":{"value":43,"originalValue":43,"currency":"BRL"},"availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"optionGroupsId":["fe67e551-f42f-499a-8afb-0ed893c71fa3"]},{"id":"377b99ba-5413-43d1-b875-7cdcaa72860e","itemId":"7e507cab-7235-4f75-a0c2-e955fb2f2048","index":1,"price":{"value":30,"originalValue":30,"currency":"BRL"},"availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"optionGroupsId":["c524c066-96fa-458d-b78c-3712661529b3"]}],"optionGroups":[{"id":"fe67e551-f42f-499a-8afb-0ed893c71fa3","index":0,"name":"Choose your salted pizza flavor","description":"Choose your salted pizza flavor.","externalCode":"12","status":"AVAILABLE","minPermitted":2,"maxPermitted":2,"options":[{"id":"e5232f14-430c-4a94-8ff6-289d5a16a87a","itemId":"502ecf11-0509-48ed-b63c-6211c48fd9b9","index":0,"price":{"value":50,"originalValue":50,"currency":"BRL"},"maxPermitted":1},{"id":"e5232f14-430c-4a94-8ff6-289d5a16a87b","itemId":"7e507cab-7235-4f75-a0c2-e955fb2f2048","index":1,"price":{"value":43,"originalValue":43,"currency":"BRL"},"maxPermitted":1}]},{"id":"c524c066-96fa-458d-b78c-3712661529b3","index":0,"name":"Choose your sweeted pizza flavor","description":"Choose your sweeted pizza flavor.","externalCode":"12","status":"AVAILABLE","minPermitted":1,"maxPermitted":1,"options":[{"id":"2419d582-357f-4149-9089-12321537f147","itemId":"2c0f3447-5309-49cc-a167-4eac5c664470","index":0,"price":{"value":30,"originalValue":30,"currency":"BRL"},"maxPermitted":1}]}],"availabilities":[{"id":"11d063c4-73a7-4f87-a0eb-71636cc02029","startDate":"2021-05-01","endDate":"2021-05-30","hours":[{"dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY"],"timePeriods":{"startTime":"10:00:00.000Z","endTime":"18:00:00.000Z"}},{"dayOfWeek":["SATURDAY","SUNDAY"],"timePeriods":{"startTime":"14:00:00.000Z","endTime":"18:00:00.000Z"}}]}]},"summary":"Merchant Example"},"paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success":{"value":{"userId":12345678,"brandId":1001,"brandName":"Sample Brand","authorizedShops":[{"id":159416882,"name":"stbaxi3 - API Test store","address":"Rua Augusta, 500, São Paulo, SP, Brasil","longitude":46.049568,"latitude":-18.770281,"timeZone":"America/Sao_Paulo"}],"page":{"pageNum":1,"pageSize":10,"totalPage":1,"totalCount":3}},"key":"success","summary":"Successful response example","id":"paths/~1oauth~1authorized~1{authId}~1merchantInfo/get/responses/200/content/application~1json/examples/success"},"paths/~1webhook~1authorization/post/requestBody/content/application~1json/example":{"value":{"clientId":2666245991,"authId":"41008","opType":1,"shopId":478268,"shopName":"10 Shanghai","createTime":1753151456973},"id":"paths/~1webhook~1authorization/post/requestBody/content/application~1json/example"},"paths/~1webhook~1authorization/post/responses/400/content/application~1json/example":{"value":{"status":400,"title":"Invalid data format"},"id":"paths/~1webhook~1authorization/post/responses/400/content/application~1json/example"},"paths/~1webhook~1authorization/post/responses/500/content/application~1json/example":{"value":{"status":500,"title":"Internal server error"},"id":"paths/~1webhook~1authorization/post/responses/500/content/application~1json/example"},"paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample":{"value":{"lastUpdate":"2021-05-27T20:45:10.332Z","TTL":500,"id":"22815773000169-dbc7e35a-c936-4665-9e13-eb55eb8b6824","status":"AVAILABLE","basicInfo":{"name":"Pizza Plaza","document":"22815773000169","corporateName":"Food Company","description":"Food company specializing in pizzas.","averageTicket":90,"averagePreparationTime":20,"minOrderValue":{"value":20,"currency":"BRL"},"merchantType":"RESTAURANT","merchantCategories":["PIZZA","FAMILY_MEALS","PREMIUM"],"address":{"country":"BR","state":"SP","city":"São Paulo","district":"Moema","street":"Plaza Avenue","number":"100","postalCode":"20111-000","complement":"2001","reference":"Yellow house","latitude":-23.54804,"longitude":-46.6363},"contactEmails":["food@company.com"],"contactPhones":{"commercialNumber":"11999999999","whatsappNumber":"11998888888"},"logoImage":{"URL":"https://food-company.com/logo.png","CRC-32":"432098ASDSR"},"bannerImage":{"URL":"https://food-company.com/banner.png","CRC-32":"09345UIHF98"},"createdAt":"2021-05-10T20:45:10.332Z"},"services":[{"id":"f078e8e2-3044-4eec-b4a8-8359810de123","status":"AVAILABLE","serviceType":"DELIVERY","menuId":"f627ccdc-6789-456f-a782-148538d5035b","serviceArea":{"id":"f078e8e2-3044-4eec-b4a8-8359810de124","polygon":[{"geoCoordinates":[{"latitude":-20.2333,"longitude":-20.8383},{"latitude":-20.85008,"longitude":-21.00007},{"latitude":-21.15002,"longitude":-21.95483}],"price":{"value":5,"currency":"BRL"},"estimateDeliveryTime":25}],"geoRadius":{"geoMidpointLatitude":-20.2333,"geoMidpointLongitude":-20.8383,"radius":[{"size":10,"price":{"value":5.5,"currency":"BRL"},"estimateDeliveryTime":10}]}},"serviceHours":{"id":"fb093d8c-2ca5-40fb-afcf-472fbdae81cc","weekHours":[{"dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY"],"timePeriods":{"startTime":"10:00:00.000Z","endTime":"18:00:00.000Z"}},{"dayOfWeek":["SATURDAY","SUNDAY"],"timePeriods":{"startTime":"14:00:00.000Z","endTime":"18:00:00.000Z"}}],"holidayHours":[{"date":"2021-05-27","timePeriods":{"startTime":"12:00:00.000Z","endTime":"17:00:00.000Z"}}]}}],"items":[{"id":"732bd31e-77fc-47ee-88ee-a0437f97b198","name":"Medium - 2 flavors","description":"Medium two-flavored pizza.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/medium-pizza.png","CRC-32":"09345UIHF98"},"serving":8,"unit":"UN"},{"id":"b728fd88-4af0-43f7-956f-95c251f01ddd","name":"Small - 1 flavor","description":"Small one-flavored pizza.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/small-pizza.png","CRC-32":"09345UIHF98"},"serving":4,"unit":"UN"},{"id":"502ecf11-0509-48ed-b63c-6211c48fd9b9","name":"1/2 Pepperoni","description":"Pepperoni flavored pizza with LOTS of pepperoni.","externalCode":"23","image":{"URL":"https://www.food-place.com/images/pepperoni.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2000 Cal","allergen":["GLUTEN"]},"unit":"UN"},{"id":"7e507cab-7235-4f75-a0c2-e955fb2f2048","name":"1/2 Mozzarella","description":"Delicious mozzarella pizza.","externalCode":"24","image":{"URL":"https://www.food-place.com/images/mozzarella.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2500 Cal","allergen":["GLUTEN","LACTOSE"]},"unit":"UN"},{"id":"2c0f3447-5309-49cc-a167-4eac5c664470","name":"Banana","description":"Banana Pizza with cream.","externalCode":"25","image":{"URL":"https://www.food-place.com/images/banana.png","CRC-32":"09345UIHF98"},"nutritionalInfo":{"description":"Contains preservatives","calories":"2500 Cal","allergen":["GLUTEN"]},"unit":"UN"}],"menus":[{"id":"f627ccdc-6789-456f-a782-148538d5035b","name":"Pizzas","description":"Pizza menu","externalCode":"123","disclaimer":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","categoryId":["92fad022-2c28-4239-a026-989f5b555cb7","6bb71850-1d40-49f9-8046-b13e068c0cca"]}],"categories":[{"id":"92fad022-2c28-4239-a026-989f5b555cb7","index":0,"name":"Salted Pizza","description":"Salted pizza flavors.","image":{"URL":"https://food-company.com/category1.png","CRC-32":"09345UIHF98"},"externalCode":"13","status":"AVAILABLE","availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"itemOfferId":["f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9"]},{"id":"6bb71850-1d40-49f9-8046-b13e068c0cca","index":1,"name":"Sweeted Pizza","description":"Sweeted pizza flavors.","image":{"URL":"https://food-company.com/category2.png","CRC-32":"09345UIHF98"},"externalCode":"13","status":"AVAILABLE","availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"itemOfferId":["377b99ba-5413-43d1-b875-7cdcaa72860e"]}],"itemOffers":[{"id":"f080cfb3-5c4a-4eb7-907d-2de3bbb5dfb9","itemId":"732bd31e-77fc-47ee-88ee-a0437f97b198","index":0,"price":{"value":43,"originalValue":43,"currency":"BRL"},"availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"optionGroupsId":["fe67e551-f42f-499a-8afb-0ed893c71fa3"]},{"id":"377b99ba-5413-43d1-b875-7cdcaa72860e","itemId":"7e507cab-7235-4f75-a0c2-e955fb2f2048","index":1,"price":{"value":30,"originalValue":30,"currency":"BRL"},"availabilityId":["11d063c4-73a7-4f87-a0eb-71636cc02029"],"optionGroupsId":["c524c066-96fa-458d-b78c-3712661529b3"]}],"optionGroups":[{"id":"fe67e551-f42f-499a-8afb-0ed893c71fa3","index":0,"name":"Choose your salted pizza flavor","description":"Choose your salted pizza flavor.","externalCode":"12","status":"AVAILABLE","minPermitted":2,"maxPermitted":2,"options":[{"id":"e5232f14-430c-4a94-8ff6-289d5a16a87a","itemId":"502ecf11-0509-48ed-b63c-6211c48fd9b9","index":0,"price":{"value":50,"originalValue":50,"currency":"BRL"},"maxPermitted":1},{"id":"e5232f14-430c-4a94-8ff6-289d5a16a87b","itemId":"7e507cab-7235-4f75-a0c2-e955fb2f2048","index":1,"price":{"value":43,"originalValue":43,"currency":"BRL"},"maxPermitted":1}]},{"id":"c524c066-96fa-458d-b78c-3712661529b3","index":0,"name":"Choose your sweeted pizza flavor","description":"Choose your sweeted pizza flavor.","externalCode":"12","status":"AVAILABLE","minPermitted":1,"maxPermitted":1,"options":[{"id":"2419d582-357f-4149-9089-12321537f147","itemId":"2c0f3447-5309-49cc-a167-4eac5c664470","index":0,"price":{"value":30,"originalValue":30,"currency":"BRL"},"maxPermitted":1}]}],"availabilities":[{"id":"11d063c4-73a7-4f87-a0eb-71636cc02029","startDate":"2021-05-01","endDate":"2021-05-30","hours":[{"dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY"],"timePeriods":{"startTime":"10:00:00.000Z","endTime":"18:00:00.000Z"}},{"dayOfWeek":["SATURDAY","SUNDAY"],"timePeriods":{"startTime":"14:00:00.000Z","endTime":"18:00:00.000Z"}}]}]},"key":"menuExample","summary":"Merchant Example","id":"paths/~1v1~1merchant/get/responses/200/content/application~1json/examples/menuExample"},"paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample":{"value":{"status":"AVAILABLE","services":[{"id":"string","serviceType":"DELIVERY","serviceHours":{"weekHours":[{"dayOfWeek":["WEDNESDAY","MONDAY","THURSDAY","SUNDAY","FRIDAY","TUESDAY","SATURDAY"],"timePeriods":{"startTime":"00:00:00.000Z","endTime":"03:00:00.000Z"}},{"dayOfWeek":["WEDNESDAY","MONDAY","THURSDAY","SUNDAY","TUESDAY","FRIDAY","SATURDAY"],"timePeriods":{"startTime":"03:00:00.000Z","endTime":"23:59:59.999Z"}}],"holidayHours":[{"date":"2025-10-04","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-03","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-02","timePeriods":{"startTime":"00:00:00.000Z","endTime":"01:05:00.000Z"}},{"date":"2025-10-03","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}},{"date":"2025-10-01","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}},{"date":"2025-10-02","timePeriods":{"startTime":"20:00:00.000Z","endTime":"23:59:59.999Z"}}]}}],"merchantSourceAppId":"Keeta"},"key":"menuExample","summary":"MerchantStatus Example","id":"paths/~1v1~1merchant~1{id}~1status/get/responses/200/content/application~1json/examples/menuExample"}},"securitySchemeStore":{"OAuth2":{"id":"OAuth2","type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 should be the standard authentication method between parties."},"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":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ORDERS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"MERCHANT"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints,  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is responsible for credentials and token generation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LOGISTICS"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints, the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be responsible for managing these infos."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks are an exception and have their own authentication method, not using OAuth."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release only one scope will be used for all endpoints: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"od.all"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Generating a Client Credentials Token"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To generate a client credentials token, the merchant "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must retrieve the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientId"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clientSecret"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Logistics Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" company and access the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getToken"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/oauth/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"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":"Keeta"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" provide one "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"clientSecret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials for  "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software Service"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is assigned only one client_id and client_secret."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Usage"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","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":"accessToken"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field will contain the token used to authenticate against the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Open Delivery"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" APIs. Once you’ve obtained this token, you can provide it in the “Authorization” header of requests you make to endpoints that require client credentials scopes."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"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":"expiresIn"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field indicates the lifetime of the access token, provided in seconds. This should be cached and re-used across requests until (or shortly before) expiration, not re-generated per request."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"curl \n -H 'authorization: Bearer <TOKEN>' \n https://{baseURL}/v1/events:polling\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refresh Token is not available at this version."},"children":[]}]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"oauth/token","scopes":{"od.all":"Access to all **Open Delivery** APIs"}}}},"apiKey":{"id":"apiKey","type":"apiKey","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The apiKey is a key that should be generated by the endpoint's host and passed to its clients. Each client of the endpoint can have its own key. The creation and content of the key is of responsibility of the endpoint's host."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"As of the time of this release, only the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#operation/getMerchant"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET /v1/merchant"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint can require authentication via apiKey."},"children":[]}]}]}]}],"in":"header","paramName":"X-API-KEY"},"Sig":{"id":"Sig","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 "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Software services"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to include a signature in the header when making requests to Keeta. "},"children":[]},{"$$mdtype":"Node","type":"tag","tag":"html","inline":true,"attributes":{"name":"br","attrs":{}},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The signature should be generated as follows: SHA256 hash of the request body, using the client secret as the key."},"children":[]}]}]}],"in":"header","paramName":"X-App-Signature"}},"servers":[{"url":"https://open.mykeeta.com/api/open/opendelivery"}],"specType":"openapi"},"options":{"mockServer":{"off":true},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/apis/@opendelivery/opendelivery.json?download"},{"url":"/_bundle/apis/@opendelivery/opendelivery.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Keeta Open Delivery API"}},"baseSlug":"/apis/opendelivery","routesMapping":{}}