---
title: "Create delivery"
method: POST
path: "/deliveries"
tags: ["deliveries"]
---

# Create delivery

`POST /deliveries`

Accept a quote and create a delivery. The `nonce` field provides idempotency.

## Request body

- CreateDeliveryRequest — Body for creating a delivery from an accepted quote.
  - `request_id` string, required — The delivery request to fulfill.
  - `quote_id` string, required — The accepted quote.
  - `nonce` string, required — Client-generated idempotency key.
  - `webhook_url` string, nullable — Optional URL to receive delivery event webhook notifications.
  - `event_vocabulary` string — Event vocabulary standard to use.

## Response `201`

Delivery created.

- Delivery — A delivery resource.
  - `id` string, required — Unique delivery identifier.
  - `request_id` string, required — Reference to the delivery request.
  - `quote_id` string, required — Reference to the accepted quote.
  - `payment_instrument_id` string, required — Reference to the payment instrument used to create this delivery.
  - `event` string, required — Current event identifier.
  - `event_description` string, required — Human-readable description of the current event.
  - `event_vocabulary` string, required — Event vocabulary standard in use.
  - `webhook_url` string, nullable — Registered webhook URL, if any.
  - `created_at` string, date-time, required — Creation timestamp (RFC 3339).
  - `updated_at` string, date-time, required — Last update timestamp (RFC 3339).

## Other responses

- `400` — Invalid nonce or quote does not belong to request.
- `404` — Request or quote not found.
- `409` — Duplicate nonce or nonce reuse with different payload.

---

[API](https://skmtc.net/palette-labs-inc/apis/local-protocol.md) · [All operations](https://skmtc.net/palette-labs-inc/apis/local-protocol/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/palette-labs-inc/local-protocol/revisions/7db6ad75e16d/schema)
