Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.
Upload an Excel order list with the same parsing template used by operators in the order import screen. This endpoint uses your existing customer API key.
Availability requires the backend release containing this endpoint to be deployed.
Prepare one .xlsx or .xls file whose headers match the template’s columns. The file must contain at least one data row.
Include your customer name in the filename, as in the operator workflow. For customer ZTQ, 26ZTQ018.xlsx is valid.
Send a multipart/form-data request. Let your HTTP client generate the multipart boundary.
The API key determines the order customer. Do not send selectedUser, customerId, action or an operator login token. This endpoint always imports orders and preserves the existing Excel order and factory validation rules.
This example matches the screenshot workflow: import orders, use pipe-separated image URLs, select the new downloader, and disable image downloads. Set needDownloadImage=true to create image download tasks.To include attachments, repeat the field:
Supported attachment formats include archives (zip, rar, 7z, tar, gz), spreadsheets (xlsx, xls, csv), documents (pdf, doc, docx), images (jpg, jpeg, png, gif, bmp, webp) and text (txt, json, xml). Attachments are stored with the order batch; they do not replace image URLs in the spreadsheet.
Save uniqueRequestId. Use it with Query Orders, Query Waybills and Query Trackings. A successful upload means the order batch was imported; factory matching, shipment creation and image downloads can still be pending.
Other request errors (such as an empty file, unsupported format, unavailable template or malformed workbook) return HTTP 400 with code, msg and optional data. Missing or invalid API keys return HTTP 401.Existing order numbers are rejected by the Excel import duplicate checks. The endpoint does not accept a client-generated idempotency key. If a request times out, check the order batch in the operator dashboard before uploading the same file again.
Server-generated batch key for Query Orders, Query Waybills and Query Trackings. Only returned on success.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pod Erp","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/lux-d397509e/fnrEXBb_fr4aU0b5/logo/logo.png?fit=max\u0026auto=format\u0026n=fnrEXBb_fr4aU0b5\u0026q=85\u0026s=f55113026cd46980e8e8d56d832c5754","dark":"https://mintcdn.com/lux-d397509e/fnrEXBb_fr4aU0b5/logo/logo.png?fit=max\u0026auto=format\u0026n=fnrEXBb_fr4aU0b5\u0026q=85\u0026s=f55113026cd46980e8e8d56d832c5754"},"favicon":"https://mintcdn.com/lux-d397509e/JoyLySeR9FeahOCv/favicon.svg?fit=max\u0026auto=format\u0026n=JoyLySeR9FeahOCv\u0026q=85\u0026s=9e532cd1c52a4c4f184f9de8ed896ad1","navbar":{"links":[{"href":"mailto:taoclive@gmail.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.mintlify.com"}},"icons":{"library":"fontawesome"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lux-d397509e","hasAudioNarration":false,"actualSubdomain":"lux-d397509e","customDomains":["docs.poderp.com"],"gitSource":{"type":"github","owner":"taoaozw","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ade1c4562312816aa7e7911","collectionId":"57edbaf7-3871-4e2d-861d-8f4651ce3c06","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ade1c4562312816aa7e7911"},"entitlements":{},"buildId":"6ade1c4562312816aa7e7911","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":9},{"language":"default","tag":"Order Management","count":6},{"language":"default","tag":"Product Catalog","count":2},{"language":"default","tag":"API Documentation","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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":"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":"billing-updated-9-15","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":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/upload-order-file","slug":"/api-reference/endpoint/upload-order-file","pageMetadata":{"title":"Upload Order File","openapi":"POST /api/openapi/order/upload","description":"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.","href":"/api-reference/endpoint/upload-order-file"},"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: \"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\"\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`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Upload an Excel order list with the same parsing template used by operators in the order import screen. This endpoint uses your existing customer API key.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Availability requires the backend release containing this endpoint to be deployed.`})}),`\n`,_jsx(Heading,{level:`2`,id:`prepare-the-order-file`,children:`Prepare the order file`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.a,{href:`/api-reference/endpoint/list-order-templates`,children:`List Order Templates`}),` and choose an enabled order template.`]}),`\n`,_jsxs(_components.li,{children:[`Prepare one `,_jsx(_components.code,{children:`.xlsx`}),` or `,_jsx(_components.code,{children:`.xls`}),` file whose headers match the template’s `,_jsx(_components.code,{children:`columns`}),`. The file must contain at least one data row.`]}),`\n`,_jsxs(_components.li,{children:[`Include your customer name in the filename, as in the operator workflow. For customer `,_jsx(_components.code,{children:`ZTQ`}),`, `,_jsx(_components.code,{children:`26ZTQ018.xlsx`}),` is valid.`]}),`\n`,_jsxs(_components.li,{children:[`Send a `,_jsx(_components.code,{children:`multipart/form-data`}),` request. Let your HTTP client generate the multipart boundary.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The API key determines the order customer. Do not send `,_jsx(_components.code,{children:`selectedUser`}),`, `,_jsx(_components.code,{children:`customerId`}),`, `,_jsx(_components.code,{children:`action`}),` or an operator login token. This endpoint always imports orders and preserves the existing Excel order and factory validation rules.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.platform.poderp.com/api/openapi/order/upload'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Bearer YOUR_API_KEY'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'templateId=YOUR_TEMPLATE_ID'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'file=@26ZTQ018.xlsx'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'urlSplitToken=0'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'namingType=default'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'newImageDownload=true'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'needDownloadImage=false'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This example matches the screenshot workflow: import orders, use pipe-separated image URLs, select the new downloader, and disable image downloads. Set `,_jsx(_components.code,{children:`needDownloadImage=true`}),` to create image download tasks.`]}),`\n`,_jsx(_components.p,{children:`To include attachments, repeat the field:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`--form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'attachments=@notes.pdf'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`--form `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'attachments=@artwork.zip'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Supported attachment formats include archives (`,_jsx(_components.code,{children:`zip`}),`, `,_jsx(_components.code,{children:`rar`}),`, `,_jsx(_components.code,{children:`7z`}),`, `,_jsx(_components.code,{children:`tar`}),`, `,_jsx(_components.code,{children:`gz`}),`), spreadsheets (`,_jsx(_components.code,{children:`xlsx`}),`, `,_jsx(_components.code,{children:`xls`}),`, `,_jsx(_components.code,{children:`csv`}),`), documents (`,_jsx(_components.code,{children:`pdf`}),`, `,_jsx(_components.code,{children:`doc`}),`, `,_jsx(_components.code,{children:`docx`}),`), images (`,_jsx(_components.code,{children:`jpg`}),`, `,_jsx(_components.code,{children:`jpeg`}),`, `,_jsx(_components.code,{children:`png`}),`, `,_jsx(_components.code,{children:`gif`}),`, `,_jsx(_components.code,{children:`bmp`}),`, `,_jsx(_components.code,{children:`webp`}),`) and text (`,_jsx(_components.code,{children:`txt`}),`, `,_jsx(_components.code,{children:`json`}),`, `,_jsx(_components.code,{children:`xml`}),`). Attachments are stored with the order batch; they do not replace image URLs in the spreadsheet.`]}),`\n`,_jsx(Heading,{level:`2`,id:`options`,children:`Options`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`templateId`})}),_jsx(_components.td,{children:`Required`}),_jsx(_components.td,{children:`Template ID from List Order Templates`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`file`})}),_jsx(_components.td,{children:`Required`}),_jsx(_components.td,{children:`One Excel order list`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attachments`})}),_jsx(_components.td,{children:`None`}),_jsx(_components.td,{children:`Optional attachment files`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`urlSplitToken`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`0`}),`: pipe, `,_jsx(_components.code,{children:`1`}),`: semicolon, `,_jsx(_components.code,{children:`2`}),`: newline`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`namingType`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`default`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`simple`}),`, `,_jsx(_components.code,{children:`random`}),`, or `,_jsx(_components.code,{children:`sku`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`needDownloadImage`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsx(_components.td,{children:`Enable asynchronous image downloads`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`newImageDownload`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsx(_components.td,{children:`Use the new downloader when image downloads are enabled`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`success-and-follow-up-queries`,children:`Success and follow-up queries`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totalRows\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mainOrderId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1234567890123456789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uniqueRequestId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"server-generated-batch-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Save `,_jsx(_components.code,{children:`uniqueRequestId`}),`. Use it with `,_jsx(_components.a,{href:`/api-reference/endpoint/query-order`,children:`Query Orders`}),`, `,_jsx(_components.a,{href:`/api-reference/endpoint/query-waybills`,children:`Query Waybills`}),` and `,_jsx(_components.a,{href:`/api-reference/endpoint/query-trackings`,children:`Query Trackings`}),`. A successful upload means the order batch was imported; factory matching, shipment creation and image downloads can still be pending.`]}),`\n`,_jsx(Heading,{level:`2`,id:`validation-failures`,children:`Validation failures`}),`\n`,_jsx(_components.p,{children:`If a row fails validation, HTTP 400 includes Excel row numbers. No orders from that file are committed:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totalRows\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mainOrderId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uniqueRequestId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rowIndex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SKU validation failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Other request errors (such as an empty file, unsupported format, unavailable template or malformed workbook) return HTTP 400 with `,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`msg`}),` and optional `,_jsx(_components.code,{children:`data`}),`. Missing or invalid API keys return HTTP 401.`]}),`\n`,_jsx(_components.p,{children:`Existing order numbers are rejected by the Excel import duplicate checks. The endpoint does not accept a client-generated idempotency key. If a request times out, check the order batch in the operator dashboard before uploading the same file again.`})]})}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":"Upload Order File","openapi":"POST /api/openapi/order/upload","description":"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.","href":"/api-reference/endpoint/upload-order-file"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prepare the order file","slug":"prepare-the-order-file","depth":2,"children":[]},{"title":"Example","slug":"example","depth":2,"children":[]},{"title":"Options","slug":"options","depth":2,"children":[]},{"title":"Success and follow-up queries","slug":"success-and-follow-up-queries","depth":2,"children":[]},{"title":"Validation failures","slug":"validation-failures","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Upload Order File","operationId":"uploadOrderFile","description":"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.","requestBody":"d7dc3140-6294-45e2-8b78-76f93cc1d00f","responses":{"200":"bc2fe4a8-8c30-4d59-9cf9-d791c0e5c77b","400":"902c7165-0c87-4fba-8ccd-71ef6b0fe182","401":"f7706dd6-3d3b-4d5e-88a0-cc1fbbc42878"},"method":"post","type":"path","servers":["499d2c93-9499-4781-a512-1e555a66b570"],"security":["8807026f-8385-4622-8185-59ba7464cc7a"],"path":"/api/openapi/order/upload","baseUrlOptions":["https://api.platform.poderp.com"],"title":"Upload Order File","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["templateId","file"],"properties":{"templateId":{"type":"integer","format":"int64","description":"Enabled order template ID from List Order Templates.","isRequired":true,"uniqueKey":"templateId","typeLabel":"integer\u003cint64>"},"file":{"type":"string","format":"binary","description":"One non-empty .xlsx or .xls order file. Filename must contain the authenticated customer name; headers must match the selected template.","isRequired":true,"uniqueKey":"file","typeLabel":"file"},"attachments":{"type":"array","items":{"type":"string","format":"binary","uniqueKey":"attachments.items.[INDEX]","typeLabel":"file"},"description":"Optional attachments. Repeat the attachments multipart field for multiple files.","uniqueKey":"attachments","typeLabel":"file[]"},"namingType":{"type":"string","enum":["default","simple","random","sku"],"default":"default","uniqueKey":"namingType","typeLabel":"enum\u003cstring>"},"urlSplitToken":{"type":"string","enum":["0","1","2"],"default":"0","description":"Image URL separator: 0 = pipe, 1 = semicolon, 2 = newline.","uniqueKey":"urlSplitToken","typeLabel":"enum\u003cstring>"},"needDownloadImage":{"type":"boolean","default":true,"description":"Create asynchronous image download tasks. Set false to import orders only.","uniqueKey":"needDownloadImage","typeLabel":"boolean"},"newImageDownload":{"type":"boolean","default":false,"description":"Use the new image downloader. Ignored when needDownloadImage is false.","uniqueKey":"newImageDownload","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"templateId":123,"file":"\u003cstring>","attachments":["\u003cstring>"],"namingType":"default","urlSplitToken":"0","needDownloadImage":true,"newImageDownload":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"bc2fe4a8-8c30-4d59-9cf9-d791c0e5c77b":{"description":"Order batch imported; downstream processing may still be pending","content":{"application/json":{"schema":{"type":"object","required":["success","totalRows","errors"],"properties":{"success":{"type":"boolean","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"totalRows":{"type":"integer","isRequired":true,"uniqueKey":"totalRows","typeLabel":"integer"},"errors":{"type":"array","items":{"type":"object","required":["rowIndex","errors"],"properties":{"rowIndex":{"type":"integer","description":"Excel row number, starting at 2 for the first data row.","isRequired":true,"uniqueKey":"errors.items.[INDEX].rowIndex","typeLabel":"integer"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].errors.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors","typeLabel":"string[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"},"mainOrderId":{"oneOf":[{"type":"string","description":"Created batch ID, encoded as a string to preserve precision.","uniqueKey":"mainOrderId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Created batch ID, encoded as a string to preserve precision.","uniqueKey":"mainOrderId.oneOf.1","typeLabel":"null"}],"uniqueKey":"mainOrderId","typeLabel":"string | null"},"uniqueRequestId":{"oneOf":[{"type":"string","description":"Server-generated batch key for Query Orders, Query Waybills and Query Trackings. Only returned on success.","uniqueKey":"uniqueRequestId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Server-generated batch key for Query Orders, Query Waybills and Query Trackings. Only returned on success.","uniqueKey":"uniqueRequestId.oneOf.1","typeLabel":"null"}],"uniqueKey":"uniqueRequestId","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"totalRows":123,"errors":[{"rowIndex":123,"errors":["\u003cstring>"]}],"mainOrderId":"\u003cstring>","uniqueRequestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"902c7165-0c87-4fba-8ccd-71ef6b0fe182":{"description":"Row validation failure, or request/file/template error","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["success","totalRows","errors"],"properties":{"success":{"type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"totalRows":{"type":"integer","isRequired":true,"uniqueKey":"oneOf.0.totalRows","typeLabel":"integer"},"errors":{"type":"array","items":{"type":"object","required":["rowIndex","errors"],"properties":{"rowIndex":{"type":"integer","description":"Excel row number, starting at 2 for the first data row.","isRequired":true,"uniqueKey":"oneOf.0.errors.items.[INDEX].rowIndex","typeLabel":"integer"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.errors.items.[INDEX].errors.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.errors.items.[INDEX].errors","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.errors","typeLabel":"object[]"},"mainOrderId":{"oneOf":[{"type":"string","description":"Created batch ID, encoded as a string to preserve precision.","uniqueKey":"oneOf.0.mainOrderId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Created batch ID, encoded as a string to preserve precision.","uniqueKey":"oneOf.0.mainOrderId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.mainOrderId","typeLabel":"string | null"},"uniqueRequestId":{"oneOf":[{"type":"string","description":"Server-generated batch key for Query Orders, Query Waybills and Query Trackings. Only returned on success.","uniqueKey":"oneOf.0.uniqueRequestId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Server-generated batch key for Query Orders, Query Waybills and Query Trackings. Only returned on success.","uniqueKey":"oneOf.0.uniqueRequestId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uniqueRequestId","typeLabel":"string | null"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["code","msg"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"msg":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.msg","typeLabel":"string"},"data":{"oneOf":[{}],"uniqueKey":"oneOf.1.data","typeLabel":"any"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"totalRows":123,"errors":[{"rowIndex":123,"errors":["\u003cstring>"]}],"mainOrderId":"\u003cstring>","uniqueRequestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"f7706dd6-3d3b-4d5e-88a0-cc1fbbc42878":{"description":"Missing or invalid API key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"8807026f-8385-4622-8185-59ba7464cc7a":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"499d2c93-9499-4781-a512-1e555a66b570":{"url":"https://api.platform.poderp.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"lux-d397509e","siteName":"Pod Erp","title":"Upload Order File - Pod Erp","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T15:12:12.904Z","originalFileLocation":"api-reference/endpoint/upload-order-file.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=\"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Pod Erp\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_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/lux-d397509e/Wo9KA3y1q8_oQxbV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upload Order File - Pod Erp\">\u003cmeta data-mint-head property=\"og:description\" content=\"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Pod Erp\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.poderp.com/api-reference/endpoint/upload-order-file\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lux-d397509e.mintlify.app/_mintlify/api/og/v2?division=Order+Management\u0026amp;title=Upload+Order+File\u0026amp;description=Import+an+Excel+order+list+using+the+same+template+parser+and+factory+validation+as+the+operator+upload+screen.+Customer+ownership+comes+from+the+API+key.+The+o\u0026amp;theme=a189e265c1d16563e25a119e\u0026amp;signature=9f678c21ffab45551ce99d58f080d77935fa16474dd5592058b7e47f6830a6e1\">\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=\"Upload Order File - Pod Erp\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lux-d397509e.mintlify.app/_mintlify/api/og/v2?division=Order+Management\u0026amp;title=Upload+Order+File\u0026amp;description=Import+an+Excel+order+list+using+the+same+template+parser+and+factory+validation+as+the+operator+upload+screen.+Customer+ownership+comes+from+the+API+key.+The+o\u0026amp;theme=a189e265c1d16563e25a119e\u0026amp;signature=9f678c21ffab45551ce99d58f080d77935fa16474dd5592058b7e47f6830a6e1\">\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/lux-d397509e/Wo9KA3y1q8_oQxbV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Pod Erp\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.poderp.com/api-reference/endpoint/upload-order-file\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/upload-order-file.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.poderp.com/#organization\",\"name\":\"Pod Erp\",\"url\":\"https://docs.poderp.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lux-d397509e/fnrEXBb_fr4aU0b5/logo/logo.png?fit=max\u0026auto=format\u0026n=fnrEXBb_fr4aU0b5\u0026q=85\u0026s=f55113026cd46980e8e8d56d832c5754\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.poderp.com#website\",\"name\":\"Pod Erp\",\"url\":\"https://docs.poderp.com\",\"publisher\":{\"@id\":\"https://docs.poderp.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file#webpage\",\"url\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file\",\"name\":\"Upload Order File\",\"description\":\"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\",\"dateModified\":\"2026-10-25T15:12:12.904Z\",\"isPartOf\":{\"@id\":\"https://docs.poderp.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Order Management\",\"item\":\"https://docs.poderp.com/api-reference/endpoint/create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload Order File\",\"item\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file#apireference\",\"headline\":\"Upload Order File\",\"name\":\"Upload Order File\",\"description\":\"Import an Excel order list using the same template parser and factory validation as the operator upload screen. Customer ownership comes from the API key. The operation always creates orders; no selectedUser, customerId or action is needed. Database changes are rolled back if any row fails. Image downloads and downstream order processing are asynchronous. This endpoint becomes available after the backend release containing it is deployed.\",\"url\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file\",\"mainEntityOfPage\":{\"@id\":\"https://docs.poderp.com/api-reference/endpoint/upload-order-file#webpage\"},\"dateModified\":\"2026-10-25T15:12:12.904Z\",\"publisher\":{\"@id\":\"https://docs.poderp.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.poderp.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Pod Erp\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Pod Erp","nav":{"global":null,"tabs":[{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Pod Order OpenAPI","href":"/api-reference/introduction"}]},{"group":"Product Catalog","pages":[{"title":"List Products","openapi":"GET /api/openapi/products","href":"/api-reference/endpoint/list-products"},{"title":"List Variants","openapi":"GET /api/openapi/products/{spuCode}/variants","href":"/api-reference/endpoint/list-variants"}]},{"group":"Order Management","pages":[{"title":"Create Orders","openapi":"POST /api/openapi/order","href":"/api-reference/endpoint/create"},{"title":"List Order Templates","openapi":"GET /api/openapi/order/templates","description":"Returns enabled order templates for the authenticated customer business. No operator login is required.","href":"/api-reference/endpoint/list-order-templates"},{"title":"Upload Order File","openapi":"POST /api/openapi/order/upload","href":"/api-reference/endpoint/upload-order-file"},{"title":"Query Waybills","openapi":"GET /api/openapi/waybills","description":"Query waybill tracking numbers and shipping label URLs by `uniqueRequestId` or `orderNo`. At least one parameter must be provided.","href":"/api-reference/endpoint/query-waybills"},{"title":"Query Order","openapi":"GET /api/openapi/order","href":"/api-reference/endpoint/query-order"},{"title":"Query Trackings","openapi":"GET /api/openapi/trackings","href":"/api-reference/endpoint/query-trackings"}]}]}]},"title":"Upload Order File - Pod Erp","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}