---
id: config-create-organisation-admin
title: "Create organisation admin"
description: "Creates an admin in the organisation. The dashboard uses this operation on the Manage Team page."
sidebar_label: "Create organisation admin"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post 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"}>Create organisation admin</h1>

<MethodEndpoint method={"post"} path={"/v2/onboard/organisation/admin"}></MethodEndpoint>



Creates an admin in the organisation. The dashboard uses this operation on the Manage Team page.

The new admin gets an invitation. The `pendingInvitation` field of the admin stays `true` until the admin logs in for the first time. Set `passwordlessLoginEnabled` to `true` to let the admin log in with an EUDI Wallet in place of a password.

## Request

<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 style={{"marginTop":"1rem","marginBottom":"1rem"}}>

The admin to create.

</div></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"email"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The email address of the admin."}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The full name of the admin."}}></SchemaItem><SchemaItem collapsible={false} name={"passwordlessLoginEnabled"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the admin can log in with an EUDI Wallet (passwordless login)."}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"201"} value={"201"}><div>

The service created the admin.

</div><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"}>admin</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the admin"}}></SchemaItem><SchemaItem collapsible={false} name={"email"} required={true} schemaName={"email"} qualifierMessage={undefined} schema={{"type":"string","format":"email","description":"Admin's email address"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Full name of the admin"}}></SchemaItem><SchemaItem collapsible={false} name={"phone"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Admin's phone number"}}></SchemaItem><SchemaItem collapsible={false} name={"imageId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the admin's image"}}></SchemaItem><SchemaItem collapsible={false} name={"imageUrl"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL to the admin's image"}}></SchemaItem><SchemaItem collapsible={false} name={"externalId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"External identifier for the admin"}}></SchemaItem><SchemaItem collapsible={false} name={"identityProviderId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identity provider ID"}}></SchemaItem><SchemaItem collapsible={false} name={"roleId"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Numeric ID of the assigned role"}}></SchemaItem><SchemaItem collapsible={false} name={"roleName"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Human-readable name of the role"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>authentication</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"}}>

Configuration for authentication methods

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>password</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Configuration for password authentication

</div><SchemaItem collapsible={false} name={"enabled"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></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"}>oidcPasswordless</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Configuration for Passwordless Login with EUDI Wallet

</div><SchemaItem collapsible={false} name={"enabled"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Whether Passwordless Login is enabled for the user"}}></SchemaItem><SchemaItem collapsible={false} name={"linked"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Whether the user has linked their EUDI Wallet for Passwordless Login"}}></SchemaItem><SchemaItem collapsible={false} name={"authenticatorCredentialExchangeId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential Exchange ID of the issued iGrant.io Authenticator credential"}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"pendingInvitation"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if the admin account has a pending invitation"}}></SchemaItem><SchemaItem collapsible={false} name={"organizationId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the organization"}}></SchemaItem><SchemaItem collapsible={false} name={"organizationName"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the organization"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"admin\": {\n    \"id\": \"string\",\n    \"email\": \"user@example.com\",\n    \"name\": \"string\",\n    \"phone\": \"string\",\n    \"imageId\": \"string\",\n    \"imageUrl\": \"string\",\n    \"externalId\": \"string\",\n    \"identityProviderId\": \"string\",\n    \"roleId\": 0,\n    \"roleName\": \"string\",\n    \"authentication\": {\n      \"password\": {\n        \"enabled\": true\n      },\n      \"oidcPasswordless\": {\n        \"enabled\": true,\n        \"linked\": true,\n        \"authenticatorCredentialExchangeId\": \"string\"\n      }\n    },\n    \"pendingInvitation\": true,\n    \"organizationId\": \"string\",\n    \"organizationName\": \"string\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</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></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</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></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      