---
title: "Fulfill a Sale"
method: POST
path: "/fulfillments/fulfill"
tags: ["Fulfillments"]
---

# Fulfill a Sale

`POST /fulfillments/fulfill`

Completes all fulfillments for a given sale. This is an idempotent action.

🔒 Requires: `sales:write` scope

## Request body

- FulfillSaleRequest
  - `sale_id` string, uuid, required — The unique identifier of the sale to be fulfilled.

## Response `200`

Sale fulfilled successfully.

- FulfillSaleResponse
  - `data` FulfillmentResponse[] — A list of the updated fulfillments.
    - `id` string — The unique identifier of the fulfillment.
    - `version` integer — The new version number of the fulfillment after the update.

## Other responses

- `400` — Bad Request - The request body is malformed.
- `401` — Unauthorized - Authentication information is missing or invalid.
- `404` — Not Found
- `409` — Conflict

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/revisions/72d4ceb46dbb/schema)
