Microsoft Dynamics NAV Permission Sets API

Manage permission sets and user permissions

Documentation

Specifications

Other Resources

OpenAPI Specification

navision-permission-sets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Business Central Administration Center Accounts Permission Sets API
  description: REST API for programmatic administration of Dynamics 365 Business Central environments. Enables querying and managing production and sandbox environments, setting up administrative notifications, viewing tenant telemetry, managing apps, scheduling updates, and performing environment operations such as copy, rename, restore, and delete.
  version: '2.28'
  contact:
    name: Microsoft Dynamics Support
    email: bcsupport@microsoft.com
    url: https://dynamics.microsoft.com/support/
  license:
    name: Microsoft APIs Terms of Use
    url: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
  termsOfService: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
servers:
- url: https://api.businesscentral.dynamics.com/admin/v2.28
  description: Business Central Administration Center
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Permission Sets
  description: Manage permission sets and user permissions
paths:
  /companies({company_id})/users({user_id})/userPermissions:
    get:
      summary: List User Permissions
      description: Returns permission sets assigned to the user.
      operationId: listUserPermissions
      tags:
      - Permission Sets
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: Successfully retrieved user permissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserPermission'
              examples:
                Listuserpermissions200Example:
                  summary: Default listUserPermissions 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      roleId: '500123'
                      displayName: example_value
                      company: example_value
                      scope: System
                      appId: '500123'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: Assign a Permission Set to a User
      description: Assigns a permission set to the specified user.
      operationId: createUserPermission
      tags:
      - Permission Sets
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/user_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - roleId
              properties:
                roleId:
                  type: string
                  description: The permission set role ID
            examples:
              CreateuserpermissionRequestExample:
                summary: Default createUserPermission request
                x-microcks-default: true
                value:
                  roleId: '500123'
      responses:
        '201':
          description: Permission set assigned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserPermission'
              examples:
                Createuserpermission201Example:
                  summary: Default createUserPermission 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    roleId: '500123'
                    displayName: example_value
                    company: example_value
                    scope: System
                    appId: '500123'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/permissionSets:
    get:
      summary: List Permission Sets
      description: Returns a list of available permission sets.
      operationId: listPermissionSets
      tags:
      - Permission Sets
      parameters:
      - $ref: '#/components/parameters/company_id'
      responses:
        '200':
          description: Successfully retrieved permission sets
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PermissionSet'
              examples:
                Listpermissionsets200Example:
                  summary: Default listPermissionSets 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      roleId: '500123'
                      displayName: example_value
                      scope: System
                      appId: '500123'
                      extensionName: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          example: example_value
    UserPermission:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: abc123
        roleId:
          type: string
          description: The permission set role ID
          example: '500123'
        displayName:
          type: string
          description: The permission set display name
          example: example_value
        company:
          type: string
          description: The company name scope
          example: example_value
        scope:
          type: string
          enum:
          - System
          - Tenant
          example: System
        appId:
          type: string
          format: uuid
          example: '500123'
    PermissionSet:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: abc123
        roleId:
          type: string
          description: The permission set role ID
          example: '500123'
        displayName:
          type: string
          description: The permission set display name
          example: example_value
        scope:
          type: string
          enum:
          - System
          - Tenant
          example: System
        appId:
          type: string
          format: uuid
          example: '500123'
        extensionName:
          type: string
          example: example_value
  parameters:
    user_id:
      name: user_id
      in: path
      required: true
      description: The user security ID
      schema:
        type: string
        format: uuid
    company_id:
      name: company_id
      in: path
      required: true
      description: The unique identifier of the company
      schema:
        type: string
        format: uuid
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication via Microsoft Entra ID
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://api.businesscentral.dynamics.com/.default: Access Business Central Admin APIs
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://api.businesscentral.dynamics.com/.default: Access Business Central Admin APIs
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: Administration Center API Documentation
  url: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/administration-center-api