# Upload or replace a filing artifact

> PUT /filings/{filing_id}/artifacts/{artifact_type}

Source: https://docs.trykintsugi.com/reference/2026-07-21/upload-or-replace-a-filing-artifact

PUT /filings/{filing_id}/artifacts/{artifact_type}

Upload or replace a filing artifact

Store a filing's return or payment confirmation document, as `multipart/form-data` with the PDF in the `file` part. `artifactType` picks the slot: `RETURN` or `PAYMENT`. Uploading to a slot that already holds a document replaces it. Only a caller that files the organization's returns itself may upload: a partner with self-managed filings enabled (its portfolio key, or a partner user who can see the organization), or the organization's own ADMIN, OWNER or organization key when such a partner manages it. Send an `Organization-Id`, `Connection-Id` or `Entity-Id` selector to say which organization the filing belongs to. The filing's status does not change. Download the stored document through `GET /attachments/{id}/download`.

The file must be a PDF of at most 10 MB. Returns 404 if the filing does not exist or belongs to an organization your credential cannot access, 403 if Kintsugi files the organization's returns or your credential is not its filer, 409 if the filing is not in the FILING or FILED status, 413 if the file is too large, and 422 if it is not a PDF.

Category: Filings

Path parameters:
filing_id (string, required) - The unique identifier of the filing.
artifact_type (PublicFilingArtifactTypeEnum, required) - Which confirmation document the upload fills.
  allowed values: RETURN, PAYMENT

Response fields:
id (string, required) - Kintsugi's unique identifier for the attachment.
fileName (string, required) - Name the file was uploaded under.
contentType (string, required) - Media type of the file.
size (integer, required) - Size of the file in bytes.
relatedEntity (RelatedEntityRef, required) - The entity this attachment is held against.
  id (string, required) - Kintsugi's unique identifier for the related entity.
  type (string, required) - Kind of entity the attachment is held against.
uploadedAt (string, required) - When the attachment was uploaded, as an RFC-3339 UTC timestamp.

Response statuses: 200, 400, 401, 403, 404, 409, 413, 422, 503

---

Index of every page: https://docs.trykintsugi.com/llms.txt
