عند تغيّر حالة الطلب: قيد التنفيذ، تم التوصيل، مرتجع، وكل ما بينها.
إبقاء نظامك وعميلك على اطلاع دائم. وهو النوع الافتراضي.
shipmentError
عند فشل إنشاء شحنة لدى شركة الشحن.
رصد الطلبات التي كانت ستبقى متوقفة دون ذلك. يتضمن رسالة شركة الشحن نفسها.
newOrders
عند وصول طلب إلى OTO.
تمرير الطلبات إلى نظام WMS آخر.
اشترك في shipmentError حتى لو لم تشترك في أي شيء آخرالحجز الفاشل صامت بطبيعته: الطلب لا يتحرك، ولا يُرسَل أي حدث تغيير حالة لأن شيئًا لم يتغير.أما البيانات المرسلة (Payload) فتذكر السبب: errorCode، ونص رد شركة الشحن في deliveryCompanyResponse، وغالبًا ما يكون شيئًا مثل مدينة أو رمز بريدي ناقص. ومثل هذه المشكلات تُحل في ثوانٍ إذا علم بها أحد، وتبقى غير مرئية لأيام إذا لم يعلم بها أحد.
تحتوي بيانات orderStatus على الطلب وحالته الجديدة، وشركة الشحن والسائق إن وُجدا، ورقم التتبع ورابط التتبع، ورابطًا لبوليصة الشحن (AWB)، وtimestamp بتوقيت UTC.وتحتوي بيانات shipmentError على orderId، وerrorCode، وerrorMessage الصادرة من OTO، والرد الخام من شركة الشحن في deliveryCompanyResponse.وتحتوي بيانات newOrders على الطلب كاملًا: العنوان، والمنتجات، والوزن، والمبالغ الإجمالية، وطريقة الدفع، وقناة البيع، والمستودع.
تحمل كل بيانات مرسلة حقل signature: وهو قيمة HMAC-SHA256 محسوبة على سلسلة نصية موصولة بنقطتين رأسيتين، ومرمّزة بـ base64، باستخدام secretKey الذي سجّلته.
نوع الحدث
السلسلة الموقّعة
orderStatus
orderId:status:timestamp
shipmentError
orderId:errorCode:timestamp
تحقق من التوقيع، وارفض الطوابع الزمنية القديمةيستطيع أي شخص يعرف عنوان Webhook الخاص بك الوصول إليه. ودون التحقق، يستطيع أي شخص من هؤلاء أن يُبلغ نظامك بأن طلبًا ما قد تم توصيله.أعد حساب HMAC على السلسلة الموقّعة وقارنه بمقارنة ثابتة الزمن (Constant-time). ثم تأكد من أن الطابع الزمني حديث: فالتوقيع الصحيح على بيانات قديمة هو إعادة إرسال (Replay)، وأخفّ ما قد يفعله هو تعليم طلب الأمس كـ«تم التوصيل» مرة أخرى.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OTO Docs","description":"Product documentation for OTO, the ecommerce operations platform and shipping gateway for merchants in Saudi Arabia, the UAE and Türkiye.","colors":{"primary":"#506EFE","light":"#3D5FFF","dark":"#506EFE"},"logo":{"light":"https://mintcdn.com/oto/50MvmFcOsjmCy_H4/images/docs-logo.png?fit=max\u0026auto=format\u0026n=50MvmFcOsjmCy_H4\u0026q=85\u0026s=e77cede9643d5290bd5ff9ef3cd62084","dark":"https://mintcdn.com/oto/CC-n0HhbZXZkyIOY/images/docs-logo-dark.png?fit=max\u0026auto=format\u0026n=CC-n0HhbZXZkyIOY\u0026q=85\u0026s=0eaa761eda10edc1248ec73a7a464915"},"favicon":{"light":"https://mintcdn.com/oto/jqSnxa8fmU8MbKy9/images/oto-logo-51232.png?fit=max\u0026auto=format\u0026n=jqSnxa8fmU8MbKy9\u0026q=85\u0026s=40c563a4988902b756905551f7dfa08e","dark":"https://mintcdn.com/oto/jqSnxa8fmU8MbKy9/images/oto-logo-51232.png?fit=max\u0026auto=format\u0026n=jqSnxa8fmU8MbKy9\u0026q=85\u0026s=40c563a4988902b756905551f7dfa08e"},"background":{"color":{"light":"#F5F7F9","dark":"#111111"}},"navbar":{"links":[{"href":"https://tryoto.com","label":"Home"},{"href":"https://support.tryoto.com","label":"Help center"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.tryoto.com"}},"seo":{"organization":{"id":"https://tryoto.com/#organization","name":"OTO","url":"https://tryoto.com","logo":"https://docs.tryoto.com/images/oto-logo-51232.png","sameAs":["https://www.linkedin.com/company/tryotocom","https://x.com/tryotocom","https://www.instagram.com/tryotocom","https://www.facebook.com/tryotocom","https://www.youtube.com/@tryotocom"]}},"fonts":{"family":"Ping ARLT Regular","source":"https://storage.googleapis.com/tryoto-public/public/assets/fonts/PingARLT-Regular.woff2","format":"woff2"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"ar","navbar":{"links":[{"href":"https://tryoto.com","label":"الرئيسية"},{"href":"https://support.tryoto.com/ar","label":"مركز المساعدة"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://app.tryoto.com"}},"href":"ar"},{"language":"tr","navbar":{"links":[{"href":"https://tryoto.com","label":"Anasayfa"},{"href":"https://support.tryoto.com/tr","label":"Yardım Merkezi"}],"primary":{"type":"button","label":"Gösterge Paneli","href":"https://app.tryoto.com"}},"href":"tr"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"oto","hasAudioNarration":false,"actualSubdomain":"oto","customDomains":["docs.tryoto.com"],"gitSource":{"type":"github","owner":"otoglobal","repo":"oto-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6ad8ce8fad82cbcc460c882d"},"chroma":{"latestBuiltDeploymentHistoryId":"6addbb84b128bc39b5e5b942","collectionId":"d72dffa9-51ec-43cf-8cd6-cc0c06f5df60","liveDeploymentHistoryId":"6addbb84b128bc39b5e5b942","schemaVersion":"v3"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6addbb84b128bc39b5e5b942","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"ar","tag":"الأنظمة","count":43},{"language":"en","tag":"Modules","count":43},{"language":"tr","tag":"Modüller","count":43},{"language":"ar","tag":"عمليات الربط","count":8},{"language":"en","tag":"Integrations","count":8},{"language":"tr","tag":"Entegrasyonlar","count":8},{"language":"ar","tag":"المطورون","count":6},{"language":"ar","tag":"البدء","count":6},{"language":"ar","tag":"إشعارات العملاء","count":6},{"language":"ar","tag":"إدارة المخزون","count":6},{"language":"ar","tag":"OMS متعدد القنوات","count":6},{"language":"en","tag":"Developers","count":6},{"language":"en","tag":"Get started","count":6},{"language":"en","tag":"Customer Notification","count":6},{"language":"en","tag":"Inventory Management","count":6},{"language":"en","tag":"Omnichannel OMS","count":6},{"language":"tr","tag":"Geliştiriciler","count":6},{"language":"tr","tag":"Başlarken","count":6},{"language":"tr","tag":"Müşteri Bildirimleri","count":6},{"language":"tr","tag":"Envanter Yönetimi","count":6},{"language":"tr","tag":"Omnichannel OMS","count":6},{"language":"ar","tag":"OTO FLEX","count":5},{"language":"ar","tag":"إدارة الشحن","count":5},{"language":"ar","tag":"إدارة المستودعات","count":5},{"language":"en","tag":"OTO FLEX","count":5},{"language":"en","tag":"Shipping Management","count":5},{"language":"en","tag":"Warehouse Management","count":5},{"language":"tr","tag":"OTO FLEX","count":5},{"language":"tr","tag":"Kargo Yönetimi","count":5},{"language":"tr","tag":"Depo Yönetimi","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"rtl.css","content":":is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar button.lg\\:hidden>div+div,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#content-area, #page-title, #header, #table-of-contents, #sidebar-content, #mobile-nav, #pagination, #footer),:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=menu]{direction:rtl;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul{padding-left:0;padding-right:0}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul>li{padding-left:0;padding-right:2rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul>li::before{left:auto;right:.5rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area blockquote{border-left:0;border-right:.25rem solid currentColor;padding-left:0;padding-right:1em}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(table, th, td){text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(pre, code, .code-block, .code-group, .frame svg, [data-badge]){direction:ltr;unicode-bidi:isolate;text-align:left}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #mobile-nav #localization-select-trigger svg,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu.ml-auto,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-next]{margin-left:0;margin-right:auto}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu-button{border-radius:0 var(--radius-xl, 0.75rem) var(--radius-xl, 0.75rem) 0;border-left-width:0;border-right-width:1px}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu-button+button{border-radius:var(--radius-xl, 0.75rem) 0 0 var(--radius-xl, 0.75rem)}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar button.lg\\:hidden>div+div svg,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=menuitem] .font-medium>svg{scale:-1 1}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]):has(#page-context-menu button[aria-expanded=true]) [role=menu][data-align=end]{translate:calc(100% - var(--anchor-width, 0px)) 0;transform-origin:0 -4px}}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area em{unicode-bidi:plaintext}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(h1, h2, h3, h4, h5, h6)>.absolute>a{display:none}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(h1, h2, h3, h4, h5, h6)>.absolute>a{display:flex;margin-left:0;translate:2.5rem 0}}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #sidebar-content>div{padding-right:0;padding-left:2rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) .sidebar-group-header{padding-left:0;padding-right:1rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button)[style*=padding-left]{padding-left:.75rem!important;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:1rem\"], [style*=\"padding-left: 1rem\"]){padding-right:1rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:1.75rem\"], [style*=\"padding-left: 1.75rem\"]){padding-right:1.75rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:2.5rem\"], [style*=\"padding-left: 2.5rem\"]){padding-right:2.5rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) button[aria-expanded]:not([aria-haspopup]) svg{margin-right:0;margin-left:-.125rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) button[aria-expanded=false]:not([aria-haspopup]) svg{scale:-1 1}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #table-of-contents a{padding-left:0;padding-right:calc(var(--toc-padding-left, 0rem) + var(--toc-focus-padding, 0rem))}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-prev] svg{rotate:180deg}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-next] svg{rotate:none}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button){direction:rtl;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button)>button{right:auto;left:.375rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button) li:first-child>a{padding-left:30px;padding-right:.75rem}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar{direction:rtl}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #topbar-cta-button svg{scale:-1 1}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) div:has(>#sidebar){flex-direction:row-reverse}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-container>div:has(>#content-area){flex-direction:row}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area{padding-left:.25rem;padding-right:5.7rem;margin-left:0;margin-right:-3rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #table-of-contents-layout{padding-left:0;padding-right:2.5rem}}"}],"page":{"pagePath":"ar/developers/webhook-events","slug":"/ar/developers/webhook-events","pageMetadata":{"title":"أحداث Webhook وبياناتها","sidebarTitle":"أحداث Webhook","description":"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.","href":"/ar/developers/webhook-events"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Badge,Heading,Table,Tip,Warning}=_components;if(!Badge)_missingMdxReference(`Badge`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`يقلب Webhook اتجاه عملية الربط. فبدلًا من أن تسأل OTO عمّا حدث كل بضع دقائق، تستضيف أنت عنوان URL وتُبلغك OTO بما يحدث.`}),`\n`,_jsx(Heading,{level:`2`,id:`أنواع-الأحداث-الثلاثة`,children:`أنواع الأحداث الثلاثة`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`النوع`}),_jsx(_components.th,{children:`متى يُرسَل؟`}),_jsx(_components.th,{children:`استخدامه`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orderStatus`})}),_jsx(_components.td,{children:`عند تغيّر حالة الطلب: قيد التنفيذ، تم التوصيل، مرتجع، وكل ما بينها.`}),_jsx(_components.td,{children:`إبقاء نظامك وعميلك على اطلاع دائم. وهو النوع الافتراضي.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`shipmentError`})}),_jsx(_components.td,{children:`عند فشل إنشاء شحنة لدى شركة الشحن.`}),_jsx(_components.td,{children:`رصد الطلبات التي كانت ستبقى متوقفة دون ذلك. يتضمن رسالة شركة الشحن نفسها.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`newOrders`})}),_jsx(_components.td,{children:`عند وصول طلب إلى OTO.`}),_jsx(_components.td,{children:`تمرير الطلبات إلى نظام WMS آخر.`})]})]})]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`اشترك في shipmentError حتى لو لم تشترك في أي شيء آخر`})}),_jsx(_components.p,{children:`الحجز الفاشل صامت بطبيعته: الطلب لا يتحرك، ولا يُرسَل أي حدث تغيير حالة لأن شيئًا لم يتغير.`}),_jsxs(_components.p,{children:[`أما البيانات المرسلة (Payload) فتذكر السبب: `,_jsx(_components.code,{children:`errorCode`}),`، ونص رد شركة الشحن في `,_jsx(_components.code,{children:`deliveryCompanyResponse`}),`، وغالبًا ما يكون شيئًا مثل مدينة أو رمز بريدي ناقص. ومثل هذه المشكلات تُحل في ثوانٍ إذا علم بها أحد، وتبقى غير مرئية لأيام إذا لم يعلم بها أحد.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`تسجيل-webhook`,children:`تسجيل Webhook`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /rest/v2/webhook`}),` `,_jsx(Badge,{children:`Starter+`})]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`الحقل`}),_jsx(_components.th,{children:`مطلوب`}),_jsx(_components.th,{children:`وظيفته`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsx(_components.td,{children:`نعم`}),_jsx(_components.td,{children:`نقطة النهاية الخاصة بك.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`method`})}),_jsx(_components.td,{children:`نعم`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`POST`}),` أو `,_jsx(_components.code,{children:`PUT`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`webhookType`})}),_jsx(_components.td,{children:`لا`}),_jsxs(_components.td,{children:[`أحد الأنواع الثلاثة أعلاه. القيمة الافتراضية `,_jsx(_components.code,{children:`orderStatus`}),` و`,_jsx(_components.code,{children:`newOrders`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`secretKey`})}),_jsx(_components.td,{children:`لا`}),_jsx(_components.td,{children:`المفتاح السري المشترك الذي يُحسب به توقيع البيانات المرسلة.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`authorizationKey`})}),_jsx(_components.td,{children:`لا`}),_jsx(_components.td,{children:`رمز يُرسل مع الطلب حتى تتمكن نقطة النهاية لديك من رفض أي طلب آخر.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timestampFormat`})}),_jsx(_components.td,{children:`لا`}),_jsxs(_components.td,{children:[`تنسيق الطابع الزمني الذي تريده، مثل `,_jsx(_components.code,{children:`yyyy-MM-dd HH:mm:ss`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orderPrefix`})}),_jsx(_components.td,{children:`لا`}),_jsx(_components.td,{children:`بادئة تُحذف من معرّفات الطلبات قبل الإرسال، إذا كانت معرّفات OTO تحمل بادئة لا يتوقعها نظامك.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET`}),` يعرض اشتراكاتك، و`,_jsx(_components.code,{children:`PUT`}),` يحدّث اشتراكًا باستخدام `,_jsx(_components.code,{children:`id`}),`، و`,_jsx(_components.code,{children:`DELETE`}),` يحذفه. وجميعها على المسار نفسه.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ما-الذي-يصلك؟`,children:`ما الذي يصلك؟`}),`\n`,_jsxs(_components.p,{children:[`تحتوي بيانات `,_jsx(_components.code,{children:`orderStatus`}),` على الطلب وحالته الجديدة، وشركة الشحن والسائق إن وُجدا، ورقم التتبع ورابط التتبع، ورابطًا لبوليصة الشحن (AWB)، و`,_jsx(_components.code,{children:`timestamp`}),` بتوقيت `,_jsx(_components.strong,{children:`UTC`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`وتحتوي بيانات `,_jsx(_components.code,{children:`shipmentError`}),` على `,_jsx(_components.code,{children:`orderId`}),`، و`,_jsx(_components.code,{children:`errorCode`}),`، و`,_jsx(_components.code,{children:`errorMessage`}),` الصادرة من OTO، والرد الخام من شركة الشحن في `,_jsx(_components.code,{children:`deliveryCompanyResponse`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`وتحتوي بيانات `,_jsx(_components.code,{children:`newOrders`}),` على الطلب كاملًا: العنوان، والمنتجات، والوزن، والمبالغ الإجمالية، وطريقة الدفع، وقناة البيع، والمستودع.`]}),`\n`,_jsx(Heading,{level:`2`,id:`التحقق-من-أن-الطلب-صادر-من-oto`,children:`التحقق من أن الطلب صادر من OTO`}),`\n`,_jsxs(_components.p,{children:[`تحمل كل بيانات مرسلة حقل `,_jsx(_components.code,{children:`signature`}),`: وهو قيمة `,_jsx(_components.strong,{children:`HMAC-SHA256`}),` محسوبة على سلسلة نصية موصولة بنقطتين رأسيتين، ومرمّزة بـ base64، باستخدام `,_jsx(_components.code,{children:`secretKey`}),` الذي سجّلته.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`نوع الحدث`}),_jsx(_components.th,{children:`السلسلة الموقّعة`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orderStatus`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`orderId:status:timestamp`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`shipmentError`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`orderId:errorCode:timestamp`})})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`تحقق من التوقيع، وارفض الطوابع الزمنية القديمة`})}),_jsx(_components.p,{children:`يستطيع أي شخص يعرف عنوان Webhook الخاص بك الوصول إليه. ودون التحقق، يستطيع أي شخص من هؤلاء أن يُبلغ نظامك بأن طلبًا ما قد تم توصيله.`}),_jsx(_components.p,{children:`أعد حساب HMAC على السلسلة الموقّعة وقارنه بمقارنة ثابتة الزمن (Constant-time). ثم تأكد من أن الطابع الزمني حديث: فالتوقيع الصحيح على بيانات قديمة هو إعادة إرسال (Replay)، وأخفّ ما قد يفعله هو تعليم طلب الأمس كـ«تم التوصيل» مرة أخرى.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`بناء-نقطة-نهاية-يُعتمد-عليها`,children:`بناء نقطة نهاية يُعتمد عليها`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`أجب فورًا.`}),` أعد 200 بمجرد استلام البيانات، ونفّذ المعالجة بعد ذلك. فنقطة النهاية البطيئة تبدو كأنها معطلة.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`توقّع التكرار.`}),` قد تتكرر الإرسالات. اعتمد على `,_jsx(_components.code,{children:`orderId`}),` مع الحالة والطابع الزمني مفتاحًا، واجعل إعادة المعالجة غير ضارة.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`توقّع وصولها بغير ترتيب.`}),` توقيتات الشبكة لا تلتزم بتسلسل الحالات لديك. لا تُعد الطلب إلى حالة سابقة أبدًا لأن حدثًا أقدم وصل متأخرًا.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`سجّل النص الخام قبل تحليله.`}),` عندما يتعطل الربط في الساعة الثانية فجرًا، فإن البيانات التي لم تحتفظ بها هي تحديدًا ما كنت تحتاجه.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`صفحات-ذات-صلة`,children:`صفحات ذات صلة`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ar/developers/authentication`,children:`التوثيق`}),` — الرموز وبيئة التجربة.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ar/modules/sales-channels/updates`,children:`تحديثات الحالة والتتبع`}),` — الأحداث نفسها، لكنها تُرسل إلى قناة بيع.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ar/developers/rest-api-reference`,children:`فهرس نقاط النهاية`}),` — كل ما عدا ذلك.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"أحداث Webhook وبياناتها","sidebarTitle":"أحداث Webhook","description":"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.","href":"/ar/developers/webhook-events"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"أنواع الأحداث الثلاثة","slug":"أنواع-الأحداث-الثلاثة","depth":2,"children":[]},{"title":"تسجيل Webhook","slug":"تسجيل-webhook","depth":2,"children":[]},{"title":"ما الذي يصلك؟","slug":"ما-الذي-يصلك؟","depth":2,"children":[]},{"title":"التحقق من أن الطلب صادر من OTO","slug":"التحقق-من-أن-الطلب-صادر-من-oto","depth":2,"children":[]},{"title":"بناء نقطة نهاية يُعتمد عليها","slug":"بناء-نقطة-نهاية-يُعتمد-عليها","depth":2,"children":[]},{"title":"صفحات ذات صلة","slug":"صفحات-ذات-صلة","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/oto/5e4908087dc78be6/adsping.js"],"subdomain":"oto","siteName":"OTO Docs","title":"أحداث Webhook وبياناتها - OTO Docs","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/developers/webhook-events","matchLevel":1},"ar":{"href":"/ar/developers/webhook-events","matchLevel":0},"tr":{"href":"/tr/developers/webhook-events","matchLevel":1}}},"lastModified":"2026-10-22T15:40:14.632Z","originalFileLocation":"ar/developers/webhook-events.mdx","locale":"ar"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OTO Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"أحداث Webhook وبياناتها - OTO Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OTO Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tryoto.com/ar/developers/webhook-events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://oto.mintlify.app/_mintlify/api/og/v2?division=%D8%A7%D9%84%D9%85%D8%B7%D9%88%D8%B1%D9%88%D9%86\u0026amp;title=%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB+Webhook+%D9%88%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA%D9%87%D8%A7\u0026amp;description=%D8%B3%D8%AC%D9%91%D9%84+Webhook+%D8%B9%D8%A8%D8%B1+OTO+API%D8%8C+%D9%88%D8%A7%D8%B7%D9%91%D9%84%D8%B9+%D8%B9%D9%84%D9%89+%D9%85%D8%A7+%D9%8A%D8%B1%D8%B3%D9%84%D9%87+%D9%83%D9%84+%D9%86%D9%88%D8%B9+%D9%85%D9%86+%D8%A3%D9%86%D9%88%D8%A7%D8%B9+%D8%A7%D9%84%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB+%D8%A7%D9%84%D8%AB%D9%84%D8%A7%D8%AB%D8%A9%D8%8C+%D9%88%D8%AA%D8%AD%D9%82%D9%82+%D9%85%D9%86+%D8%AA%D9%88%D9%82%D9%8A%D8%B9%D8%A7%D8%AA+HMAC-SHA256%D8%8C+%D9%88%D8%A7%D8%A8%D9%86%D9%90+%D9%86%D9%82%D8%B7%D8%A9+%D9%86%D9%87%D8%A7%D9%8A%D8%A9+%D9%8A%D9%8F%D8%B9%D8%AA%D9%85%D8%AF+%D8%B9%D9%84%D9%8A%D9%87%D8%A7.\u0026amp;theme=fb0540dacc0ff6c761581805\u0026amp;signature=482a468b323774cb6ae673e8a453604f27ec696ca4b1910c8cc9bc09adcfe0a8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"أحداث Webhook وبياناتها - OTO Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://oto.mintlify.app/_mintlify/api/og/v2?division=%D8%A7%D9%84%D9%85%D8%B7%D9%88%D8%B1%D9%88%D9%86\u0026amp;title=%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB+Webhook+%D9%88%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA%D9%87%D8%A7\u0026amp;description=%D8%B3%D8%AC%D9%91%D9%84+Webhook+%D8%B9%D8%A8%D8%B1+OTO+API%D8%8C+%D9%88%D8%A7%D8%B7%D9%91%D9%84%D8%B9+%D8%B9%D9%84%D9%89+%D9%85%D8%A7+%D9%8A%D8%B1%D8%B3%D9%84%D9%87+%D9%83%D9%84+%D9%86%D9%88%D8%B9+%D9%85%D9%86+%D8%A3%D9%86%D9%88%D8%A7%D8%B9+%D8%A7%D9%84%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB+%D8%A7%D9%84%D8%AB%D9%84%D8%A7%D8%AB%D8%A9%D8%8C+%D9%88%D8%AA%D8%AD%D9%82%D9%82+%D9%85%D9%86+%D8%AA%D9%88%D9%82%D9%8A%D8%B9%D8%A7%D8%AA+HMAC-SHA256%D8%8C+%D9%88%D8%A7%D8%A8%D9%86%D9%90+%D9%86%D9%82%D8%B7%D8%A9+%D9%86%D9%87%D8%A7%D9%8A%D8%A9+%D9%8A%D9%8F%D8%B9%D8%AA%D9%85%D8%AF+%D8%B9%D9%84%D9%8A%D9%87%D8%A7.\u0026amp;theme=fb0540dacc0ff6c761581805\u0026amp;signature=482a468b323774cb6ae673e8a453604f27ec696ca4b1910c8cc9bc09adcfe0a8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OTO Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#506EFE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tryoto.com/ar/developers/webhook-events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ar/developers/webhook-events.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.tryoto.com/ar/developers/webhook-events\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.tryoto.com/developers/webhook-events\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://docs.tryoto.com/tr/developers/webhook-events\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.tryoto.com/developers/webhook-events\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://tryoto.com/#organization\",\"name\":\"OTO\",\"url\":\"https://tryoto.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.tryoto.com/images/oto-logo-51232.png\"},\"sameAs\":[\"https://www.linkedin.com/company/tryotocom\",\"https://x.com/tryotocom\",\"https://www.instagram.com/tryotocom\",\"https://www.facebook.com/tryotocom\",\"https://www.youtube.com/@tryotocom\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tryoto.com#website\",\"name\":\"OTO Docs\",\"url\":\"https://docs.tryoto.com\",\"publisher\":{\"@id\":\"https://tryoto.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tryoto.com/ar/developers/webhook-events#webpage\",\"url\":\"https://docs.tryoto.com/ar/developers/webhook-events\",\"name\":\"أحداث Webhook وبياناتها\",\"description\":\"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\",\"dateModified\":\"2026-10-22T15:40:14.632Z\",\"isPartOf\":{\"@id\":\"https://docs.tryoto.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tryoto.com/ar/developers/webhook-events#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tryoto.com/ar/developers/webhook-events#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"المطورون\",\"item\":\"https://docs.tryoto.com/ar/developers/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"أحداث Webhook وبياناتها\",\"item\":\"https://docs.tryoto.com/ar/developers/webhook-events\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tryoto.com/ar/developers/webhook-events#article\",\"headline\":\"أحداث Webhook وبياناتها\",\"name\":\"أحداث Webhook وبياناتها\",\"description\":\"سجّل Webhook عبر OTO API، واطّلع على ما يرسله كل نوع من أنواع الأحداث الثلاثة، وتحقق من توقيعات HMAC-SHA256، وابنِ نقطة نهاية يُعتمد عليها.\",\"url\":\"https://docs.tryoto.com/ar/developers/webhook-events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tryoto.com/ar/developers/webhook-events#webpage\"},\"dateModified\":\"2026-10-22T15:40:14.632Z\",\"publisher\":{\"@id\":\"https://tryoto.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tryoto.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OTO Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OTO Docs","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/developers/webhook-events"}]},{"language":"ar","navbar":{"links":[{"href":"https://tryoto.com","label":"الرئيسية"},{"href":"https://support.tryoto.com/ar","label":"مركز المساعدة"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://app.tryoto.com"}},"groups":[{"group":"البدء","pages":[{"title":"منصة لإدارة عمليات التجارة الإلكترونية وبوابة شحن","sidebarTitle":"الرئيسية","href":"/ar"},{"title":"ما هي OTO؟","href":"/ar/get-started/what-is-oto"},{"title":"المفاهيم الأساسية: الطلبات والشحنات والمخزون والمراكز","sidebarTitle":"المفاهيم الأساسية","href":"/ar/get-started/core-concepts"},{"title":"بنية المنصة","href":"/ar/get-started/architecture"},{"title":"البدء السريع: اشحن أول طلب مع OTO","sidebarTitle":"البدء السريع","href":"/ar/get-started/quickstart"},{"title":"مسرد مصطلحات OTO","sidebarTitle":"مسرد المصطلحات","href":"/ar/get-started/glossary"}]},{"group":"الأنظمة","pages":[{"group":"OMS متعدد القنوات","pages":[{"title":"OMS متعدد القنوات","sidebarTitle":"نظرة عامة","href":"/ar/modules/omnichannel-oms/overview"},{"title":"مزامنة الطلبات: كيف تصل الطلبات إلى OTO","sidebarTitle":"مزامنة الطلبات","href":"/ar/modules/omnichannel-oms/order-sync"},{"title":"توجيه الطلبات بين المستودعات والمتاجر","sidebarTitle":"توجيه الطلبات","href":"/ar/modules/omnichannel-oms/order-routing"},{"title":"تصحيح العناوين والبيانات","href":"/ar/modules/omnichannel-oms/order-data-correction"},{"title":"فحوصات ما قبل التجهيز","href":"/ar/modules/omnichannel-oms/prefulfillment"},{"title":"تجهيز الطلبات في المستودعات والمتاجر","sidebarTitle":"تجهيز الطلبات","href":"/ar/modules/omnichannel-oms/order-fulfillment"}]},{"group":"قنوات البيع","pages":[{"title":"قنوات البيع","sidebarTitle":"نظرة عامة","href":"/ar/modules/sales-channels/overview"},{"title":"ربط قناة بيع ومزامنتها","sidebarTitle":"مزامنة القنوات","href":"/ar/modules/sales-channels/sync"},{"title":"مزامنة حالة الطلب والتتبع مع متجرك","sidebarTitle":"تحديثات الحالة والتتبع","href":"/ar/modules/sales-channels/updates"},{"title":"Checkout API لأسعار الشحن الفورية","sidebarTitle":"Checkout API","href":"/ar/modules/sales-channels/checkout-api"}]},{"group":"إدارة الشحن","pages":[{"title":"إدارة الشحن","sidebarTitle":"نظرة عامة","href":"/ar/modules/shipping-management/overview"},{"title":"ربط شركات الشحن وإعدادها","sidebarTitle":"ربط شركات الشحن","href":"/ar/modules/shipping-management/carrier-integration"},{"title":"إنشاء الشحنات وطباعة بوالص الشحن وتتبع الطرود","sidebarTitle":"الشحن والتتبع","href":"/ar/modules/shipping-management/shipping-and-tracking"},{"title":"أتمتة الشحن وقواعد اختيار شركة الشحن","sidebarTitle":"أتمتة الشحن","href":"/ar/modules/shipping-management/shipping-automation"},{"title":"مطابقة فواتير الشحن","href":"/ar/modules/shipping-management/shipping-invoices-reconciliation"}]},{"group":"إدارة المرتجعات","pages":[{"title":"إدارة المرتجعات","sidebarTitle":"نظرة عامة","href":"/ar/modules/return-management/overview"},{"title":"بوابة الإرجاع وطلبات إرجاع العملاء","sidebarTitle":"مرتجعات العملاء","href":"/ar/modules/return-management/customer-returns"},{"title":"استلام الشحنات المرتجعة وفحصها","sidebarTitle":"استلام الشحنات المرتجعة","href":"/ar/modules/return-management/returns-receiving"},{"title":"قواعد أتمتة المرتجعات","sidebarTitle":"أتمتة المرتجعات","href":"/ar/modules/return-management/return-automation"}]},{"group":"إدارة المراكز","pages":[{"title":"إدارة المراكز","sidebarTitle":"نظرة عامة","href":"/ar/modules/hubs-management/overview"},{"title":"إضافة المستودعات والفروع وإعدادها","sidebarTitle":"إعداد المراكز","href":"/ar/modules/hubs-management/hubs-management"}]},{"group":"إشعارات العملاء","pages":[{"title":"إشعارات العملاء","sidebarTitle":"نظرة عامة","href":"/ar/modules/customer-notification/overview"},{"title":"صفحات التتبع والتأكيد بهوية علامتك التجارية","sidebarTitle":"الصفحات بعلامتك التجارية","href":"/ar/modules/customer-notification/branded-pages"},{"title":"إشعارات الرسائل النصية (SMS)","sidebarTitle":"الرسائل النصية (SMS)","href":"/ar/modules/customer-notification/sms"},{"title":"إشعارات البريد الإلكتروني","sidebarTitle":"البريد الإلكتروني","href":"/ar/modules/customer-notification/email"},{"title":"إشعارات عبر الواتساب","sidebarTitle":"واتساب","href":"/ar/modules/customer-notification/whatsapp"},{"title":"مسارات عمل مخصّصة للإشعارات","sidebarTitle":"مسارات العمل المخصّصة","href":"/ar/modules/customer-notification/custom-workflows"}]},{"group":"إدارة المستودعات","pages":[{"title":"إدارة المستودعات","sidebarTitle":"نظرة عامة","href":"/ar/modules/warehouse-management/overview"},{"title":"تطبيق OTO PACK لموظفي المستودع","sidebarTitle":"تطبيق OTO PACK","href":"/ar/modules/warehouse-management/ops"},{"title":"طرق تجهيز الطلبات والموجات في المستودع","sidebarTitle":"طرق تجهيز الطلبات","href":"/ar/modules/warehouse-management/picking-methods"},{"title":"التعبئة والإرسال","href":"/ar/modules/warehouse-management/packing-dispatch"},{"title":"استلام الواردات والتخزين","href":"/ar/modules/warehouse-management/inbound-putaway"}]},{"group":"إدارة المخزون","pages":[{"title":"إدارة المخزون","sidebarTitle":"نظرة عامة","href":"/ar/modules/inventory-management/overview"},{"title":"تتبع المخزون","href":"/ar/modules/inventory-management/inventory-tracking"},{"title":"المخزون الوارد","href":"/ar/modules/inventory-management/inbound-inventory"},{"title":"مزامنة المخزون مع قنوات البيع","sidebarTitle":"مزامنة المخزون","href":"/ar/modules/inventory-management/inventory-sync"},{"title":"إعداد كتالوج المنتجات ووحدات SKU","sidebarTitle":"إعداد المنتجات","href":"/ar/modules/inventory-management/product-configuration"},{"title":"جرد المخزون في تطبيق OTO PACK","sidebarTitle":"جرد المخزون","href":"/ar/modules/inventory-management/inventory-count"}]},{"group":"OTO FLEX","pages":[{"title":"OTO FLEX: التوصيل بسائقيك الخاصين","sidebarTitle":"نظرة عامة","href":"/ar/modules/oto-flex/overview"},{"title":"إدارة السائقين والأسطول","sidebarTitle":"إدارة الأسطول","href":"/ar/modules/oto-flex/fleet-management"},{"title":"تخطيط التوصيل وإسناد السائقين","sidebarTitle":"التخطيط","href":"/ar/modules/oto-flex/planning"},{"title":"استلام الطلب بواسطة السائق في OTO FLEX","sidebarTitle":"استلام الطلب","href":"/ar/modules/oto-flex/pickup"},{"title":"توصيل الميل الأخير في OTO FLEX","sidebarTitle":"التوصيل","href":"/ar/modules/oto-flex/delivery"}]}]},{"group":"عمليات الربط","pages":[{"title":"نظرة عامة على عمليات الربط","sidebarTitle":"نظرة عامة","href":"/ar/integrations/overview"},{"title":"عمليات ربط قنوات البيع","sidebarTitle":"قنوات البيع","href":"/ar/integrations/sales-channels"},{"title":"عمليات ربط الأسواق الإلكترونية","sidebarTitle":"الأسواق الإلكترونية","href":"/ar/integrations/marketplaces"},{"title":"الربط مع أنظمة ERP","sidebarTitle":"أنظمة ERP","href":"/ar/integrations/erp-systems"},{"title":"الربط مع أنظمة POS","sidebarTitle":"أنظمة POS","href":"/ar/integrations/pos-systems"},{"title":"الربط مع شركات الشحن","sidebarTitle":"شركات الشحن","href":"/ar/integrations/carriers"},{"title":"مزودو الرسائل النصية والبريد الإلكتروني وواتساب","sidebarTitle":"مزودو خدمات المراسلة","href":"/ar/integrations/messaging-providers"},{"title":"خدمات الويب هوك للتحديثات الفورية","sidebarTitle":"خدمات الويب هوك","href":"/ar/integrations/webhooks"}]},{"group":"المطورون","pages":[{"title":"نظرة عامة على OTO API","sidebarTitle":"نظرة عامة","href":"/ar/developers/overview"},{"title":"التوثيق في واجهة API","sidebarTitle":"التوثيق","href":"/ar/developers/authentication"},{"title":"مرجع REST API","description":"جميع نقاط النهاية في OTO REST API وعددها 76 في 20 مجموعة، مع وظيفة كل منها وأدنى باقة تتضمنها. المخططات الكاملة على apis.tryoto.com.","href":"/ar/developers/rest-api-reference"},{"title":"أحداث Webhook وبياناتها","sidebarTitle":"أحداث Webhook","href":"/ar/developers/webhook-events"},{"title":"مجموعة Postman لواجهة OTO API","sidebarTitle":"مجموعة Postman","description":"استدعِ OTO API من Postman على بيئة التجربة قبل أن تكتب أي شيفرة، مع تجربة أولى في عشر دقائق من رمز الوصول إلى أول طلب.","href":"/ar/developers/postman-collection"},{"title":"أخطاء واجهة API وحدود الاستخدام","sidebarTitle":"الأخطاء وحدود الاستخدام","href":"/ar/developers/errors-and-rate-limits"}]},{"group":"المنصة","pages":[{"title":"الأمان والامتثال","href":"/ar/platform/security-and-compliance"},{"title":"المستخدمون والأدوار والصلاحيات","href":"/ar/platform/users-roles-and-permissions"},{"title":"التوطين: اللغات والعملة والمناطق الزمنية","sidebarTitle":"التوطين","href":"/ar/platform/localization"},{"title":"التعاون والإشعارات","href":"/ar/platform/collaboration-and-notifications"},{"title":"إخطارات المنصة","sidebarTitle":"الإخطارات","href":"/ar/platform/announcements"}]},{"group":"الباقات والأسعار","pages":[{"title":"الباقات والأسعار والإضافات","sidebarTitle":"الباقات ومكوّناتها","href":"/ar/pricing/plans-and-packaging"}]}]},{"language":"tr","navbar":{"links":[{"href":"https://tryoto.com","label":"Anasayfa"},{"href":"https://support.tryoto.com/tr","label":"Yardım Merkezi"}],"primary":{"type":"button","label":"Gösterge Paneli","href":"https://app.tryoto.com"}},"pages":[{"title":"tr","href":"/tr/developers/webhook-events"}]}]},"title":"أحداث Webhook وبياناتها - OTO Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}