---
title: "Quote Order Intake Delivery"
method: POST
path: "/v1/order-intake/quotes"
tags: ["Order Intake"]
---

# Quote Order Intake Delivery

`POST /v1/order-intake/quotes`

## Request

- Base URL: `https://api.sandbox.usenash.com`
- URL: `https://api.sandbox.usenash.com/v1/order-intake/quotes`
- Auth: none declared

Price the visitor's delivery: one total (provider price, Nash fee and the form's tip) for the chosen store, strategy and vehicle, valid until `expires_at` (at most ten minutes). Creates one draft order tagged `quotes_only`; only the returned `quote_id` can be booked.

`VALIDATION_ERRORS` (422) maps body paths (`store_id`, `recipient.phone`, `dropoff.lat`, ...) to a static message in `details.fields`; a store, strategy or vehicle the form does not offer is one of them. `ORDER_INTAKE_NO_QUOTES` (409) when no provider quoted within the form's cap. Refusals are the uniform `FORBIDDEN` (403) or `SESSION_EXPIRED` (410); `RATE_LIMITED` (429) and `ORDER_INTAKE_UNAVAILABLE` (503) carry `Retry-After`.

## Request body

- IntakeQuoteBody: Loose edge model for `POST /v1/order-intake/quotes`. Typed loosely on purpose so a 422 at the edge never reveals authorization answers (ADR R-009). Unknown fields the widget may send are ignored; `to_request` applies the strict model, which is where the spec's limits are enforced.
  - `store_id` unknown
  - `dropoff` unknown
  - `recipient` unknown
  - `instructions` unknown
  - `vehicle_type` unknown
  - `strategy_id` unknown

## Response `200`

OK

- IntakeQuoteRead: What `POST /v1/order-intake/quotes` answers (spec §5.7 step 9): the one price the visitor may book. `total_cents` is what the customer pays: the provider's price, the Nash fee and the form's tip. `expires_at` is the earlier of the provider's expiry and ten minutes from now; booking enforces it.
  - `quote_id` string, required
  - `total_cents` integer, required
  - `currency` string, required
  - `expires_at` string, date-time, required

## Other responses

- `403`: Forbidden
- `409`: Conflict
- `410`: Gone
- `422`: Unprocessable Content
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/nash/apis/nash-api.md) - [All operations](https://skmtc.dev/nash/apis/nash-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nash/apis/nash-api/revisions/e3713837c5c9?raw)
