---
id: onboard-operator-update-organisation-status
title: "Suspend or resume organisation"
description: "Suspends (`suspended`) or resumes (`active`) an organisation. A suspension can be undone: the data, the keys and the wallet units of the organisation stay, and no credential is revoked. While the organisation is suspended, each call with its API keys or the logins of its admins gets `401` with `errorKey` `organisation_suspended`, and its organisation wallet refuses its operations; the status lists, the issuer metadata and the JWKS stay available. See [Suspension](/docs/platform-admin-guide/#suspension)."
sidebar_label: "Suspend or resume organisation"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Suspend or resume organisation</h1>

<MethodEndpoint method={"put"} path={"/v4/onboard/platform/operator/organisation/{organisationId}/status"}></MethodEndpoint>



Suspends (`suspended`) or resumes (`active`) an organisation. A suspension can be undone: the data, the keys and the wallet units of the organisation stay, and no credential is revoked. While the organisation is suspended, each call with its API keys or the logins of its admins gets `401` with `errorKey` `organisation_suspended`, and its organisation wallet refuses its operations; the status lists, the issuer metadata and the JWKS stay available. See [Suspension](/docs/platform-admin-guide/#suspension).

The answer is `200` when the API has the new state. `walletSuspension` tells whether the organisation wallet has it also. With `failed`, send the same request again: a request for the state that the organisation has changes nothing in the API and sends the state to the wallet again.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"organisationId","in":"path","required":true,"description":"The ID of the organisation, from [List organisations of the installation](/docs/openid4vc-api/onboard-operator-list-organisations).","schema":{"type":"string","maxLength":256,"example":"6731f0c2a1b2c3d4e5f60789"}}}></ParamsItem></ul></div></details><MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3><strong className={"openapi-schema__required"}>required</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`suspended`, `active`]"} schema={{"type":"string","enum":["suspended","active"],"description":"`suspended` suspends the organisation; `active` resumes it.","example":"suspended"}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The organisation has the new state in the API.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>organisation</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

An organisation of the installation as a platform admin sees it: its profile and its state. It has no data of the organisation, such as its credentials, records or keys.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the organisation.","example":"6731f0c2a1b2c3d4e5f60789"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the organisation.","example":"Acme Bank"}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The location of the organisation.","example":"Stockholm, Sweden"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>type</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The organisation type.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the organisation type.","example":"64e0c1a2b3c4d5e6f7a8b9c0"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the organisation type.","example":"Banking"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"policyUrl"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The privacy policy URL of the organisation.","example":"https://acme-bank.example.com/privacy"}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`invited`, `active`, `suspended`, `deleting`]"} schema={{"type":"string","enum":["invited","active","suspended","deleting"],"description":"The state of the organisation. `invited`: no super admin of the organisation has logged in yet. `active`: a super admin has logged in. `suspended`: a platform admin suspended the organisation. `deleting`: the deletion of the organisation started; this state is final.","example":"active"}}></SchemaItem><SchemaItem collapsible={false} name={"isPlatformOperator"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The organisation is the platform operator organisation of the installation.","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"superAdminCount"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of super admins of the organisation.","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"When the organisation was made (RFC 3339, UTC).","example":"2026-11-12T08:15:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"suspendedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"When a platform admin suspended the organisation (RFC 3339, UTC), or `null` when the organisation is not suspended. An organisation that was suspended in an earlier release can have no time.","example":null}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>wallet</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The deployment of the organisation wallet of the organisation.

</div><SchemaItem collapsible={false} name={"deploymentStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`deployed`, `requested`, `notConfigured`]"} schema={{"type":"string","enum":["deployed","requested","notConfigured"],"description":"`deployed`: the wallet is deployed. `requested` and `notConfigured`: the wallet is not deployed; deploy it with [Deploy organisation wallet](/docs/openid4vc-api/onboard-operator-deploy-organisation-wallet).","example":"deployed"}}></SchemaItem><SchemaItem collapsible={false} name={"walletOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The ID of the organisation in the organisation wallet (the `holderOrganisationId` of the wallet unit lists of the wallet provider), or `null` without a wallet.","example":"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f"}}></SchemaItem><SchemaItem collapsible={false} name={"isWalletProvider"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The wallet of the organisation is the wallet provider of the installation.","example":false}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>features</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

How many of the product features of the platform are on for the organisation. Read the value of each feature with [Read organisation features](/docs/openid4vc-api/onboard-operator-read-organisation-features).

</div><SchemaItem collapsible={false} name={"enabled"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of product features that are on.","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"total"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of product features of the platform.","example":4}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>walletSuspension</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The result in the organisation wallet.

</div><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`applied`, `notDeployed`, `failed`]"} schema={{"type":"string","enum":["applied","notDeployed","failed"],"description":"`applied`: the wallet has the state. `notDeployed`: the organisation has no deployed wallet. `failed`: the wallet did not get the state; send the request again.","example":"applied"}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"With `failed`, the cause."}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"organisation\": {\n    \"id\": \"6731f0c2a1b2c3d4e5f60789\",\n    \"name\": \"Acme Bank\",\n    \"location\": \"Stockholm, Sweden\",\n    \"type\": {\n      \"id\": \"64e0c1a2b3c4d5e6f7a8b9c0\",\n      \"type\": \"Banking\"\n    },\n    \"policyUrl\": \"https://acme-bank.example.com/privacy\",\n    \"status\": \"active\",\n    \"isPlatformOperator\": false,\n    \"superAdminCount\": 1,\n    \"createdAt\": \"2026-11-12T08:15:00Z\",\n    \"suspendedAt\": null,\n    \"wallet\": {\n      \"deploymentStatus\": \"deployed\",\n      \"walletOrganisationId\": \"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f\",\n      \"isWalletProvider\": false\n    },\n    \"features\": {\n      \"enabled\": 1,\n      \"total\": 4\n    }\n  },\n  \"walletSuspension\": {\n    \"status\": \"applied\",\n    \"errorDescription\": \"string\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"organisation\": {\n    \"id\": \"6731f0c2a1b2c3d4e5f60789\",\n    \"name\": \"Acme Bank\",\n    \"location\": \"Stockholm, Sweden\",\n    \"type\": {\n      \"id\": \"64e0c1a2b3c4d5e6f7a8b9c0\",\n      \"type\": \"Banking\"\n    },\n    \"policyUrl\": \"https://acme-bank.example.com/privacy\",\n    \"status\": \"suspended\",\n    \"isPlatformOperator\": false,\n    \"superAdminCount\": 1,\n    \"createdAt\": \"2026-11-12T08:15:00Z\",\n    \"suspendedAt\": \"2026-11-12T11:00:00Z\",\n    \"wallet\": {\n      \"deploymentStatus\": \"deployed\",\n      \"walletOrganisationId\": \"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f\",\n      \"isWalletProvider\": false\n    },\n    \"features\": {\n      \"enabled\": 1,\n      \"total\": 4\n    }\n  },\n  \"walletSuspension\": {\n    \"status\": \"applied\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The request is not valid (`errorKey` `invalid_request`): for example a body that is not JSON, a member that the operation does not know, a missing required member, or a query value that is not allowed. `errorDescription` names the member.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorKey\": \"invalid_request\",\n  \"errorDescription\": \"field status must be \\\"suspended\\\" or \\\"active\\\"\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The `Authorization` header is missing, or the access token is not valid or has expired.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"403"} value={"403"}><div>

The caller cannot call the operations of a platform admin. A login of an admin who is not a platform admin (an admin of another organisation, or an admin of the platform operator organisation without the platform admin right) gets `errorKey` `not_platform_admin`. An API key gets the older body `{"Code", "Message"}`: no API key can call these operations.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><div><span className={"badge badge--info"}>anyOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></TabItem><TabItem label={"Older error body"} value={"1-item-properties"}><SchemaItem collapsible={false} name={"Code"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The HTTP status.","example":403}}></SchemaItem><SchemaItem collapsible={false} name={"Message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"What went wrong.","example":"Unauthorized access;User doesn't have enough permissions;"}}></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 403,\n  \"errorKey\": \"not_platform_admin\",\n  \"errorDescription\": \"Access denied: only a platform admin of the platform operator organisation can call this route\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"404"} value={"404"}><div>

No organisation has the ID (`errorKey` `organisation_not_found`).

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 404,\n  \"errorKey\": \"organisation_not_found\",\n  \"errorDescription\": \"The organisation does not exist\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"409"} value={"409"}><div>

The state cannot change. `errorKey`: `platform_operator_organisation` (the platform operator organisation cannot be suspended) or `organisation_deleting` (the deletion of the organisation started).

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 409,\n  \"errorKey\": \"platform_operator_organisation\",\n  \"errorDescription\": \"The platform operator organisation cannot be suspended\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      