Microsoft Dynamics NAV Users API

Manage Business Central users

Documentation

Specifications

Other Resources

OpenAPI Specification

navision-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Business Central Administration Center Accounts Users 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: Users
  description: Manage Business Central users
paths:
  /companies({company_id})/users:
    get:
      summary: List Users
      description: Returns a list of Business Central users.
      operationId: listUsers
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/company_id'
      responses:
        '200':
          description: Successfully retrieved users
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
              examples:
                Listusers200Example:
                  summary: Default listUsers 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - userSecurityId: '500123'
                      userName: example_value
                      displayName: example_value
                      state: Enabled
                      expiryDate: '2026-01-15T10:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/users({user_id}):
    get:
      summary: Get a User
      description: Retrieves a specific user by user security ID.
      operationId: getUser
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: Successfully retrieved user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples:
                Getuser200Example:
                  summary: Default getUser 200 response
                  x-microcks-default: true
                  value:
                    userSecurityId: '500123'
                    userName: example_value
                    displayName: example_value
                    state: Enabled
                    expiryDate: '2026-01-15T10:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      summary: Update a User
      description: Updates properties of a Business Central user.
      operationId: updateUser
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/user_id'
      - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdate'
            examples:
              UpdateuserRequestExample:
                summary: Default updateUser request
                x-microcks-default: true
                value:
                  state: Enabled
                  expiryDate: '2026-01-15T10:30:00Z'
      responses:
        '200':
          description: User updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples:
                Updateuser200Example:
                  summary: Default updateUser 200 response
                  x-microcks-default: true
                  value:
                    userSecurityId: '500123'
                    userName: example_value
                    displayName: example_value
                    state: Enabled
                    expiryDate: '2026-01-15T10:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/users/Microsoft.NAV.getNewUsersFromOffice365:
    post:
      summary: Get New Users From Office 365
      description: Retrieves new users or updated user information from Office 365. Runs synchronously. Not supported with S2S authentication.
      operationId: getNewUsersFromOffice365
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/company_id'
      responses:
        '200':
          description: Users retrieved successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/users/Microsoft.NAV.getNewUsersFromOffice365Async:
    post:
      summary: Get New Users From Office 365 (async)
      description: Schedules a background job to retrieve new users from Office 365. Returns a link to the scheduled job for tracking progress. Not supported with S2S authentication.
      operationId: getNewUsersFromOffice365Async
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/company_id'
      responses:
        '202':
          description: Background job scheduled
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    ifMatch:
      name: If-Match
      in: header
      required: true
      description: ETag value for optimistic concurrency control
      schema:
        type: string
    company_id:
      name: company_id
      in: path
      required: true
      description: The unique identifier of the company
      schema:
        type: string
        format: uuid
    user_id:
      name: user_id
      in: path
      required: true
      description: The user security ID
      schema:
        type: string
        format: uuid
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      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
    UserUpdate:
      type: object
      properties:
        state:
          type: string
          enum:
          - Enabled
          - Disabled
          example: Enabled
        expiryDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    User:
      type: object
      properties:
        userSecurityId:
          type: string
          format: uuid
          description: The user security ID
          example: '500123'
        userName:
          type: string
          description: The user name
          example: example_value
        displayName:
          type: string
          description: The user display name
          example: example_value
        state:
          type: string
          description: The user state
          enum:
          - Enabled
          - Disabled
          example: Enabled
        expiryDate:
          type: string
          format: date-time
          description: The user expiry date
          example: '2026-01-15T10:30:00Z'
  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