Microsoft Dynamics NAV Vendors API

Manage vendor records

Documentation

Specifications

Other Resources

OpenAPI Specification

navision-vendors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Business Central Administration Center Accounts Vendors 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: Vendors
  description: Manage vendor records
paths:
  /companies({company_id})/vendors:
    get:
      summary: List Vendors
      description: Returns a list of vendor objects from the specified company.
      operationId: listVendors
      tags:
      - Vendors
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/top'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successfully retrieved vendors
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Vendor'
              examples:
                Listvendors200Example:
                  summary: Default listVendors 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - '@odata.etag': example_value
                      id: abc123
                      number: example_value
                      displayName: example_value
                      addressLine1: example_value
                      addressLine2: example_value
                      city: example_value
                      state: example_value
                      country: example_value
                      postalCode: example_value
                      phoneNumber: example_value
                      email: user@example.com
                      website: example_value
                      taxRegistrationNumber: example_value
                      currencyId: '500123'
                      currencyCode: example_value
                      paymentTermsId: '500123'
                      paymentMethodId: '500123'
                      taxLiable: true
                      blocked: ' '
                      balance: 42.5
                      lastModifiedDateTime: '2026-01-15T10:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: Create a Vendor
      description: Creates a new vendor object in the specified company.
      operationId: createVendor
      tags:
      - Vendors
      parameters:
      - $ref: '#/components/parameters/company_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VendorCreate'
            examples:
              CreatevendorRequestExample:
                summary: Default createVendor request
                x-microcks-default: true
                value:
                  number: example_value
                  displayName: example_value
                  addressLine1: example_value
                  addressLine2: example_value
                  city: example_value
                  state: example_value
                  country: example_value
                  postalCode: example_value
                  phoneNumber: example_value
                  email: user@example.com
                  website: example_value
                  taxRegistrationNumber: example_value
                  currencyCode: example_value
                  taxLiable: true
                  blocked: ' '
      responses:
        '201':
          description: Vendor created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
              examples:
                Createvendor201Example:
                  summary: Default createVendor 201 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    displayName: example_value
                    addressLine1: example_value
                    addressLine2: example_value
                    city: example_value
                    state: example_value
                    country: example_value
                    postalCode: example_value
                    phoneNumber: example_value
                    email: user@example.com
                    website: example_value
                    taxRegistrationNumber: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    paymentTermsId: '500123'
                    paymentMethodId: '500123'
                    taxLiable: true
                    blocked: ' '
                    balance: 42.5
                    lastModifiedDateTime: '2026-01-15T10:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/vendors({vendor_id}):
    get:
      summary: Get a Vendor
      description: Retrieves a specific vendor by ID.
      operationId: getVendor
      tags:
      - Vendors
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/vendor_id'
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successfully retrieved vendor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
              examples:
                Getvendor200Example:
                  summary: Default getVendor 200 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    displayName: example_value
                    addressLine1: example_value
                    addressLine2: example_value
                    city: example_value
                    state: example_value
                    country: example_value
                    postalCode: example_value
                    phoneNumber: example_value
                    email: user@example.com
                    website: example_value
                    taxRegistrationNumber: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    paymentTermsId: '500123'
                    paymentMethodId: '500123'
                    taxLiable: true
                    blocked: ' '
                    balance: 42.5
                    lastModifiedDateTime: '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 Vendor
      description: Updates an existing vendor object.
      operationId: updateVendor
      tags:
      - Vendors
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/vendor_id'
      - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VendorUpdate'
            examples:
              UpdatevendorRequestExample:
                summary: Default updateVendor request
                x-microcks-default: true
                value:
                  displayName: example_value
                  addressLine1: example_value
                  addressLine2: example_value
                  city: example_value
                  state: example_value
                  country: example_value
                  postalCode: example_value
                  phoneNumber: example_value
                  email: user@example.com
                  website: example_value
                  taxLiable: true
                  blocked: ' '
      responses:
        '200':
          description: Vendor updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
              examples:
                Updatevendor200Example:
                  summary: Default updateVendor 200 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    displayName: example_value
                    addressLine1: example_value
                    addressLine2: example_value
                    city: example_value
                    state: example_value
                    country: example_value
                    postalCode: example_value
                    phoneNumber: example_value
                    email: user@example.com
                    website: example_value
                    taxRegistrationNumber: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    paymentTermsId: '500123'
                    paymentMethodId: '500123'
                    taxLiable: true
                    blocked: ' '
                    balance: 42.5
                    lastModifiedDateTime: '2026-01-15T10:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      summary: Delete a Vendor
      description: Deletes a vendor by ID.
      operationId: deleteVendor
      tags:
      - Vendors
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/vendor_id'
      responses:
        '204':
          description: Vendor deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    VendorUpdate:
      type: object
      properties:
        displayName:
          type: string
          maxLength: 100
          example: example_value
        addressLine1:
          type: string
          maxLength: 100
          example: example_value
        addressLine2:
          type: string
          maxLength: 50
          example: example_value
        city:
          type: string
          maxLength: 30
          example: example_value
        state:
          type: string
          maxLength: 20
          example: example_value
        country:
          type: string
          maxLength: 10
          example: example_value
        postalCode:
          type: string
          maxLength: 20
          example: example_value
        phoneNumber:
          type: string
          maxLength: 30
          example: example_value
        email:
          type: string
          maxLength: 80
          example: user@example.com
        website:
          type: string
          maxLength: 80
          example: example_value
        taxLiable:
          type: boolean
          example: true
        blocked:
          type: string
          enum:
          - ' '
          - Payment
          - All
          example: ' '
    Vendor:
      type: object
      properties:
        '@odata.etag':
          type: string
          example: example_value
        id:
          type: string
          format: uuid
          description: The unique identifier of the vendor
          example: abc123
        number:
          type: string
          description: The vendor number
          maxLength: 20
          example: example_value
        displayName:
          type: string
          description: The vendor display name
          maxLength: 100
          example: example_value
        addressLine1:
          type: string
          description: First line of the address
          maxLength: 100
          example: example_value
        addressLine2:
          type: string
          description: Second line of the address
          maxLength: 50
          example: example_value
        city:
          type: string
          description: The city
          maxLength: 30
          example: example_value
        state:
          type: string
          description: The state or province code
          maxLength: 20
          example: example_value
        country:
          type: string
          description: The country/region code
          maxLength: 10
          example: example_value
        postalCode:
          type: string
          description: The postal code
          maxLength: 20
          example: example_value
        phoneNumber:
          type: string
          description: The phone number
          maxLength: 30
          example: example_value
        email:
          type: string
          description: The email address
          maxLength: 80
          example: user@example.com
        website:
          type: string
          description: The website URL
          maxLength: 80
          example: example_value
        taxRegistrationNumber:
          type: string
          description: The tax registration number
          maxLength: 20
          example: example_value
        currencyId:
          type: string
          format: uuid
          description: The currency ID
          example: '500123'
        currencyCode:
          type: string
          description: The currency code
          maxLength: 10
          example: example_value
        paymentTermsId:
          type: string
          format: uuid
          description: The payment terms ID
          example: '500123'
        paymentMethodId:
          type: string
          format: uuid
          description: The payment method ID
          example: '500123'
        taxLiable:
          type: boolean
          description: Whether the vendor is tax liable
          example: true
        blocked:
          type: string
          description: Whether the vendor is blocked
          enum:
          - ' '
          - Payment
          - All
          example: ' '
        balance:
          type: number
          format: decimal
          description: The vendor balance
          readOnly: true
          example: 42.5
        lastModifiedDateTime:
          type: string
          format: date-time
          readOnly: true
          example: '2026-01-15T10:30:00Z'
    VendorCreate:
      type: object
      required:
      - displayName
      properties:
        number:
          type: string
          maxLength: 20
          example: example_value
        displayName:
          type: string
          maxLength: 100
          example: example_value
        addressLine1:
          type: string
          maxLength: 100
          example: example_value
        addressLine2:
          type: string
          maxLength: 50
          example: example_value
        city:
          type: string
          maxLength: 30
          example: example_value
        state:
          type: string
          maxLength: 20
          example: example_value
        country:
          type: string
          maxLength: 10
          example: example_value
        postalCode:
          type: string
          maxLength: 20
          example: example_value
        phoneNumber:
          type: string
          maxLength: 30
          example: example_value
        email:
          type: string
          maxLength: 80
          example: user@example.com
        website:
          type: string
          maxLength: 80
          example: example_value
        taxRegistrationNumber:
          type: string
          maxLength: 20
          example: example_value
        currencyCode:
          type: string
          maxLength: 10
          example: example_value
        taxLiable:
          type: boolean
          example: true
        blocked:
          type: string
          enum:
          - ' '
          - Payment
          - All
          example: ' '
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: A stable error code
            message:
              type: string
              description: A human-readable error message
          example: example_value
  parameters:
    ifMatch:
      name: If-Match
      in: header
      required: true
      description: ETag value for optimistic concurrency control
      schema:
        type: string
    filter:
      name: $filter
      in: query
      description: OData filter expression
      schema:
        type: string
    orderby:
      name: $orderby
      in: query
      description: OData order by expression
      schema:
        type: string
    company_id:
      name: company_id
      in: path
      required: true
      description: The unique identifier of the company
      schema:
        type: string
        format: uuid
    vendor_id:
      name: vendor_id
      in: path
      required: true
      description: The unique identifier of the vendor
      schema:
        type: string
        format: uuid
    skip:
      name: $skip
      in: query
      description: Number of items to skip
      schema:
        type: integer
        minimum: 0
    select:
      name: $select
      in: query
      description: Comma-separated list of properties to include in the response
      schema:
        type: string
    top:
      name: $top
      in: query
      description: Maximum number of items to return
      schema:
        type: integer
        minimum: 0
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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