---
title: "Remove delivery file from product"
method: DELETE
path: "/products/{productId}/delivery"
tags: ["Products"]
---

# Remove delivery file from product

`DELETE /products/{productId}/delivery`

Removes the attached distributable file from a product. Accepts the internal product id or, for Commerce API products, your productId.

## Path parameters

- `productId` string, required

## Response `200`

Delivery removed

- object
  - `success` boolean
  - `product` Product
    - `id` string
    - `provider` 'api' | 'stripe' | 'shopify' | 'woocommerce' | 'manual'
    - `providerProductId` string, nullable
    - `title` string
    - `description` string, nullable
    - `imageUrl` string, nullable
    - `price` integer, nullable — Price in cents
    - `currency` string, nullable
    - `url` string, nullable
    - `inStock` boolean, nullable — For Stripe products, false means archived in Stripe.
    - `digitalDelivery` ProductDigitalDelivery, nullable — Distributable file delivered after a purchase of this product.
      - `url` string
      - `source` 'upload' | 'url'
      - `fileName` string, nullable
      - `fileSizeBytes` integer, nullable
      - `mimeType` string, nullable
      - `updatedAt` string, date-time, nullable
    - `createdAt` string, date-time, nullable
    - `updatedAt` string, date-time, nullable

## Other responses

- `401` — Unauthorized
- `404` — Product not found
- `503` — The database was temporarily unavailable. The request may be retried after the delay in Retry-After.

## Changes

- **2026-08-19** `ba3a29c6eb33` — 3 info
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `404` status
  - added the optional property `retryable` to the response with the `503` status
- **2026-08-18** `8fbabe82a04d` — 1 info
  - added the non-success response with the status `503`
- **2026-08-16** `6fd2903b91ce` — 2 info
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `404` status
- **2026-08-02** `36f92fc0caa2` — 2 breaking
  - the response property `success` became optional for the status `401`
  - the response property `success` became optional for the status `404`
- **2026-06-11** `ad2d3114269a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/products/:productId/delivery/delete.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/73f826277d9a/schema)
