---
title: "POST Upload or replace a compliance certificate (PDF only)"
description: "Stores the compliance certificate in the organization assets bucket and replaces any previous file for the same framework."
last_updated: "2026-05-06T07:33:56.400192+00:00"
canonical_url: "https://www.doc0.dev/docs/49c89830-117b-4def-8edc-b5bcc50766e0/api/trust-portal/trustportalcontroller-uploadcomplianceresource"
---

<APIEndpoint
  method={"POST"}
  path={"/trust-portal/compliance-resources/upload"}
  summary={"Upload or replace a compliance certificate (PDF only)"}
  description={"Stores the compliance certificate in the organization assets bucket and replaces any previous file for the same framework."}
  deprecated={false}
  baseUrl={""}
/>

## Parameters

<APIParameters parameters={[{"name":"X-Organization-Id","in":"header","required":false,"description":"Organization ID (required for session auth, optional for API key auth)","schema":{"type":"string"}}]} />

## Request Body

<APIRequestBody
  contentType={"application/json"}
  required={true}
  schema={{"type":"object"}}
/>

## Responses

<APIResponse
  statusCode={"201"}
  description={"Compliance certificate uploaded successfully"}
  contentType={"application/json"}
  schema={{"type":"object"}}
/>

<APIResponse
  statusCode={"400"}
  description={"Framework not compliant, PDF validation failed, or organization mismatch"}
  contentType={"application/json"}
/>

## Try It

<APIPlayground
  method={"POST"}
  path={"/trust-portal/compliance-resources/upload"}
  parameters={[{"name":"X-Organization-Id","in":"header","required":false,"description":"Organization ID (required for session auth, optional for API key auth)","schema":{"type":"string"}}]}
  requestBody={{"contentType":"application/json","required":true,"description":"","schema":{"type":"object"}}}
  baseUrl={""}
/>


## Sitemap

See the full [sitemap](https://www.doc0.dev/docs/49c89830-117b-4def-8edc-b5bcc50766e0/llms.txt) for all pages in this wiki.
