---
title: "Revoke a transfer"
method: DELETE
path: "/transfers/{id}"
tags: ["Transfers"]
---

# Revoke a transfer

`DELETE /transfers/{id}`

## Request

- Base URL: `https://yungle.co/api/v1`
- URL: `https://yungle.co/api/v1/transfers/{id}`
- Auth: HTTP bearer

Immediate and irreversible: the per-file encryption keys are destroyed before this returns, so the content is unrecoverable whether or not object storage has caught up.

## Response `200`

The revoked transfer.

- object
  - `transfer` Transfer, required
    - `id` string, required
    - `slug` string, required: Part of the share URL. An output only: address the transfer by `id`.
    - `url` string, uri, required: The link to give recipients. Not live until the transfer is finalized.
    - `title` string, nullable, required
    - `status` string, required: Currently one of: `active`, `expired`, `infected`, `removed`. Treat unknown values as unknown, not as an error.
    - `sizeBytes` integer, required
    - `fileCount` integer: Present on the single-transfer read.
    - `recipients` string[], required
    - `hasPassword` boolean, required
    - `e2ee` boolean, required: End-to-end encrypted: the working link carries a key Yungle never holds, so `url` alone does not open it.
    - `downloadCount` integer, required
    - `maxDownloads` integer, nullable, required: Null for unlimited.
    - `finalizedAt` string, date-time, nullable, required: Null until sent. A draft is not shareable.
    - `expiresAt` string, date-time, required: Every transfer expires; a paid plan lets you set when.
    - `createdAt` string, date-time, required

## Other responses

- `401`: Missing or invalid credential. Codes: `unauthorized`.
- `402`: Needs a paid plan, or prepaid credit for metered usage. Codes: `upgrade_required`, `out_of_credit`.
- `403`: The credential lacks a required scope, or a shared link refused access. Codes: `insufficient_scope`, `password_required`, `wrong_password`, `guests_only`.
- `404`: No such resource in this workspace. Codes: `not_found`.
- `429`: Rate limit or email budget exhausted. Wait for `Retry-After`. Codes: `rate_limited`, `email_budget_exhausted`.
- `500`: Our fault. `details.requestId` ties it to our logs. Codes: `internal_error`.

---

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