Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: "next_day").
Dos modos según payment:
external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = "efectivo".
online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...&payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock.
Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real.
Entrega al día siguiente (delivery_mode: "next_day", solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).
API key del restaurante, generada en el panel de administración (Integraciones → API pública): fd_live_... para producción o fd_test_... para sandbox (modo prueba sobre el mismo restaurante).
Obligatorio con payment online (https). El cliente final vuelve aquí tras pagar, con ?order_id= y payment=success|failed|pending (o cancelled si abandona).
Response
Pedido creado. Con payment: "online" incluye payment_link.
pendiente_pago = esperando el pago online; programado = pagado pero retenido hasta su fecha-hora (pedidos programados); el resto es el flujo de cocina y despacho.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FoodDelivery API","description":"Documentación de la API pública de FoodDelivery","colors":{"primary":"#EC1A6B","light":"#FFB3D1","dark":"#B5145A"},"logo":{"light":"https://mintcdn.com/food-delivery-cl/7MDkGtzmZNHWDtvR/images/logo-negro.png?fit=max\u0026auto=format\u0026n=7MDkGtzmZNHWDtvR\u0026q=85\u0026s=4b8eaa24e421b368f306d7f3075f28f7","dark":"https://mintcdn.com/food-delivery-cl/7MDkGtzmZNHWDtvR/images/logo-blanco.svg?fit=max\u0026auto=format\u0026n=7MDkGtzmZNHWDtvR\u0026q=85\u0026s=67cd724dfdbdab6244a677477d9d6004","href":"https://fooddelivery.cl"},"favicon":"https://mintcdn.com/food-delivery-cl/7MDkGtzmZNHWDtvR/images/favicon.svg?fit=max\u0026auto=format\u0026n=7MDkGtzmZNHWDtvR\u0026q=85\u0026s=645fbacb734c09658d631d65b9ceace9","navbar":{"links":[{"href":"https://app.fooddelivery.cl","label":"Panel de administración"}],"primary":{"type":"button","label":"Crear cuenta","href":"https://fooddelivery.cl/registro-partner"}},"footer":{"socials":{"website":"https://fooddelivery.cl"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"food-delivery-cl","hasAudioNarration":false,"actualSubdomain":"food-delivery-cl","customDomains":["docs.fooddelivery.cl"],"gitSource":{"type":"github","owner":"app-fooddelivery","repo":"fooddelivery","deployBranch":"main","contentDirectory":"apidocs","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"1a95eb0a-2593-4bed-923e-604901eaee96","liveDeploymentHistoryId":"6ace8eec6d0fc17fd10cd63c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ace8eec6d0fc17fd10cd63c"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ace8eec6d0fc17fd10cd63c","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Pedidos y Menú","count":11},{"language":"default","tag":"Guía de Usuario","count":7},{"language":"default","tag":"Pedidos","count":5},{"language":"default","tag":"Primeros Pasos","count":4},{"language":"default","tag":"Locales","count":3},{"language":"default","tag":"Referencia","count":2},{"language":"default","tag":"Inventario","count":2},{"language":"default","tag":"Guías","count":1},{"language":"default","tag":"Menú","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/pedidos/crear-un-pedido","slug":"/api-reference/pedidos/crear-un-pedido","pageMetadata":{"title":"Crear un pedido","description":"**Requiere permiso de escritura.** Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo `delivery_mode: \"next_day\"`).\n\nDos modos según `payment`:\n- `external` (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado `recibido` con `payment.method = \"efectivo\"`.\n- `online`: el pedido queda en `pendiente_pago` y la respuesta incluye `payment_link.payment_url` — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu `return_url` (con `?order_id=...\u0026payment=success|failed|pending`; si abandona, `payment=cancelled`). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock.\n\nCon llave **sandbox** (`fd_test_`) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y `payment_url` apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real.\n\n**Entrega al día siguiente** (`delivery_mode: \"next_day\"`, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en `programado` (o en `pendiente_pago` → `programado` al pagarse online), con `scheduled_for` = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae `delivery_window`. Requiere que la sucursal opere por horario (no en modo caja).\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/pedidos/crear-un-pedido","autogeneratedByOpenApi":true},"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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Requiere permiso de escritura.\"\n }), \" Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo \", _jsx(_components.code, {\n children: \"delivery_mode: \\\"next_day\\\"\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Dos modos según \", _jsx(_components.code, {\n children: \"payment\"\n }), \":\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"external\"\n }), \" (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado \", _jsx(_components.code, {\n children: \"recibido\"\n }), \" con \", _jsx(_components.code, {\n children: \"payment.method = \\\"efectivo\\\"\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"online\"\n }), \": el pedido queda en \", _jsx(_components.code, {\n children: \"pendiente_pago\"\n }), \" y la respuesta incluye \", _jsx(_components.code, {\n children: \"payment_link.payment_url\"\n }), \" — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu \", _jsx(_components.code, {\n children: \"return_url\"\n }), \" (con \", _jsx(_components.code, {\n children: \"?order_id=...\u0026payment=success|failed|pending\"\n }), \"; si abandona, \", _jsx(_components.code, {\n children: \"payment=cancelled\"\n }), \"). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Con llave \", _jsx(_components.strong, {\n children: \"sandbox\"\n }), \" (\", _jsx(_components.code, {\n children: \"fd_test_\"\n }), \") el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y \", _jsx(_components.code, {\n children: \"payment_url\"\n }), \" apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Entrega al día siguiente\"\n }), \" (\", _jsx(_components.code, {\n children: \"delivery_mode: \\\"next_day\\\"\"\n }), \", solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en \", _jsx(_components.code, {\n children: \"programado\"\n }), \" (o en \", _jsx(_components.code, {\n children: \"pendiente_pago\"\n }), \" → \", _jsx(_components.code, {\n children: \"programado\"\n }), \" al pagarse online), con \", _jsx(_components.code, {\n children: \"scheduled_for\"\n }), \" = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae \", _jsx(_components.code, {\n children: \"delivery_window\"\n }), \". Requiere que la sucursal opere por horario (no en modo caja).\"]\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":"Crear un pedido","description":"**Requiere permiso de escritura.** Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo `delivery_mode: \"next_day\"`).\n\nDos modos según `payment`:\n- `external` (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado `recibido` con `payment.method = \"efectivo\"`.\n- `online`: el pedido queda en `pendiente_pago` y la respuesta incluye `payment_link.payment_url` — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu `return_url` (con `?order_id=...\u0026payment=success|failed|pending`; si abandona, `payment=cancelled`). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock.\n\nCon llave **sandbox** (`fd_test_`) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y `payment_url` apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real.\n\n**Entrega al día siguiente** (`delivery_mode: \"next_day\"`, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en `programado` (o en `pendiente_pago` → `programado` al pagarse online), con `scheduled_for` = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae `delivery_window`. Requiere que la sucursal opere por horario (no en modo caja).\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/pedidos/crear-un-pedido","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Pedidos"],"summary":"Crear un pedido","description":"**Requiere permiso de escritura.** Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo `delivery_mode: \"next_day\"`).\n\nDos modos según `payment`:\n- `external` (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado `recibido` con `payment.method = \"efectivo\"`.\n- `online`: el pedido queda en `pendiente_pago` y la respuesta incluye `payment_link.payment_url` — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu `return_url` (con `?order_id=...\u0026payment=success|failed|pending`; si abandona, `payment=cancelled`). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock.\n\nCon llave **sandbox** (`fd_test_`) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y `payment_url` apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real.\n\n**Entrega al día siguiente** (`delivery_mode: \"next_day\"`, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en `programado` (o en `pendiente_pago` → `programado` al pagarse online), con `scheduled_for` = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae `delivery_window`. Requiere que la sucursal opere por horario (no en modo caja).\n","operationId":"createOrder","requestBody":"2ee27340-3d22-4cc9-b1fa-63e2c07068d7","responses":{"201":"8a835745-29d9-4cc3-a90f-ec4018125c86","400":"5b315be1-c8db-41f4-a3c1-b77dac1394cf","401":"8a52e3a8-aec2-4c2f-b86b-da87c0918bf8","403":"b632e93b-5feb-4aa3-a2e0-d60dbf9b9ad5","409":"e5f95f4a-dae7-4961-bbcc-3bd5e03277ec","429":"f37675f9-4558-4a42-93fb-87f6da928b1c"},"method":"post","type":"path","servers":["57743358-d53b-403e-8e5b-ab180f054f7d"],"security":["c64ec764-1d4a-41d6-b552-07903d5409df"],"path":"/orders","baseUrlOptions":["https://app.fooddelivery.cl/api/v1"],"title":"Crear un pedido","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["location_id","type","customer","items"],"properties":{"location_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"location_id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","enum":["delivery","retiro"],"isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"customer":{"type":"object","required":["name","phone"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"customer.name","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"customer.phone","typeLabel":"string"},"email":{"type":"string","description":"Obligatorio con payment \"online\" (recibe el comprobante).","uniqueKey":"customer.email","typeLabel":"string"}},"isRequired":true,"uniqueKey":"customer","typeLabel":"object"},"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["product_id","quantity"],"properties":{"product_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"\\items.items.[INDEX].product_id","typeLabel":"string\u003cuuid>"},"quantity":{"type":"integer","minimum":1,"maximum":99,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"integer"},"notes":{"type":"string","uniqueKey":"\\items.items.[INDEX].notes","typeLabel":"string"},"modifier_option_ids":{"type":"array","maxItems":30,"description":"IDs de opciones de modificadores (los entrega GET /menu en modifier_groups[].options[].id). Deben pertenecer a grupos del producto.\n","items":{"type":"string","format":"uuid","uniqueKey":"\\items.items.[INDEX].modifier_option_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueKey":"\\items.items.[INDEX].modifier_option_ids","typeLabel":"string\u003cuuid>[]"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"delivery_mode":{"type":"string","enum":["express","next_day"],"default":"express","description":"Solo con type delivery. next_day = programado para el próximo día hábil de la sucursal (ver POST /delivery/quote con mode next_day).\n","uniqueKey":"delivery_mode","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Obligatorio si type = delivery.","uniqueKey":"address","typeLabel":"string"},"notes":{"type":"string","uniqueKey":"notes","typeLabel":"string"},"shipping_fee":{"type":"integer","minimum":0,"description":"Costo de envío en CLP que paga el cliente (default 0; se ignora en retiro). Obtenlo de POST /delivery/quote (campo `fee`).\n","uniqueKey":"shipping_fee","typeLabel":"integer"},"payment":{"type":"string","enum":["external","online"],"default":"external","description":"external = cobras tú fuera de la plataforma; online = devolvemos payment_link con la página de pago Fintoc del restaurante.\n","uniqueKey":"payment","typeLabel":"enum\u003cstring>"},"payment_method":{"type":"string","enum":["transferencia","tarjeta"],"default":"transferencia","description":"Solo con payment online; método preseleccionado en Fintoc.","uniqueKey":"payment_method","typeLabel":"enum\u003cstring>"},"return_url":{"type":"string","description":"Obligatorio con payment online (https). El cliente final vuelve aquí tras pagar, con ?order_id= y payment=success|failed|pending (o cancelled si abandona).\n","uniqueKey":"return_url","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"location_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","customer":{"name":"\u003cstring>","phone":"\u003cstring>","email":"\u003cstring>"},"items":[{"product_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","quantity":50,"notes":"\u003cstring>","modifier_option_ids":["3c90c3cc-0d44-4b50-8888-8dd25736052a"]}],"delivery_mode":"express","address":"\u003cstring>","notes":"\u003cstring>","shipping_fee":1,"payment":"external","payment_method":"transferencia","return_url":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"8a835745-29d9-4cc3-a90f-ec4018125c86":{"description":"Pedido creado. Con `payment: \"online\"` incluye `payment_link`.\n","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"number":{"type":"string","description":"Número corto visible para el cliente.","examples":["#0041-150726"],"uniqueKey":"number","typeLabel":"string"},"status":{"type":"string","description":"`pendiente_pago` = esperando el pago online; `programado` = pagado pero retenido hasta su fecha-hora (pedidos programados); el resto es el flujo de cocina y despacho.\n","enum":["pendiente_pago","programado","recibido","en_preparacion","listo","en_reparto","entregado","cancelado"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["delivery","retiro"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"location_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"location_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"location_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"location_id","typeLabel":"string\u003cuuid> | null"},"customer":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","uniqueKey":"customer.name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"customer.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"customer.name","typeLabel":"string | null"},"phone":{"oneOf":[{"type":"string","uniqueKey":"customer.phone.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"customer.phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"customer.phone","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","uniqueKey":"customer.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"customer.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"customer.email","typeLabel":"string | null"}},"uniqueKey":"customer","typeLabel":"object"},"address":{"oneOf":[{"type":"string","description":"Dirección de entrega (solo pedidos delivery).","uniqueKey":"address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Dirección de entrega (solo pedidos delivery).","uniqueKey":"address.oneOf.1","typeLabel":"null"}],"uniqueKey":"address","typeLabel":"string | null"},"items":{"type":"array","items":{"type":"object","properties":{"product_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"\\items.items.[INDEX].product_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"\\items.items.[INDEX].product_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].product_id","typeLabel":"string\u003cuuid> | null"},"name":{"type":"string","uniqueKey":"\\items.items.[INDEX].name","typeLabel":"string"},"quantity":{"type":"integer","uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"integer"},"unit_price":{"type":"integer","description":"Precio unitario en CLP, con modificadores incluidos.","uniqueKey":"\\items.items.[INDEX].unit_price","typeLabel":"integer"},"notes":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].notes.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].notes.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].notes","typeLabel":"string | null"},"modifiers":{"type":"array","items":{"type":"object","properties":{"group":{"oneOf":[{"type":"string","description":"Nombre del grupo de modificadores.","uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].group.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nombre del grupo de modificadores.","uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].group.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].group","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Opción elegida.","uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opción elegida.","uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].name","typeLabel":"string | null"},"price":{"type":"integer","uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX].price","typeLabel":"integer"}},"uniqueKey":"\\items.items.[INDEX].modifiers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items.items.[INDEX].modifiers","typeLabel":"object[]"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items","typeLabel":"object[]"},"subtotal":{"type":"integer","uniqueKey":"subtotal","typeLabel":"integer"},"shipping_fee":{"type":"integer","description":"Costo de envío cobrado al cliente, en CLP.","uniqueKey":"shipping_fee","typeLabel":"integer"},"discount":{"type":"integer","description":"Descuento aplicado (cupones/promociones), en CLP.","uniqueKey":"discount","typeLabel":"integer"},"total":{"type":"integer","description":"Total pagado por el cliente, en CLP.","uniqueKey":"total","typeLabel":"integer"},"payment":{"type":"object","properties":{"method":{"oneOf":[{"type":"string","description":"Medio elegido por el cliente: `transferencia`, `tarjeta` o `apple_pay` (pago online vía Fintoc), o `efectivo` (pago presencial).\n","uniqueKey":"payment.method.oneOf.0","typeLabel":"string"},{"type":"null","description":"Medio elegido por el cliente: `transferencia`, `tarjeta` o `apple_pay` (pago online vía Fintoc), o `efectivo` (pago presencial).\n","uniqueKey":"payment.method.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment.method","typeLabel":"string | null"},"paid":{"type":"boolean","description":"true si hay un cobro online confirmado. Los pedidos con pago presencial (efectivo) siempre reportan false.\n","uniqueKey":"payment.paid","typeLabel":"boolean"}},"uniqueKey":"payment","typeLabel":"object"},"delivery":{"oneOf":[{"type":"object","description":"null en pedidos de retiro o sin despacho asociado.","properties":{"provider":{"type":"string","enum":["uber","pedidosya","propio"],"uniqueKey":"delivery.oneOf.0.provider","typeLabel":"enum\u003cstring>"},"status":{"oneOf":[{"type":"string","description":"Estado del despacho según el proveedor.","uniqueKey":"delivery.oneOf.0.status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Estado del despacho según el proveedor.","uniqueKey":"delivery.oneOf.0.status.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery.oneOf.0.status","typeLabel":"string | null"},"tracking_url":{"oneOf":[{"type":"string","description":"null para reparto propio.","uniqueKey":"delivery.oneOf.0.tracking_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"null para reparto propio.","uniqueKey":"delivery.oneOf.0.tracking_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery.oneOf.0.tracking_url","typeLabel":"string | null"}},"uniqueKey":"delivery.oneOf.0","typeLabel":"object"},{"type":"null","description":"null en pedidos de retiro o sin despacho asociado.","properties":{"provider":{"type":"string","enum":["uber","pedidosya","propio"]},"status":{"oneOf":[{"type":"string","description":"Estado del despacho según el proveedor."},{"type":"null","description":"Estado del despacho según el proveedor."}]},"tracking_url":{"oneOf":[{"type":"string","description":"null para reparto propio."},{"type":"null","description":"null para reparto propio."}]}},"uniqueKey":"delivery.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery","typeLabel":"object | null"},"scheduled_for":{"oneOf":[{"type":"string","format":"date-time","description":"Fecha-hora comprometida si es un pedido programado.","uniqueKey":"scheduled_for.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Fecha-hora comprometida si es un pedido programado.","uniqueKey":"scheduled_for.oneOf.1","typeLabel":"null"}],"uniqueKey":"scheduled_for","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"delivery_mode":{"type":"string","enum":["express","next_day"],"uniqueKey":"delivery_mode","typeLabel":"enum\u003cstring>"},"delivery_window":{"oneOf":[{"type":"string","description":"Solo con next_day. Ventana legible, ej. \"mañana 10:00–14:00\".\n","uniqueKey":"delivery_window.oneOf.0","typeLabel":"string"},{"type":"null","description":"Solo con next_day. Ventana legible, ej. \"mañana 10:00–14:00\".\n","uniqueKey":"delivery_window.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery_window","typeLabel":"string | null"},"payment_link":{"oneOf":[{"type":"object","description":"Solo con payment \"online\".","properties":{"payment_url":{"type":"string","description":"URL de pago Fintoc para el cliente final.","uniqueKey":"payment_link.oneOf.0.payment_url","typeLabel":"string"},"session_id":{"type":"string","uniqueKey":"payment_link.oneOf.0.session_id","typeLabel":"string"}},"uniqueKey":"payment_link.oneOf.0","typeLabel":"object"},{"type":"null","description":"Solo con payment \"online\".","properties":{"payment_url":{"type":"string","description":"URL de pago Fintoc para el cliente final."},"session_id":{"type":"string"}},"uniqueKey":"payment_link.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","number":"#0041-150726","status":"pendiente_pago","type":"delivery","location_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","customer":{"name":"\u003cstring>","phone":"\u003cstring>","email":"\u003cstring>"},"address":"\u003cstring>","items":[{"product_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","quantity":123,"unit_price":123,"notes":"\u003cstring>","modifiers":[{"group":"\u003cstring>","name":"\u003cstring>","price":123}]}],"subtotal":123,"shipping_fee":123,"discount":123,"total":123,"payment":{"method":"\u003cstring>","paid":true},"delivery":{"provider":"uber","status":"\u003cstring>","tracking_url":"\u003cstring>"},"scheduled_for":"2023-11-07T05:31:56Z","created_at":"2023-11-07T05:31:56Z","delivery_mode":"express","delivery_window":"\u003cstring>","payment_link":{"payment_url":"\u003cstring>","session_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"5b315be1-c8db-41f4-a3c1-b77dac1394cf":{"description":"Parámetro faltante o con formato inválido.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","location_closed","location_inactive","next_day_unavailable","insufficient_stock","illegal_transition","managed_by_integrator","state_conflict","payment_unavailable","rate_limited","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"8a52e3a8-aec2-4c2f-b86b-da87c0918bf8":{"description":"API key ausente, inválida o revocada.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","location_closed","location_inactive","next_day_unavailable","insufficient_stock","illegal_transition","managed_by_integrator","state_conflict","payment_unavailable","rate_limited","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b632e93b-5feb-4aa3-a2e0-d60dbf9b9ad5":{"description":"La API key no tiene el permiso de escritura.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","location_closed","location_inactive","next_day_unavailable","insufficient_stock","illegal_transition","managed_by_integrator","state_conflict","payment_unavailable","rate_limited","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"e5f95f4a-dae7-4961-bbcc-3bd5e03277ec":{"description":"Sucursal cerrada (`location_closed`), sin ventana de entrega al día siguiente (`next_day_unavailable`: sucursal en modo caja o sin horario en los próximos días), stock insuficiente (`insufficient_stock`) o no se pudo iniciar el pago online (`payment_unavailable`; el pedido queda cancelado).\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","location_closed","location_inactive","next_day_unavailable","insufficient_stock","illegal_transition","managed_by_integrator","state_conflict","payment_unavailable","rate_limited","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f37675f9-4558-4a42-93fb-87f6da928b1c":{"description":"Límite de peticiones excedido; ver header `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","location_closed","location_inactive","next_day_unavailable","insufficient_stock","illegal_transition","managed_by_integrator","state_conflict","payment_unavailable","rate_limited","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c64ec764-1d4a-41d6-b552-07903d5409df":{"apiKey":{"type":"http","scheme":"bearer","description":"API key del restaurante, generada en el panel de administración (Integraciones → API pública): `fd_live_...` para producción o `fd_test_...` para sandbox (modo prueba sobre el mismo restaurante).\n","scopes":[],"schemeName":"apiKey"}}},"servers":{"57743358-d53b-403e-8e5b-ab180f054f7d":{"url":"https://app.fooddelivery.cl/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key del restaurante, generada en el panel de administración (Integraciones → API pública): `fd_live_...` para producción o `fd_test_...` para sandbox (modo prueba sobre el mismo restaurante).\n","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key del restaurante, generada en el panel de administración (Integraciones → API pública): `fd_live_...` para producción o `fd_test_...` para sandbox (modo prueba sobre el mismo restaurante).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"food-delivery-cl","siteName":"FoodDelivery API","title":"Crear un pedido - FoodDelivery API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T20:05:05.549Z","originalFileLocation":"api-reference/pedidos/crear-un-pedido.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=\"Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: \u0026quot;next_day\u0026quot;). Dos modos según payment: - external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = \u0026quot;efectivo\u0026quot;. - online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...\u0026amp;payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock. Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real. Entrega al día siguiente (delivery_mode: \u0026quot;next_day\u0026quot;, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).\">\u003cmeta data-mint-head name=\"application-name\" content=\"FoodDelivery API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_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/food-delivery-cl/aVKCvtEKuMTVp29R/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Crear un pedido - FoodDelivery API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: \u0026quot;next_day\u0026quot;). Dos modos según payment: - external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = \u0026quot;efectivo\u0026quot;. - online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...\u0026amp;payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock. Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real. Entrega al día siguiente (delivery_mode: \u0026quot;next_day\u0026quot;, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FoodDelivery API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://food-delivery-cl.mintlify.app/_mintlify/api/og/v2?division=Pedidos\u0026amp;title=Crear+un+pedido\u0026amp;description=**Requiere+permiso+de+escritura.**+Crea+un+pedido.+Los+precios+se+calculan+SIEMPRE+desde+el+cat%C3%A1logo+del+restaurante+%28no+se+aceptan+precios+del+cliente%29.+Respet\u0026amp;theme=d3db3104c98001b39492a62e\u0026amp;signature=2461ddabaf707ea4f251dec9edf708e7a28ce1873ca97053178ec6dac83d9c23\">\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=\"Crear un pedido - FoodDelivery API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: \u0026quot;next_day\u0026quot;). Dos modos según payment: - external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = \u0026quot;efectivo\u0026quot;. - online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...\u0026amp;payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock. Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real. Entrega al día siguiente (delivery_mode: \u0026quot;next_day\u0026quot;, solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://food-delivery-cl.mintlify.app/_mintlify/api/og/v2?division=Pedidos\u0026amp;title=Crear+un+pedido\u0026amp;description=**Requiere+permiso+de+escritura.**+Crea+un+pedido.+Los+precios+se+calculan+SIEMPRE+desde+el+cat%C3%A1logo+del+restaurante+%28no+se+aceptan+precios+del+cliente%29.+Respet\u0026amp;theme=d3db3104c98001b39492a62e\u0026amp;signature=2461ddabaf707ea4f251dec9edf708e7a28ce1873ca97053178ec6dac83d9c23\">\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/food-delivery-cl/aVKCvtEKuMTVp29R/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FoodDelivery API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EC1A6B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/pedidos/crear-un-pedido.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fooddelivery.cl/#organization\",\"name\":\"FoodDelivery API\",\"url\":\"https://docs.fooddelivery.cl\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/food-delivery-cl/7MDkGtzmZNHWDtvR/images/logo-negro.png?fit=max\u0026auto=format\u0026n=7MDkGtzmZNHWDtvR\u0026q=85\u0026s=4b8eaa24e421b368f306d7f3075f28f7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fooddelivery.cl#website\",\"name\":\"FoodDelivery API\",\"url\":\"https://docs.fooddelivery.cl\",\"publisher\":{\"@id\":\"https://docs.fooddelivery.cl/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido#webpage\",\"url\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido\",\"name\":\"Crear un pedido\",\"description\":\"Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: \\\"next_day\\\"). Dos modos según payment: - external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = \\\"efectivo\\\". - online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...\u0026payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock. Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real. Entrega al día siguiente (delivery_mode: \\\"next_day\\\", solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).\",\"dateModified\":\"2026-10-13T20:05:05.549Z\",\"isPartOf\":{\"@id\":\"https://docs.fooddelivery.cl#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Pedidos\",\"item\":\"https://docs.fooddelivery.cl/api-reference/pedidos/listar-pedidos\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crear un pedido\",\"item\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido#apireference\",\"headline\":\"Crear un pedido\",\"name\":\"Crear un pedido\",\"description\":\"Requiere permiso de escritura. Crea un pedido. Los precios se calculan SIEMPRE desde el catálogo del restaurante (no se aceptan precios del cliente). Respeta el inventario (409 si no hay stock) y exige la sucursal abierta (salvo delivery_mode: \\\"next_day\\\"). Dos modos según payment: - external (default): el cobro ocurre fuera de FoodDelivery; el pedido entra directo a la cocina (KDS) en estado recibido con payment.method = \\\"efectivo\\\". - online: el pedido queda en pendiente_pago y la respuesta incluye payment_link.payment_url — una página de pago Fintoc del restaurante donde paga el cliente final. Al confirmarse el pago, el pedido pasa a la cocina automáticamente y el cliente vuelve a tu return_url (con ?order_id=...\u0026payment=success|failed|pending; si abandona, payment=cancelled). Los pedidos no pagados se cancelan solos después de un rato y reponen su stock. Con llave sandbox (fd_test_) el pedido nace marcado como PRUEBA (visible en la cocina con etiqueta, sin stock/analítica/facturación reales, sin exigir local abierto) y payment_url apunta a un simulador donde eliges pago exitoso o fallido — el flujo de confirmación y redirección es idéntico al real. Entrega al día siguiente (delivery_mode: \\\"next_day\\\", solo delivery): no exige la sucursal abierta. El pedido se agenda para el próximo día con horario de atención (si mañana está cerrado, el siguiente día hábil), en una ventana de 4 horas desde la apertura. Nace en programado (o en pendiente_pago → programado al pagarse online), con scheduled_for = hora comprometida, y entra a la cocina solo a la apertura de ese día. La respuesta trae delivery_window. Requiere que la sucursal opere por horario (no en modo caja).\",\"url\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fooddelivery.cl/api-reference/pedidos/crear-un-pedido#webpage\"},\"dateModified\":\"2026-10-13T20:05:05.549Z\",\"publisher\":{\"@id\":\"https://docs.fooddelivery.cl/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fooddelivery.cl#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FoodDelivery API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FoodDelivery API","nav":{"global":null,"tabs":[{"tab":"Guía de Usuario","pages":[{"title":"Guía de Usuario","href":"/introduccion"}]},{"tab":"API Pedidos y Menú","groups":[{"group":"Pedidos","pages":[{"title":"Listar pedidos","description":"Devuelve los pedidos del restaurante ordenados del más reciente al más antiguo, con paginación por cursor: mientras `has_more` sea `true`, repite la llamada pasando `cursor=next_cursor`. Cada llave ve su mundo: una llave sandbox solo devuelve pedidos de prueba y una de producción solo pedidos reales.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders","href":"/api-reference/pedidos/listar-pedidos"},{"title":"Crear un pedido","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/pedidos/crear-un-pedido"},{"title":"Obtener un pedido","description":"Detalle completo de un pedido. Un pedido de otro restaurante responde 404 (la API no revela la existencia de datos ajenos).\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders/{order_id}","href":"/api-reference/pedidos/obtener-un-pedido"},{"title":"Cambiar el estado de un pedido","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /orders/{order_id}","href":"/api-reference/pedidos/cambiar-el-estado-de-un-pedido"},{"title":"Cotizar el envío a una dirección","deprecated":null,"version":null,"openapi":"/openapi.yaml post /delivery/quote","href":"/api-reference/pedidos/cotizar-el-envío-a-una-dirección"}]},{"group":"Locales","pages":[{"title":"Listar sucursales con su estado","deprecated":null,"version":null,"openapi":"/openapi.yaml get /locations","href":"/api-reference/locales/listar-sucursales-con-su-estado"},{"title":"Abrir la sucursal ahora","deprecated":null,"version":null,"openapi":"/openapi.yaml post /locations/{location_id}/open","href":"/api-reference/locales/abrir-la-sucursal-ahora"},{"title":"Cerrar la sucursal ahora","deprecated":null,"version":null,"openapi":"/openapi.yaml post /locations/{location_id}/close","href":"/api-reference/locales/cerrar-la-sucursal-ahora"}]},{"group":"Menú","pages":[{"title":"Obtener el menú","deprecated":null,"version":null,"openapi":"/openapi.yaml get /menu","href":"/api-reference/menú/obtener-el-menú"}]},{"group":"Inventario","pages":[{"title":"Consultar stock por sucursal","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stock","href":"/api-reference/inventario/consultar-stock-por-sucursal"},{"title":"Actualizar stock por sucursal","deprecated":null,"version":null,"openapi":"/openapi.yaml put /stock","href":"/api-reference/inventario/actualizar-stock-por-sucursal"}]}]}]},"title":"Crear un pedido - FoodDelivery API","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}