---
title: "Finalize attachment"
method: PATCH
path: "/seller/listings/{id}/attachments"
tags: ["seller-listings"]
---

# Finalize attachment

`PATCH /seller/listings/{id}/attachments`

Finalize a previously uploaded listing attachment and persist it on the listing.

This is step 2 of the listing attachment workflow and must be called after a successful direct upload.

Validation and integrity checks:
- Listing must belong to the authenticated seller and remain active.
- `id` must match the expected listing-scoped attachment URN format.
- Uploaded image must no longer be in draft state.

Moderation:
- The uploaded image is downloaded and passed through moderation checks.
- Rejected images are deleted and the API returns `451` with rejection reasons.

Side effects:
- Persists a listing attachment record when validation succeeds.
- Re-evaluates listing validity:
  - If the listing requires a photo (price `>= 2000` or grading metadata present), finalizing an attachment marks the listing as `valid: true`.

Response:
- Returns the persisted attachment identifier and public URL.

## Path parameters

- `id` string, required — Listing ID

## Request body

- ImageUploadComplete — Image identifier to finalize upload
  - `id` string, required — Image identifier

## Response `200`

Attachment saved

- ListingAttachment — Image attachment linked to a listing
  - `id` string, required — Image identifier
  - `url` string, uri, required — Public URL for the attachment

## Other responses

- `404` — Listing not found
- `451` — Image rejected

---

[API](https://skmtc.net/managem/apis/managem-api.md) · [All operations](https://skmtc.net/managem/apis/managem-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/managem/managem-api/versions/6367b514f6ea/schema)
