Creates a checkout event — a virtual representation of a potential
order — and returns its Estimated Delivery Date. One checkout event
corresponds to at most one resulting Shipment; checkout events are not
visible in the Portal.
Minimum input:from_address and to_address, each with
country_code (preferred) or country. The more you provide (postal
codes, carrier references, shipping service, merchant), the better the
prediction.
One EDD per carrier: the response’s data array carries one entry
— its own checkout_id and checkout_edd — per carrier_reference
value sent (or a single entry with carrier_reference: null when none
was sent). When the order confirms, send the selected carrier’scheckout_id back in additional_info.checkout_id on Create Shipment
— linking works at creation only, and both links are permanent and
one-to-one.
How the EDD is calculated: the calculation starts from
order_target_time (or the request time), applies your account’s
warehouse processing rules where configured (operating hours, cut-off,
carrier pick-up, peak buffers), picks the model matching your
configuration (carrier, corridor, day of week, handling instructions),
turns the model’s daily delivery probabilities into a date or range via
configured confidence thresholds, and adds the days as business days
for the destination country (weekends and public holidays skipped by
default).
Validation is all-or-nothing: if any part of the request is
invalid, no checkout event is created and no checkout_id is issued.
Origin (from_address) or destination (to_address) of the potential shipment. country_code (preferred) or country is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.
Origin (from_address) or destination (to_address) of the potential shipment. country_code (preferred) or country is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.
Carrier references from Settings > Carriers — a non-empty list even for a single value (an empty list is rejected). One EDD entry is returned per value, so you can compare carriers in one call. An unconfigured value rejects the whole request. Used only for the prediction — send carrier_reference again at Create Shipment.
The carrier's service level (e.g. standard, express) — a list even for a single value. Only one of carrier_reference and shipping_service may contain more than one value in the same request.
The order time to calculate the EDD from; defaults to the time the request is received. Send a local wall-clock time (YYYY-MM-DDThh:mm:ss, no offset) and name the zone in order_target_timezone. With an offset or Z, the value is first normalized to UTC and that wall-clock time is then interpreted in order_target_timezone.
Total value of the items as <number> <CURRENCY> with a valid ISO 4217 code, e.g. 35.50 SGD. Values without the space, or with extra characters, are rejected.
Extra model inputs agreed with the Perform.AI data team during your POC. Three keys are also read by the platform when selecting your model and fulfillment rules — handling_instructions (parcel type/handling class, e.g. Paket; required for some models), warehouse_ref (your warehouse identifier, selects processing-time rules), and carrier_service (carrier service code for fulfillment rules). A key must not appear both here and at the top level of the request — that is rejected.
Response
Prediction generated — one data entry per requested carrier reference, each with its own checkout_id.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Perform.AI","description":"Perform.AI developer documentation. REST APIs for tracking, booking, returns, and delivery predictions. Real-time webhooks and an MCP server for AI assistants.","colors":{"primary":"#6FA900","light":"#93D900","dark":"#456708"},"logo":{"light":"https://mintcdn.com/perform-ai/bpZlF368Aqz3so-O/logo/light.svg?fit=max\u0026auto=format\u0026n=bpZlF368Aqz3so-O\u0026q=85\u0026s=ed60084d2cb4ac41f82c70bcd49f9015","dark":"https://mintcdn.com/perform-ai/bpZlF368Aqz3so-O/logo/dark.svg?fit=max\u0026auto=format\u0026n=bpZlF368Aqz3so-O\u0026q=85\u0026s=97bb86fa7fa8efe9148004c74a873b53"},"favicon":"https://mintcdn.com/perform-ai/h_wboKDQm_MSwzQD/favicon.svg?fit=max\u0026auto=format\u0026n=h_wboKDQm_MSwzQD\u0026q=85\u0026s=aed8d7deabf27a15f3935f4ccb8f29e4","navbar":{"links":[{"href":"https://www.perform.ai","label":"Website"},{"href":"https://www.perform.ai/contact","label":"Contact Us"}],"primary":{"type":"button","label":"Login","href":"https://www.perform.ai/login"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/parcelperform"}},"seo":{"metatags":{"google-site-verification":"qG96ee4d5MxPcm5ZdG8FzeZe-O1tLDxnuP0lVqGhShs"},"indexing":"navigable"},"integrations":{"gtm":{"tagId":"GTM-K62H8N3R"}},"banner":{"content":"**Parcel Perform is now Perform.AI.** [Read more](https://www.perform.ai/parcel-perform-is-now-perform-ai)","dismissible":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"perform-ai","hasAudioNarration":false,"actualSubdomain":"perform-ai","customDomains":["developers.perform.ai"],"gitSource":{"type":"github","owner":"perform-ai-techhub","repo":"dev-portal-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aebee2a5c6aac3c074f10c8","collectionId":"03513452-2fa9-40f7-b12f-de637cca04f6","liveDeploymentHistoryId":"6aebee2a5c6aac3c074f10c8","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed96617c6274a48b5b1808","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Product Documentation","count":60},{"language":"default","tag":"Developers","count":32},{"language":"default","tag":"API Reference","count":21},{"language":"default","tag":"Returns","count":14},{"language":"default","tag":"Shipments","count":11},{"language":"default","tag":"AI Commerce Visibility","count":10},{"language":"default","tag":"Checkout","count":9},{"language":"default","tag":"Logistics","count":8},{"language":"default","tag":"Integrations","count":7},{"language":"default","tag":"Post-Purchase","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"html:not(.dark) #navbar .bg-background-light{background-color:#000000}html:not(.dark) #navbar .border-gray-100{border-color:rgb(255 255 255 / 0.12)}html:not(.dark) #navbar img.nav-logo.block{display:none}html:not(.dark) #navbar img.nav-logo.hidden{display:block}html:not(.dark) #navbar a.link{color:rgb(163 163 163);background-color:transparent}html:not(.dark) #navbar a.link:hover{color:rgb(245 245 245);background-color:rgb(255 255 255 / 0.06)}html:not(.dark) #navbar a.link[aria-current=\"location\"]{color:rgb(250 250 250);background-color:rgb(255 255 255 / 0.08)}html:not(.dark) #navbar .text-gray-950,html:not(.dark) #navbar .text-gray-900,html:not(.dark) #navbar .text-gray-800,html:not(.dark) #navbar .text-gray-700,html:not(.dark) #navbar .text-gray-600,html:not(.dark) #navbar .text-gray-500{color:rgb(212 212 212)}html:not(.dark) #navbar button.group\\/search{color:rgb(255 255 255 / 0.55);--tw-ring-color: rgb(140 140 140 / 0.45)}html:not(.dark) #navbar button.group\\/search:hover{--tw-ring-color: rgb(180 180 180 / 0.5)}html:not(.dark) #navbar button.group\\/search .bg-white{background-color:rgb(30 30 30);color:rgb(170 170 170)}html:not(.dark) #navbar a[class*=\"border-gray-950\"]{color:rgb(212 212 212);border-color:rgb(255 255 255 / 0.18)}html:not(.dark) #navbar a[class*=\"border-gray-950\"]:hover{color:#ffffff;background-color:rgb(255 255 255 / 0.05)}html:not(.dark) #navbar a.bg-primary{background-color:#93d900}html:not(.dark) #navbar a.bg-primary .text-white{color:#0a0a0a}#banner{background-color:#93d900}#banner,#banner p,#banner span{color:#0a0a0a}#banner a{color:#0a0a0a;font-weight:600;text-decoration:underline}#banner button,#banner svg{color:#0a0a0a}"}],"page":{"pagePath":"api-reference/checkout/predict-checkout-edd","slug":"/api-reference/checkout/predict-checkout-edd","pageMetadata":{"title":"Predict Checkout EDD","openapi":"specs/checkout-v1.yaml POST /v1/edd/checkout/","description":"Creates a **checkout event** — a virtual representation of a potential\norder — and returns its Estimated Delivery Date. One checkout event\ncorresponds to at most one resulting Shipment; checkout events are not\nvisible in the Portal.\n\n**Minimum input:** `from_address` and `to_address`, each with\n`country_code` (preferred) or `country`. The more you provide (postal\ncodes, carrier references, shipping service, merchant), the better the\nprediction.\n\n**One EDD per carrier:** the response's `data` array carries one entry\n— its own `checkout_id` and `checkout_edd` — per `carrier_reference`\nvalue sent (or a single entry with `carrier_reference: null` when none\nwas sent). When the order confirms, send the **selected carrier's**\n`checkout_id` back in `additional_info.checkout_id` on Create Shipment\n— linking works at creation only, and both links are permanent and\none-to-one.\n\n**How the EDD is calculated:** the calculation starts from\n`order_target_time` (or the request time), applies your account's\nwarehouse processing rules where configured (operating hours, cut-off,\ncarrier pick-up, peak buffers), picks the model matching your\nconfiguration (carrier, corridor, day of week, handling instructions),\nturns the model's daily delivery probabilities into a date or range via\nconfigured confidence thresholds, and adds the days as business days\nfor the destination country (weekends and public holidays skipped by\ndefault).\n\n**Validation is all-or-nothing:** if any part of the request is\ninvalid, no checkout event is created and no `checkout_id` is issued.","href":"/api-reference/checkout/predict-checkout-edd"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a \", _jsx(_components.strong, {\n children: \"checkout event\"\n }), \" — a virtual representation of a potential\\norder — and returns its Estimated Delivery Date. One checkout event\\ncorresponds to at most one resulting Shipment; checkout events are not\\nvisible in the Portal.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Minimum input:\"\n }), \" \", _jsx(_components.code, {\n children: \"from_address\"\n }), \" and \", _jsx(_components.code, {\n children: \"to_address\"\n }), \", each with\\n\", _jsx(_components.code, {\n children: \"country_code\"\n }), \" (preferred) or \", _jsx(_components.code, {\n children: \"country\"\n }), \". The more you provide (postal\\ncodes, carrier references, shipping service, merchant), the better the\\nprediction.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"One EDD per carrier:\"\n }), \" the response’s \", _jsx(_components.code, {\n children: \"data\"\n }), \" array carries one entry\\n— its own \", _jsx(_components.code, {\n children: \"checkout_id\"\n }), \" and \", _jsx(_components.code, {\n children: \"checkout_edd\"\n }), \" — per \", _jsx(_components.code, {\n children: \"carrier_reference\"\n }), \"\\nvalue sent (or a single entry with \", _jsx(_components.code, {\n children: \"carrier_reference: null\"\n }), \" when none\\nwas sent). When the order confirms, send the \", _jsx(_components.strong, {\n children: \"selected carrier’s\"\n }), \"\\n\", _jsx(_components.code, {\n children: \"checkout_id\"\n }), \" back in \", _jsx(_components.code, {\n children: \"additional_info.checkout_id\"\n }), \" on Create Shipment\\n— linking works at creation only, and both links are permanent and\\none-to-one.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"How the EDD is calculated:\"\n }), \" the calculation starts from\\n\", _jsx(_components.code, {\n children: \"order_target_time\"\n }), \" (or the request time), applies your account’s\\nwarehouse processing rules where configured (operating hours, cut-off,\\ncarrier pick-up, peak buffers), picks the model matching your\\nconfiguration (carrier, corridor, day of week, handling instructions),\\nturns the model’s daily delivery probabilities into a date or range via\\nconfigured confidence thresholds, and adds the days as business days\\nfor the destination country (weekends and public holidays skipped by\\ndefault).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Validation is all-or-nothing:\"\n }), \" if any part of the request is\\ninvalid, no checkout event is created and no \", _jsx(_components.code, {\n children: \"checkout_id\"\n }), \" is issued.\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Predict Checkout EDD","openapi":"specs/checkout-v1.yaml POST /v1/edd/checkout/","description":"Creates a **checkout event** — a virtual representation of a potential\norder — and returns its Estimated Delivery Date. One checkout event\ncorresponds to at most one resulting Shipment; checkout events are not\nvisible in the Portal.\n\n**Minimum input:** `from_address` and `to_address`, each with\n`country_code` (preferred) or `country`. The more you provide (postal\ncodes, carrier references, shipping service, merchant), the better the\nprediction.\n\n**One EDD per carrier:** the response's `data` array carries one entry\n— its own `checkout_id` and `checkout_edd` — per `carrier_reference`\nvalue sent (or a single entry with `carrier_reference: null` when none\nwas sent). When the order confirms, send the **selected carrier's**\n`checkout_id` back in `additional_info.checkout_id` on Create Shipment\n— linking works at creation only, and both links are permanent and\none-to-one.\n\n**How the EDD is calculated:** the calculation starts from\n`order_target_time` (or the request time), applies your account's\nwarehouse processing rules where configured (operating hours, cut-off,\ncarrier pick-up, peak buffers), picks the model matching your\nconfiguration (carrier, corridor, day of week, handling instructions),\nturns the model's daily delivery probabilities into a date or range via\nconfigured confidence thresholds, and adds the days as business days\nfor the destination country (weekends and public holidays skipped by\ndefault).\n\n**Validation is all-or-nothing:** if any part of the request is\ninvalid, no checkout event is created and no `checkout_id` is issued.","href":"/api-reference/checkout/predict-checkout-edd"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Checkout"],"summary":"Predict Checkout EDD","operationId":"post-v1-edd-checkout","description":"Creates a **checkout event** — a virtual representation of a potential\norder — and returns its Estimated Delivery Date. One checkout event\ncorresponds to at most one resulting Shipment; checkout events are not\nvisible in the Portal.\n\n**Minimum input:** `from_address` and `to_address`, each with\n`country_code` (preferred) or `country`. The more you provide (postal\ncodes, carrier references, shipping service, merchant), the better the\nprediction.\n\n**One EDD per carrier:** the response's `data` array carries one entry\n— its own `checkout_id` and `checkout_edd` — per `carrier_reference`\nvalue sent (or a single entry with `carrier_reference: null` when none\nwas sent). When the order confirms, send the **selected carrier's**\n`checkout_id` back in `additional_info.checkout_id` on Create Shipment\n— linking works at creation only, and both links are permanent and\none-to-one.\n\n**How the EDD is calculated:** the calculation starts from\n`order_target_time` (or the request time), applies your account's\nwarehouse processing rules where configured (operating hours, cut-off,\ncarrier pick-up, peak buffers), picks the model matching your\nconfiguration (carrier, corridor, day of week, handling instructions),\nturns the model's daily delivery probabilities into a date or range via\nconfigured confidence thresholds, and adds the days as business days\nfor the destination country (weekends and public holidays skipped by\ndefault).\n\n**Validation is all-or-nothing:** if any part of the request is\ninvalid, no checkout event is created and no `checkout_id` is issued.","requestBody":"d5069155-cdd6-4d1c-98db-947d10f82350","responses":{"200":"61fde957-ffda-44d3-9b71-da5afae7c47c","400":"30dadefa-f542-4600-be23-2c7ad691df6d","403":"f1136606-d13c-4f62-ba6b-80a9f056fd11","429":"5b07a0bf-99bc-4f73-bf24-279877f99507","500":"86d6e0f0-2680-4a2c-8614-1cd437a01b05"},"method":"post","type":"path","servers":["63dd6d25-0f50-4641-a502-87aa5b3799a2"],"security":["d0467d81-90ce-49d4-bb24-4273630c4f82"],"path":"/v1/edd/checkout/","baseUrlOptions":["https://api.perform.ai"],"title":"Predict Checkout EDD","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["from_address","to_address"],"properties":{"from_address":{"type":"object","description":"Origin (`from_address`) or destination (`to_address`) of the potential shipment. `country_code` (preferred) or `country` is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.","properties":{"country_code":{"type":"string","minLength":2,"maxLength":2,"description":"ISO 3166-1 alpha-2 — preferred. When both are sent, `country_code` wins.","uniqueKey":"from_address.country_code","typeLabel":"string"},"country":{"type":"string","maxLength":75,"description":"Country name — must match the ISO 3166-1 English short name exactly (`United States`, `Czechia`, `Viet Nam`); variants like `United States of America` or `Vietnam` are rejected. Prefer `country_code`.","uniqueKey":"from_address.country","typeLabel":"string"},"postal_code":{"type":"string","maxLength":25,"description":"Strongly recommended — the biggest accuracy gain over country alone.","uniqueKey":"from_address.postal_code","typeLabel":"string"},"city":{"type":"string","maxLength":75,"description":"Strongly recommended.","uniqueKey":"from_address.city","typeLabel":"string"},"state_or_province":{"type":"string","maxLength":75,"uniqueKey":"from_address.state_or_province","typeLabel":"string"},"region":{"type":"string","maxLength":75,"uniqueKey":"from_address.region","typeLabel":"string"},"line1":{"type":"string","maxLength":150,"uniqueKey":"from_address.line1","typeLabel":"string"},"line2":{"type":"string","maxLength":150,"uniqueKey":"from_address.line2","typeLabel":"string"},"line3":{"type":"string","maxLength":150,"uniqueKey":"from_address.line3","typeLabel":"string"},"address_name":{"type":"string","maxLength":50,"uniqueKey":"from_address.address_name","typeLabel":"string"},"location_type":{"type":"string","maxLength":50,"uniqueKey":"from_address.location_type","typeLabel":"string"},"entity_reference":{"type":"string","maxLength":50,"uniqueKey":"from_address.entity_reference","typeLabel":"string"},"salutation":{"type":"string","maxLength":50,"uniqueKey":"from_address.salutation","typeLabel":"string"},"first_name":{"type":"string","maxLength":150,"uniqueKey":"from_address.first_name","typeLabel":"string"},"last_name":{"type":"string","maxLength":150,"uniqueKey":"from_address.last_name","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":100,"description":"Not used for notifications.","uniqueKey":"from_address.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","maxLength":50,"description":"Not used for notifications. Stored as sent (no normalization); recommended format `+{country code}{number}`.","uniqueKey":"from_address.phone","typeLabel":"string"},"company":{"type":"string","maxLength":150,"uniqueKey":"from_address.company","typeLabel":"string"},"tax_id":{"type":"string","maxLength":100,"uniqueKey":"from_address.tax_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"from_address","typeLabel":"object"},"to_address":{"type":"object","description":"Origin (`from_address`) or destination (`to_address`) of the potential shipment. `country_code` (preferred) or `country` is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.","properties":{"country_code":{"type":"string","minLength":2,"maxLength":2,"description":"ISO 3166-1 alpha-2 — preferred. When both are sent, `country_code` wins.","uniqueKey":"to_address.country_code","typeLabel":"string"},"country":{"type":"string","maxLength":75,"description":"Country name — must match the ISO 3166-1 English short name exactly (`United States`, `Czechia`, `Viet Nam`); variants like `United States of America` or `Vietnam` are rejected. Prefer `country_code`.","uniqueKey":"to_address.country","typeLabel":"string"},"postal_code":{"type":"string","maxLength":25,"description":"Strongly recommended — the biggest accuracy gain over country alone.","uniqueKey":"to_address.postal_code","typeLabel":"string"},"city":{"type":"string","maxLength":75,"description":"Strongly recommended.","uniqueKey":"to_address.city","typeLabel":"string"},"state_or_province":{"type":"string","maxLength":75,"uniqueKey":"to_address.state_or_province","typeLabel":"string"},"region":{"type":"string","maxLength":75,"uniqueKey":"to_address.region","typeLabel":"string"},"line1":{"type":"string","maxLength":150,"uniqueKey":"to_address.line1","typeLabel":"string"},"line2":{"type":"string","maxLength":150,"uniqueKey":"to_address.line2","typeLabel":"string"},"line3":{"type":"string","maxLength":150,"uniqueKey":"to_address.line3","typeLabel":"string"},"address_name":{"type":"string","maxLength":50,"uniqueKey":"to_address.address_name","typeLabel":"string"},"location_type":{"type":"string","maxLength":50,"uniqueKey":"to_address.location_type","typeLabel":"string"},"entity_reference":{"type":"string","maxLength":50,"uniqueKey":"to_address.entity_reference","typeLabel":"string"},"salutation":{"type":"string","maxLength":50,"uniqueKey":"to_address.salutation","typeLabel":"string"},"first_name":{"type":"string","maxLength":150,"uniqueKey":"to_address.first_name","typeLabel":"string"},"last_name":{"type":"string","maxLength":150,"uniqueKey":"to_address.last_name","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":100,"description":"Not used for notifications.","uniqueKey":"to_address.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","maxLength":50,"description":"Not used for notifications. Stored as sent (no normalization); recommended format `+{country code}{number}`.","uniqueKey":"to_address.phone","typeLabel":"string"},"company":{"type":"string","maxLength":150,"uniqueKey":"to_address.company","typeLabel":"string"},"tax_id":{"type":"string","maxLength":100,"uniqueKey":"to_address.tax_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"to_address","typeLabel":"object"},"carrier_reference":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50,"uniqueKey":"carrier_reference.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Carrier references from **Settings > Carriers** — a non-empty list even for a single value (an empty list is rejected). One EDD entry is returned per value, so you can compare carriers in one call. An unconfigured value rejects the whole request. Used only for the prediction — send `carrier_reference` again at Create Shipment.","uniqueKey":"carrier_reference","typeLabel":"string[]"},"shipping_service":{"type":"array","items":{"type":"string","maxLength":50,"uniqueKey":"shipping_service.items.[INDEX]","typeLabel":"string"},"description":"The carrier's service level (e.g. `standard`, `express`) — a list even for a single value. Only one of `carrier_reference` and `shipping_service` may contain more than one value in the same request.","uniqueKey":"shipping_service","typeLabel":"string[]"},"merchant_id":{"type":"string","maxLength":50,"description":"Identifier of the merchant/supplier on your platform. Strongly recommended for marketplaces — fulfillment speed varies by merchant.","uniqueKey":"merchant_id","typeLabel":"string"},"order_target_time":{"type":"string","description":"The order time to calculate the EDD from; defaults to the time the request is received. Send a local wall-clock time (`YYYY-MM-DDThh:mm:ss`, no offset) and name the zone in `order_target_timezone`. With an offset or `Z`, the value is first normalized to UTC and that wall-clock time is then interpreted in `order_target_timezone`.","uniqueKey":"order_target_time","typeLabel":"string"},"order_target_timezone":{"type":"string","maxLength":50,"description":"IANA timezone of `order_target_time`. Defaults to `UTC`; invalid IDs are rejected.","uniqueKey":"order_target_timezone","typeLabel":"string"},"order_source_type":{"type":"string","maxLength":100,"uniqueKey":"order_source_type","typeLabel":"string"},"order_source_name":{"type":"string","maxLength":100,"uniqueKey":"order_source_name","typeLabel":"string"},"shipment_value":{"type":"string","maxLength":50,"description":"Total value of the items as `\u003cnumber> \u003cCURRENCY>` with a valid ISO 4217 code, e.g. `35.50 SGD`. Values without the space, or with extra characters, are rejected.","uniqueKey":"shipment_value","typeLabel":"string"},"item_count":{"type":"integer","uniqueKey":"item_count","typeLabel":"integer"},"expected_delivery_from":{"type":"string","description":"Start of a delivery window you already promised, if any. Use this field alone for a single expected date. ISO 8601; read as UTC without an offset.","uniqueKey":"expected_delivery_from","typeLabel":"string"},"expected_delivery_to":{"type":"string","description":"Requires `expected_delivery_from`. ISO 8601.","uniqueKey":"expected_delivery_to","typeLabel":"string"},"line_items":{"type":"array","items":{"type":"object","required":["product_name"],"description":"One product at the checkout stage. The checkout service does not derive missing weights or totals — send the values you want the model to see.","properties":{"product_name":{"type":"string","maxLength":100,"description":"Customer-facing product name. Required in each line item.","isRequired":true,"uniqueKey":"line_items.items.[INDEX].product_name","typeLabel":"string"},"product_id":{"type":"string","maxLength":50,"uniqueKey":"line_items.items.[INDEX].product_id","typeLabel":"string"},"product_reference":{"type":"string","maxLength":50,"uniqueKey":"line_items.items.[INDEX].product_reference","typeLabel":"string"},"product_category":{"type":"string","maxLength":100,"uniqueKey":"line_items.items.[INDEX].product_category","typeLabel":"string"},"product_description":{"type":"string","maxLength":500,"uniqueKey":"line_items.items.[INDEX].product_description","typeLabel":"string"},"product_origin_country_code":{"type":"string","minLength":2,"maxLength":2,"uniqueKey":"line_items.items.[INDEX].product_origin_country_code","typeLabel":"string"},"hs_code":{"type":"string","maxLength":20,"uniqueKey":"line_items.items.[INDEX].hs_code","typeLabel":"string"},"customs_description":{"type":"string","maxLength":500,"uniqueKey":"line_items.items.[INDEX].customs_description","typeLabel":"string"},"quantity":{"type":"integer","uniqueKey":"line_items.items.[INDEX].quantity","typeLabel":"integer"},"product_url":{"type":"string","format":"uri","uniqueKey":"line_items.items.[INDEX].product_url","typeLabel":"string\u003curi>"},"product_weight":{"type":"number","description":"Weight of one unit. Requires `product_weight_unit`.","uniqueKey":"line_items.items.[INDEX].product_weight","typeLabel":"number"},"product_weight_unit":{"type":"string","maxLength":5,"description":"Required when `product_weight` is sent.","uniqueKey":"line_items.items.[INDEX].product_weight_unit","typeLabel":"string"},"line_item_weight":{"type":"number","description":"Total weight of this line. Requires `line_item_weight_unit`.","uniqueKey":"line_items.items.[INDEX].line_item_weight","typeLabel":"number"},"line_item_weight_unit":{"type":"string","maxLength":5,"description":"Required when `line_item_weight` is sent.","uniqueKey":"line_items.items.[INDEX].line_item_weight_unit","typeLabel":"string"},"currency_code":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217. Required when any cost field is sent; use the same currency across all line items.","uniqueKey":"line_items.items.[INDEX].currency_code","typeLabel":"string"},"product_cost":{"type":"number","uniqueKey":"line_items.items.[INDEX].product_cost","typeLabel":"number"},"subtotal_cost":{"type":"number","uniqueKey":"line_items.items.[INDEX].subtotal_cost","typeLabel":"number"},"discount_amount":{"type":"number","uniqueKey":"line_items.items.[INDEX].discount_amount","typeLabel":"number"},"tax_amount":{"type":"number","uniqueKey":"line_items.items.[INDEX].tax_amount","typeLabel":"number"},"misc_cost":{"type":"number","uniqueKey":"line_items.items.[INDEX].misc_cost","typeLabel":"number"},"total_price":{"type":"number","uniqueKey":"line_items.items.[INDEX].total_price","typeLabel":"number"}},"uniqueKey":"line_items.items.[INDEX]","typeLabel":"object"},"description":"Items at the checkout stage. NOT carried over to a created Shipment.","uniqueKey":"line_items","typeLabel":"object[]"},"prediction_payload":{"type":"object","description":"Extra model inputs agreed with the Perform.AI data team during your POC. Three keys are also read by the platform when selecting your model and fulfillment rules — `handling_instructions` (parcel type/handling class, e.g. `Paket`; required for some models), `warehouse_ref` (your warehouse identifier, selects processing-time rules), and `carrier_service` (carrier service code for fulfillment rules). A key must not appear both here and at the top level of the request — that is rejected.","uniqueKey":"prediction_payload","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"carrier_reference":["dhl-ecommerce-de"],"shipping_service":["standard"],"merchant_id":"501","order_target_time":"2026-09-22T10:30:00","order_target_timezone":"Asia/Singapore","to_address":{"country_code":"SG","postal_code":"049145","city":"Singapore","first_name":"Jane","last_name":"Doe"},"from_address":{"country_code":"DE","postal_code":"10115","city":"Berlin","company":"Example Store Warehouse"},"shipment_value":"135.50 SGD","item_count":2,"line_items":[{"product_name":"Classic Running Shoes","product_id":"SKU-RUN-01","quantity":1,"product_weight":230,"product_weight_unit":"g","currency_code":"SGD","product_cost":99.99}],"prediction_payload":{"handling_instructions":"Paket","warehouse_ref":"SG-01"}},"examples":{"Example":{"title":"Example","value":{"carrier_reference":["dhl-ecommerce-de"],"shipping_service":["standard"],"merchant_id":"501","order_target_time":"2026-09-22T10:30:00","order_target_timezone":"Asia/Singapore","to_address":{"country_code":"SG","postal_code":"049145","city":"Singapore","first_name":"Jane","last_name":"Doe"},"from_address":{"country_code":"DE","postal_code":"10115","city":"Berlin","company":"Example Store Warehouse"},"shipment_value":"135.50 SGD","item_count":2,"line_items":[{"product_name":"Classic Running Shoes","product_id":"SKU-RUN-01","quantity":1,"product_weight":230,"product_weight_unit":"g","currency_code":"SGD","product_cost":99.99}],"prediction_payload":{"handling_instructions":"Paket","warehouse_ref":"SG-01"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"61fde957-ffda-44d3-9b71-da5afae7c47c":{"description":"Prediction generated — one `data` entry per requested carrier reference, each with its own `checkout_id`.","content":{"application/json":{"schema":{"type":"object","properties":{"api_response":{"type":"integer","description":"`200` on success. Note: this service returns `api_response` as a number.","uniqueKey":"api_response","typeLabel":"integer"},"request_id":{"oneOf":[{"type":"string","description":"Correlation ID (echoed from an `X-Request-Id` request header when present). Quote it when contacting support.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Correlation ID (echoed from an `X-Request-Id` request header when present). Quote it when contacting support.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"data":{"type":"array","items":{"type":"object","properties":{"carrier_reference":{"oneOf":[{"type":"string","description":"The carrier reference this entry was calculated for; `null` when none was sent.","uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"The carrier reference this entry was calculated for; `null` when none was sent.","uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].carrier_reference","typeLabel":"string | null"},"checkout_id":{"type":"string","format":"uuid","description":"This entry's checkout event identifier. Send the SELECTED carrier's `checkout_id` back in `additional_info.checkout_id` on Create Shipment.","uniqueKey":"data.items.[INDEX].checkout_id","typeLabel":"string\u003cuuid>"},"checkout_edd":{"type":"object","properties":{"start":{"type":"string","description":"Start of the estimated window, UTC (`…Z`).","uniqueKey":"data.items.[INDEX].checkout_edd.start","typeLabel":"string"},"end":{"type":"string","description":"End of the window, UTC. Equal to `start` for a single-date EDD.","uniqueKey":"data.items.[INDEX].checkout_edd.end","typeLabel":"string"},"start_timezone":{"type":"string","description":"Currently always `UTC`.","uniqueKey":"data.items.[INDEX].checkout_edd.start_timezone","typeLabel":"string"},"end_timezone":{"type":"string","description":"Currently always `UTC`.","uniqueKey":"data.items.[INDEX].checkout_edd.end_timezone","typeLabel":"string"},"type":{"type":"string","enum":["datetime_range","datetime_single"],"description":"`datetime_range` when `end` is later than `start`, otherwise `datetime_single`. Convert to the shopper's timezone before displaying; most integrations show the date part only.","uniqueKey":"data.items.[INDEX].checkout_edd.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].checkout_edd","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"api_response":200,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"carrier_reference":"dhl-ecommerce-de","checkout_id":"b9f5b625-d08b-460d-b3a3-2d3e83fc0f00","checkout_edd":{"start":"2026-09-25T02:30:00Z","end":"2026-09-26T02:30:00Z","type":"datetime_range","start_timezone":"UTC","end_timezone":"UTC"}}]},"examples":{"Example":{"title":"Example","value":{"api_response":200,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"carrier_reference":"dhl-ecommerce-de","checkout_id":"b9f5b625-d08b-460d-b3a3-2d3e83fc0f00","checkout_edd":{"start":"2026-09-25T02:30:00Z","end":"2026-09-26T02:30:00Z","type":"datetime_range","start_timezone":"UTC","end_timezone":"UTC"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"30dadefa-f542-4600-be23-2c7ad691df6d":{"description":"Validation failed — the body failed validation, a\n`carrier_reference` is not configured in your account, or the\naccount is not configured for the EDD service. All-or-nothing: no\ncheckout event is created. `error` carries field-level details (an\nobject) or message strings (an array).","content":{"application/json":{"schema":{"type":"object","description":"This service's error envelope differs from the Public API v5: `api_response` is a number, a `request_id` is included, and errors arrive as a `data` array.","properties":{"api_response":{"type":"integer","uniqueKey":"api_response","typeLabel":"integer"},"request_id":{"oneOf":[{"type":"string","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"data":{"type":"array","items":{"type":"object","properties":{"carrier_reference":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].carrier_reference","typeLabel":"string[] | null"},"msg":{"type":"string","description":"`validation_error`, `not_found_scope_configuration`, `service_unavailable`, or `internal_server_error`.","uniqueKey":"data.items.[INDEX].msg","typeLabel":"string"},"error":{"description":"Field-level details (object of field → messages) or an array of message strings.","uniqueKey":"data.items.[INDEX].error","typeLabel":"any"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"field-validation":{"title":"field-validation","value":{"api_response":4030,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"carrier_reference":["dhl-ecommerce-de"],"msg":"validation_error","error":{"to_address":["This field is required."]}}]}},"unconfigured-carrier":{"title":"unconfigured-carrier","value":{"api_response":4030,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"carrier_reference":["unknowncarrier"],"msg":"validation_error","error":["carrier_reference unknowncarrier specified in request has not been created."]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"f1136606-d13c-4f62-ba6b-80a9f056fd11":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","properties":{"api_response":{"type":"integer","uniqueKey":"api_response","typeLabel":"integer"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"api_response":403,"message":"Key not authorized"},"examples":{"Example":{"title":"Example","value":{"api_response":403,"message":"Key not authorized"}}},"exampleType":"examples"}},"exampleType":"examples"},"5b07a0bf-99bc-4f73-bf24-279877f99507":{"description":"Rate limit exceeded.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"86d6e0f0-2680-4a2c-8614-1cd437a01b05":{"description":"Server-side outcomes, each named in `msg`:\n`not_found_scope_configuration` — the account is configured but no\nmodel or decoding rule matches this request (unsupported corridor,\nunknown handling instruction); `service_unavailable` — the\nprediction or configuration service did not respond, retry with\nbackoff; `internal_server_error` — unexpected error, quote\n`request_id` to support.","content":{"application/json":{"schema":{"type":"object","description":"This service's error envelope differs from the Public API v5: `api_response` is a number, a `request_id` is included, and errors arrive as a `data` array.","properties":{"api_response":{"type":"integer","uniqueKey":"api_response","typeLabel":"integer"},"request_id":{"oneOf":[{"type":"string","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"data":{"type":"array","items":{"type":"object","properties":{"carrier_reference":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"data.items.[INDEX].carrier_reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].carrier_reference","typeLabel":"string[] | null"},"msg":{"type":"string","description":"`validation_error`, `not_found_scope_configuration`, `service_unavailable`, or `internal_server_error`.","uniqueKey":"data.items.[INDEX].msg","typeLabel":"string"},"error":{"description":"Field-level details (object of field → messages) or an array of message strings.","uniqueKey":"data.items.[INDEX].error","typeLabel":"any"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"api_response":500,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"msg":"not_found_scope_configuration","error":"No matched EDD scope configuration for org_id: 1234, scope_type: edd_model"}]},"examples":{"Example":{"title":"Example","value":{"api_response":500,"request_id":"6f1c2c9e-3d1a-4d2e-9d6b-0f1f7e3a5c21","data":[{"msg":"not_found_scope_configuration","error":"No matched EDD scope configuration for org_id: 1234, scope_type: edd_model"}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d0467d81-90ce-49d4-bb24-4273630c4f82":{"BearerAuth":{"type":"http","scheme":"bearer","description":"The same Bearer token as the Public API v5 — generate it with `POST /auth/oauth/token/`.","scopes":[]}}},"servers":{"63dd6d25-0f50-4641-a502-87aa5b3799a2":{"url":"https://api.perform.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"The same Bearer token as the Public API v5 — generate it with `POST /auth/oauth/token/`.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The same Bearer token as the Public API v5 — generate it with `POST /auth/oauth/token/`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"specs/checkout-v1.yaml"},"subdomain":"perform-ai","siteName":"Perform.AI","title":"Predict Checkout EDD - Perform.AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-22T03:33:40.180Z","originalFileLocation":"api-reference/checkout/predict-checkout-edd.mdx"},"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=\"Creates a checkout event — a virtual representation of a potential order — and returns its Estimated Delivery Date. One checkout event corresponds to at most one resulting Shipment; checkout events are not visible in the Portal. Minimum input: from_address and to_address, each with country_code (preferred) or country. The more you provide (postal codes, carrier references, shipping service, merchant), the better the prediction. One EDD per carrier: the response\u0026#x27;s data array carries one entry — its own checkout_id and checkout_edd — per carrier_reference value sent (or a single entry with carrier_reference: null when none was sent). When the order confirms, send the selected carrier\u0026#x27;s checkout_id back in additional_info.checkout_id on Create Shipment — linking works at creation only, and both links are permanent and one-to-one. How the EDD is calculated: the calculation starts from order_target_time (or the request time), applies your account\u0026#x27;s warehouse processing rules where configured (operating hours, cut-off, carrier pick-up, peak buffers), picks the model matching your configuration (carrier, corridor, day of week, handling instructions), turns the model\u0026#x27;s daily delivery probabilities into a date or range via configured confidence thresholds, and adds the days as business days for the destination country (weekends and public holidays skipped by default). Validation is all-or-nothing: if any part of the request is invalid, no checkout event is created and no checkout_id is issued.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Perform.AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_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/perform-ai/56l942lZh159TuRd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Predict Checkout EDD - Perform.AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a checkout event — a virtual representation of a potential order — and returns its Estimated Delivery Date. One checkout event corresponds to at most one resulting Shipment; checkout events are not visible in the Portal. Minimum input: from_address and to_address, each with country_code (preferred) or country. The more you provide (postal codes, carrier references, shipping service, merchant), the better the prediction. One EDD per carrier: the response\u0026#x27;s data array carries one entry — its own checkout_id and checkout_edd — per carrier_reference value sent (or a single entry with carrier_reference: null when none was sent). When the order confirms, send the selected carrier\u0026#x27;s checkout_id back in additional_info.checkout_id on Create Shipment — linking works at creation only, and both links are permanent and one-to-one. How the EDD is calculated: the calculation starts from order_target_time (or the request time), applies your account\u0026#x27;s warehouse processing rules where configured (operating hours, cut-off, carrier pick-up, peak buffers), picks the model matching your configuration (carrier, corridor, day of week, handling instructions), turns the model\u0026#x27;s daily delivery probabilities into a date or range via configured confidence thresholds, and adds the days as business days for the destination country (weekends and public holidays skipped by default). Validation is all-or-nothing: if any part of the request is invalid, no checkout event is created and no checkout_id is issued.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Perform.AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://perform-ai.mintlify.site/_mintlify/api/og/v2?division=Checkout\u0026amp;title=Predict+Checkout+EDD\u0026amp;description=Creates+a+**checkout+event**+%E2%80%94+a+virtual+representation+of+a+potential%0Aorder+%E2%80%94+and+returns+its+Estimated+Delivery+Date.+One+checkout+event%0Acorresponds+to+at+mos\u0026amp;theme=d25d5a4f8e3daa9a3911e449\u0026amp;signature=3de6dfabea44f60a3cd6076251fcadb0a734a072de1523f927298c591bc52aae\">\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=\"Predict Checkout EDD - Perform.AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a checkout event — a virtual representation of a potential order — and returns its Estimated Delivery Date. One checkout event corresponds to at most one resulting Shipment; checkout events are not visible in the Portal. Minimum input: from_address and to_address, each with country_code (preferred) or country. The more you provide (postal codes, carrier references, shipping service, merchant), the better the prediction. One EDD per carrier: the response\u0026#x27;s data array carries one entry — its own checkout_id and checkout_edd — per carrier_reference value sent (or a single entry with carrier_reference: null when none was sent). When the order confirms, send the selected carrier\u0026#x27;s checkout_id back in additional_info.checkout_id on Create Shipment — linking works at creation only, and both links are permanent and one-to-one. How the EDD is calculated: the calculation starts from order_target_time (or the request time), applies your account\u0026#x27;s warehouse processing rules where configured (operating hours, cut-off, carrier pick-up, peak buffers), picks the model matching your configuration (carrier, corridor, day of week, handling instructions), turns the model\u0026#x27;s daily delivery probabilities into a date or range via configured confidence thresholds, and adds the days as business days for the destination country (weekends and public holidays skipped by default). Validation is all-or-nothing: if any part of the request is invalid, no checkout event is created and no checkout_id is issued.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://perform-ai.mintlify.site/_mintlify/api/og/v2?division=Checkout\u0026amp;title=Predict+Checkout+EDD\u0026amp;description=Creates+a+**checkout+event**+%E2%80%94+a+virtual+representation+of+a+potential%0Aorder+%E2%80%94+and+returns+its+Estimated+Delivery+Date.+One+checkout+event%0Acorresponds+to+at+mos\u0026amp;theme=d25d5a4f8e3daa9a3911e449\u0026amp;signature=3de6dfabea44f60a3cd6076251fcadb0a734a072de1523f927298c591bc52aae\">\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/perform-ai/56l942lZh159TuRd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Perform.AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6FA900\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"qG96ee4d5MxPcm5ZdG8FzeZe-O1tLDxnuP0lVqGhShs\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/checkout/predict-checkout-edd.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.perform.ai/#organization\",\"name\":\"Perform.AI\",\"url\":\"https://developers.perform.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/perform-ai/bpZlF368Aqz3so-O/logo/light.svg?fit=max\u0026auto=format\u0026n=bpZlF368Aqz3so-O\u0026q=85\u0026s=ed60084d2cb4ac41f82c70bcd49f9015\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.perform.ai#website\",\"name\":\"Perform.AI\",\"url\":\"https://developers.perform.ai\",\"publisher\":{\"@id\":\"https://developers.perform.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd#webpage\",\"url\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd\",\"name\":\"Predict Checkout EDD\",\"description\":\"Creates a checkout event — a virtual representation of a potential order — and returns its Estimated Delivery Date. One checkout event corresponds to at most one resulting Shipment; checkout events are not visible in the Portal. Minimum input: from_address and to_address, each with country_code (preferred) or country. The more you provide (postal codes, carrier references, shipping service, merchant), the better the prediction. One EDD per carrier: the response's data array carries one entry — its own checkout_id and checkout_edd — per carrier_reference value sent (or a single entry with carrier_reference: null when none was sent). When the order confirms, send the selected carrier's checkout_id back in additional_info.checkout_id on Create Shipment — linking works at creation only, and both links are permanent and one-to-one. How the EDD is calculated: the calculation starts from order_target_time (or the request time), applies your account's warehouse processing rules where configured (operating hours, cut-off, carrier pick-up, peak buffers), picks the model matching your configuration (carrier, corridor, day of week, handling instructions), turns the model's daily delivery probabilities into a date or range via configured confidence thresholds, and adds the days as business days for the destination country (weekends and public holidays skipped by default). Validation is all-or-nothing: if any part of the request is invalid, no checkout event is created and no checkout_id is issued.\",\"dateModified\":\"2026-09-22T03:33:40.180Z\",\"isPartOf\":{\"@id\":\"https://developers.perform.ai#website\"},\"breadcrumb\":{\"@id\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Perform.AI\",\"item\":\"https://developers.perform.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Predict Checkout EDD\",\"item\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd#apireference\",\"headline\":\"Predict Checkout EDD\",\"name\":\"Predict Checkout EDD\",\"description\":\"Creates a checkout event — a virtual representation of a potential order — and returns its Estimated Delivery Date. One checkout event corresponds to at most one resulting Shipment; checkout events are not visible in the Portal. Minimum input: from_address and to_address, each with country_code (preferred) or country. The more you provide (postal codes, carrier references, shipping service, merchant), the better the prediction. One EDD per carrier: the response's data array carries one entry — its own checkout_id and checkout_edd — per carrier_reference value sent (or a single entry with carrier_reference: null when none was sent). When the order confirms, send the selected carrier's checkout_id back in additional_info.checkout_id on Create Shipment — linking works at creation only, and both links are permanent and one-to-one. How the EDD is calculated: the calculation starts from order_target_time (or the request time), applies your account's warehouse processing rules where configured (operating hours, cut-off, carrier pick-up, peak buffers), picks the model matching your configuration (carrier, corridor, day of week, handling instructions), turns the model's daily delivery probabilities into a date or range via configured confidence thresholds, and adds the days as business days for the destination country (weekends and public holidays skipped by default). Validation is all-or-nothing: if any part of the request is invalid, no checkout event is created and no checkout_id is issued.\",\"url\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd\",\"mainEntityOfPage\":{\"@id\":\"https://developers.perform.ai/api-reference/checkout/predict-checkout-edd#webpage\"},\"dateModified\":\"2026-09-22T03:33:40.180Z\",\"publisher\":{\"@id\":\"https://developers.perform.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.perform.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Perform.AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Perform.AI","nav":{"global":null,"tabs":[{"tab":"Product Documentation","pages":[{"title":"Product Documentation","href":"/products/welcome"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference overview","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"Authentication","pages":[{"title":"Generate Bearer access token","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /auth/oauth/token/","href":"/api-reference/v5/authentication/generate-bearer-access-token"}]},{"group":"Shipments","pages":[{"title":"Create Shipment","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/shipment/","href":"/api-reference/v5/shipments/create-shipment"},{"title":"Update Shipment","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/shipment/update/","href":"/api-reference/v5/shipments/update-shipment"},{"title":"Update Shipment (v5.2)","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5-2-0/shipment/update/","href":"/api-reference/v5/shipments/update-shipment-v52"},{"title":"List Shipments","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/shipment/list/","href":"/api-reference/v5/shipments/list-shipments"},{"title":"Retrieve Shipment Details","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/shipment/details/","href":"/api-reference/v5/shipments/retrieve-shipment-details"},{"title":"Retrieve Shipment Details (v5.2)","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5-2-0/shipment/details/","href":"/api-reference/v5/shipments/retrieve-shipment-details-v52"}]},{"group":"Booking","pages":[{"title":"Create Booking","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/booking/","href":"/api-reference/v5/booking/create-booking"}]},{"group":"Documents","pages":[{"title":"List Documents","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/shipments/documents/","href":"/api-reference/v5/documents/list-documents"},{"title":"Retrieve a Document","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/shipments/documents/{document_uuid}/","href":"/api-reference/v5/documents/retrieve-a-document"},{"title":"List Labels","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/shipments/documents/labels/","href":"/api-reference/v5/documents/list-labels"}]},{"group":"PUDO locations","pages":[{"title":"Retrieve PUDO Locations","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/pudo-locations/","href":"/api-reference/v5/pudo-locations/retrieve-pudo-locations"}]},{"group":"Carrier configurations","pages":[{"title":"Retrieve Carrier Configurations","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml get /v5/carrier-configs/","href":"/api-reference/v5/carrier-configurations/retrieve-carrier-configurations"}]},{"group":"Events","pages":[{"title":"Create Events","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/events/create/","href":"/api-reference/v5/events/create-events"}]},{"group":"Returns","pages":[{"title":"Create Return","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/return/","href":"/api-reference/v5/returns/create-return"},{"title":"Update Return","deprecated":null,"version":null,"openapi":"/specs/public-api-v5.yaml post /v5/return/update/","href":"/api-reference/v5/returns/update-return"}]},{"group":"Webhooks","pages":[{"title":"Shipment update (format 5.0)","openapi":"specs/public-api-v5.yaml webhook shipment-update-v5-0","href":"/api-reference/webhooks/shipment-update-v5-0"},{"title":"Shipment update (format 5.2)","openapi":"specs/public-api-v5.yaml webhook shipment-update-v5-2","href":"/api-reference/webhooks/shipment-update-v5-2"},{"title":"Shipment update (format 5.3)","openapi":"specs/public-api-v5.yaml webhook shipment-update-v5-3","description":"Everything in format 5.2, with two changes:\n\n- **`expected_delivery` is restructured**: instead of a single from/to\n window, it exposes the EDD from each source separately — `merchant`,\n `carrier`, `predict_engine`, and `display` (the value shown in the\n product, following your account's EDD display priority; ask your\n account team to review it).\n- **`pa_results`** lists Performance Aspiration evaluations for the\n Shipment — empty unless the Performance Aspiration module is enabled.\n\nThe emitted `version` value for this format is `5.3.0`. Contact your\naccount team to enable format 5.3. Delivery and authentication are\nidentical to format 5.0.","href":"/api-reference/webhooks/shipment-update-v5-3"}]},{"group":"Checkout","pages":[{"title":"Predict Checkout EDD","openapi":"specs/checkout-v1.yaml POST /v1/edd/checkout/","href":"/api-reference/checkout/predict-checkout-edd"}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Predict Checkout EDD - Perform.AI","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DcUtcwZ_.js","dist-CJ9Oly2E.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C5EfhVm0.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CxAy5y67.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","AssistantPageLink-Mk6P3qvh.js"]}