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

# Book Order Intake Delivery

`POST /v1/order-intake/bookings`

## Request

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

Book the delivery the visitor was quoted: only the `quote_id` the quote returned, before its `expires_at`, and only from the session lineage that was shown it. Dispatches the order to a provider, billed to the merchant. Idempotent per quote: a retry, a double click or a new session for the same form gets the same answer and never a second delivery. `status` is `booked`, or `booking_failed` when no delivery could be confirmed (the order is kept and the business follows up); `reference` identifies the order and `tracking_url` is the delivery's tracking page when there is one.

`ORDER_INTAKE_QUOTE_EXPIRED` and `ORDER_INTAKE_QUOTE_ABOVE_LIMIT` (409) ask for a new quote. `ORDER_INTAKE_DAILY_LIMIT` (429) when the form reached its daily order limit. A malformed `quote_id` is `VALIDATION_ERRORS` (422). Refusals are the uniform `FORBIDDEN` (403) or `SESSION_EXPIRED` (410); `RATE_LIMITED` (429) and `ORDER_INTAKE_UNAVAILABLE` (503) carry `Retry-After`.

## Request body

- IntakeBookingBody: Loose edge model for `POST /v1/order-intake/bookings`. Typed loosely for the same reason as `IntakeQuoteBody`: the route authenticates first, then the strict model reports a malformed `quote_id`. Unknown fields are ignored.
  - `quote_id` unknown

## Response `201`

Created

- IntakeBookingRead: What `POST /v1/order-intake/bookings` answers (spec §5.10 steps 7-8), the same body for every replay. `booking_failed` means the order was saved but no delivery could be confirmed: the business follows up. `reference` is the order's `external_id`. `tracking_url` is the delivery's public tracking page, only when one exists and is https.
  - `status` 'booked' | 'booking_failed', required
  - `reference` string, required
  - `total_cents` integer, required
  - `currency` string, required
  - `tracking_url` string, nullable, 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)
