Microsoft Dynamics NAV Purchase Orders API

Manage purchase orders and lines

Operations 6

GET /companies({company_id})/purchaseOrders List Purchase Orders #
POST /companies({company_id})/purchaseOrders Create a Purchase Order #
GET /companies({company_id})/purchaseOrders({purchaseOrder_id}) Get a Purchase Order #
PATCH /companies({company_id})/purchaseOrders({purchaseOrder_id}) Update a Purchase Order #
DELETE /companies({company_id})/purchaseOrders({purchaseOrder_id}) Delete a Purchase Order #
GET /companies({company_id})/purchaseOrders({purchaseOrder_id})/purchaseOrderLines List Purchase Order Lines #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/navision-purchase-orders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

navision-purchase-orders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dynamics 365 Business Central API v2.0 Purchase Orders API
  description: Modern RESTful API for Microsoft Dynamics 365 Business Central, the cloud evolution of Dynamics NAV. Provides a comprehensive set of endpoints for managing customers, vendors, items, sales orders, purchase orders, accounts, journals, and other business entities. Supports OData query parameters for filtering, sorting, and pagination.
  version: '2.0'
  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/v2.0/{environment}/api/v2.0
  description: Business Central Online (Common Endpoint)
  variables:
    environment:
      default: production
      description: The name of the Business Central environment
- url: https://{server}:{port}/{instance}/api/v2.0
  description: Business Central On-Premises
  variables:
    server:
      default: localhost
      description: The on-premises server hostname
    port:
      default: '7048'
      description: The OData services port
    instance:
      default: BC
      description: The Business Central server instance name
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Purchase Orders
  description: Manage purchase orders and lines
paths:
  /companies({company_id})/purchaseOrders:
    get:
      summary: List Purchase Orders
      description: Returns a list of purchase order objects from the specified company.
      operationId: listPurchaseOrders
      tags:
      - Purchase Orders
      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'
      - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: Successfully retrieved purchase orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Listpurchaseorders200Example:
                  summary: Default listPurchaseOrders 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - '@odata.etag': example_value
                      id: abc123
                      number: example_value
                      orderDate: '2026-01-15'
                      postingDate: '2026-01-15'
                      vendorId: '500123'
                      vendorNumber: example_value
                      vendorName: example_value
                      payToName: example_value
                      payToVendorId: '500123'
                      payToVendorNumber: example_value
                      shipToName: example_value
                      shipToContact: example_value
                      buyFromAddressLine1: example_value
                      buyFromAddressLine2: example_value
                      buyFromCity: example_value
                      buyFromCountry: example_value
                      buyFromState: example_value
                      buyFromPostCode: example_value
                      currencyId: '500123'
                      currencyCode: example_value
                      pricesIncludeTax: true
                      paymentTermsId: '500123'
                      shipmentMethodId: '500123'
                      purchaser: example_value
                      requestedReceiptDate: '2026-01-15'
                      discountAmount: 42.5
                      discountAppliedBeforeTax: true
                      totalAmountExcludingTax: 42.5
                      totalTaxAmount: 42.5
                      totalAmountIncludingTax: 42.5
                      fullyReceived: true
                      status: Draft
                      lastModifiedDateTime: '2026-01-15T10:30:00Z'
                      purchaseOrderLines:
                      - {}
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: Create a Purchase Order
      description: Creates a new purchase order in the specified company.
      operationId: createPurchaseOrder
      tags:
      - Purchase Orders
      parameters:
      - $ref: '#/components/parameters/company_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderCreate'
            examples:
              CreatepurchaseorderRequestExample:
                summary: Default createPurchaseOrder request
                x-microcks-default: true
                value:
                  orderDate: '2026-01-15'
                  vendorId: '500123'
                  vendorNumber: example_value
                  currencyCode: example_value
                  pricesIncludeTax: true
                  requestedReceiptDate: '2026-01-15'
      responses:
        '201':
          description: Purchase order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Createpurchaseorder201Example:
                  summary: Default createPurchaseOrder 201 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    orderDate: '2026-01-15'
                    postingDate: '2026-01-15'
                    vendorId: '500123'
                    vendorNumber: example_value
                    vendorName: example_value
                    payToName: example_value
                    payToVendorId: '500123'
                    payToVendorNumber: example_value
                    shipToName: example_value
                    shipToContact: example_value
                    buyFromAddressLine1: example_value
                    buyFromAddressLine2: example_value
                    buyFromCity: example_value
                    buyFromCountry: example_value
                    buyFromState: example_value
                    buyFromPostCode: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    pricesIncludeTax: true
                    paymentTermsId: '500123'
                    shipmentMethodId: '500123'
                    purchaser: example_value
                    requestedReceiptDate: '2026-01-15'
                    discountAmount: 42.5
                    discountAppliedBeforeTax: true
                    totalAmountExcludingTax: 42.5
                    totalTaxAmount: 42.5
                    totalAmountIncludingTax: 42.5
                    fullyReceived: true
                    status: Draft
                    lastModifiedDateTime: '2026-01-15T10:30:00Z'
                    purchaseOrderLines:
                    - '@odata.etag': example_value
                      id: abc123
                      documentId: '500123'
                      sequence: 10
                      itemId: '500123'
                      accountId: '500123'
                      lineType: Comment
                      lineObjectNumber: example_value
                      description: A sample description.
                      description2: example_value
                      unitOfMeasureId: '500123'
                      unitOfMeasureCode: example_value
                      quantity: 42.5
                      directUnitCost: 42.5
                      discountAmount: 42.5
                      discountPercent: 42.5
                      discountAppliedBeforeTax: true
                      amountExcludingTax: 42.5
                      taxCode: example_value
                      taxPercent: 42.5
                      totalTaxAmount: 42.5
                      amountIncludingTax: 42.5
                      expectedReceiptDate: '2026-01-15'
                      receivedQuantity: 42.5
                      invoicedQuantity: 42.5
                      invoiceQuantity: 42.5
                      receiveQuantity: 42.5
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/purchaseOrders({purchaseOrder_id}):
    get:
      summary: Get a Purchase Order
      description: Retrieves a specific purchase order by ID.
      operationId: getPurchaseOrder
      tags:
      - Purchase Orders
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/purchaseOrder_id'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: Successfully retrieved purchase order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Getpurchaseorder200Example:
                  summary: Default getPurchaseOrder 200 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    orderDate: '2026-01-15'
                    postingDate: '2026-01-15'
                    vendorId: '500123'
                    vendorNumber: example_value
                    vendorName: example_value
                    payToName: example_value
                    payToVendorId: '500123'
                    payToVendorNumber: example_value
                    shipToName: example_value
                    shipToContact: example_value
                    buyFromAddressLine1: example_value
                    buyFromAddressLine2: example_value
                    buyFromCity: example_value
                    buyFromCountry: example_value
                    buyFromState: example_value
                    buyFromPostCode: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    pricesIncludeTax: true
                    paymentTermsId: '500123'
                    shipmentMethodId: '500123'
                    purchaser: example_value
                    requestedReceiptDate: '2026-01-15'
                    discountAmount: 42.5
                    discountAppliedBeforeTax: true
                    totalAmountExcludingTax: 42.5
                    totalTaxAmount: 42.5
                    totalAmountIncludingTax: 42.5
                    fullyReceived: true
                    status: Draft
                    lastModifiedDateTime: '2026-01-15T10:30:00Z'
                    purchaseOrderLines:
                    - '@odata.etag': example_value
                      id: abc123
                      documentId: '500123'
                      sequence: 10
                      itemId: '500123'
                      accountId: '500123'
                      lineType: Comment
                      lineObjectNumber: example_value
                      description: A sample description.
                      description2: example_value
                      unitOfMeasureId: '500123'
                      unitOfMeasureCode: example_value
                      quantity: 42.5
                      directUnitCost: 42.5
                      discountAmount: 42.5
                      discountPercent: 42.5
                      discountAppliedBeforeTax: true
                      amountExcludingTax: 42.5
                      taxCode: example_value
                      taxPercent: 42.5
                      totalTaxAmount: 42.5
                      amountIncludingTax: 42.5
                      expectedReceiptDate: '2026-01-15'
                      receivedQuantity: 42.5
                      invoicedQuantity: 42.5
                      invoiceQuantity: 42.5
                      receiveQuantity: 42.5
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      summary: Update a Purchase Order
      description: Updates an existing purchase order.
      operationId: updatePurchaseOrder
      tags:
      - Purchase Orders
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/purchaseOrder_id'
      - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderUpdate'
            examples:
              UpdatepurchaseorderRequestExample:
                summary: Default updatePurchaseOrder request
                x-microcks-default: true
                value:
                  orderDate: '2026-01-15'
                  vendorId: '500123'
                  vendorNumber: example_value
                  currencyCode: example_value
                  pricesIncludeTax: true
                  requestedReceiptDate: '2026-01-15'
      responses:
        '200':
          description: Purchase order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Updatepurchaseorder200Example:
                  summary: Default updatePurchaseOrder 200 response
                  x-microcks-default: true
                  value:
                    '@odata.etag': example_value
                    id: abc123
                    number: example_value
                    orderDate: '2026-01-15'
                    postingDate: '2026-01-15'
                    vendorId: '500123'
                    vendorNumber: example_value
                    vendorName: example_value
                    payToName: example_value
                    payToVendorId: '500123'
                    payToVendorNumber: example_value
                    shipToName: example_value
                    shipToContact: example_value
                    buyFromAddressLine1: example_value
                    buyFromAddressLine2: example_value
                    buyFromCity: example_value
                    buyFromCountry: example_value
                    buyFromState: example_value
                    buyFromPostCode: example_value
                    currencyId: '500123'
                    currencyCode: example_value
                    pricesIncludeTax: true
                    paymentTermsId: '500123'
                    shipmentMethodId: '500123'
                    purchaser: example_value
                    requestedReceiptDate: '2026-01-15'
                    discountAmount: 42.5
                    discountAppliedBeforeTax: true
                    totalAmountExcludingTax: 42.5
                    totalTaxAmount: 42.5
                    totalAmountIncludingTax: 42.5
                    fullyReceived: true
                    status: Draft
                    lastModifiedDateTime: '2026-01-15T10:30:00Z'
                    purchaseOrderLines:
                    - '@odata.etag': example_value
                      id: abc123
                      documentId: '500123'
                      sequence: 10
                      itemId: '500123'
                      accountId: '500123'
                      lineType: Comment
                      lineObjectNumber: example_value
                      description: A sample description.
                      description2: example_value
                      unitOfMeasureId: '500123'
                      unitOfMeasureCode: example_value
                      quantity: 42.5
                      directUnitCost: 42.5
                      discountAmount: 42.5
                      discountPercent: 42.5
                      discountAppliedBeforeTax: true
                      amountExcludingTax: 42.5
                      taxCode: example_value
                      taxPercent: 42.5
                      totalTaxAmount: 42.5
                      amountIncludingTax: 42.5
                      expectedReceiptDate: '2026-01-15'
                      receivedQuantity: 42.5
                      invoicedQuantity: 42.5
                      invoiceQuantity: 42.5
                      receiveQuantity: 42.5
        '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 Purchase Order
      description: Deletes a purchase order by ID.
      operationId: deletePurchaseOrder
      tags:
      - Purchase Orders
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/purchaseOrder_id'
      responses:
        '204':
          description: Purchase order deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /companies({company_id})/purchaseOrders({purchaseOrder_id})/purchaseOrderLines:
    get:
      summary: List Purchase Order Lines
      description: Returns a list of purchase order line items.
      operationId: listPurchaseOrderLines
      tags:
      - Purchase Orders
      parameters:
      - $ref: '#/components/parameters/company_id'
      - $ref: '#/components/parameters/purchaseOrder_id'
      - $ref: '#/components/parameters/top'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successfully retrieved purchase order lines
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PurchaseOrderLine'
              examples:
                Listpurchaseorderlines200Example:
                  summary: Default listPurchaseOrderLines 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - '@odata.etag': example_value
                      id: abc123
                      documentId: '500123'
                      sequence: 10
                      itemId: '500123'
                      accountId: '500123'
                      lineType: Comment
                      lineObjectNumber: example_value
                      description: A sample description.
                      description2: example_value
                      unitOfMeasureId: '500123'
                      unitOfMeasureCode: example_value
                      quantity: 42.5
                      directUnitCost: 42.5
                      discountAmount: 42.5
                      discountPercent: 42.5
                      discountAppliedBeforeTax: true
                      amountExcludingTax: 42.5
                      taxCode: example_value
                      taxPercent: 42.5
                      totalTaxAmount: 42.5
                      amountIncludingTax: 42.5
                      expectedReceiptDate: '2026-01-15'
                      receivedQuantity: 42.5
                      invoicedQuantity: 42.5
                      invoiceQuantity: 42.5
                      receiveQuantity: 42.5
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    PurchaseOrderLine:
      type: object
      properties:
        '@odata.etag':
          type: string
          example: example_value
        id:
          type: string
          format: uuid
          example: abc123
        documentId:
          type: string
          format: uuid
          example: '500123'
        sequence:
          type: integer
          example: 10
        itemId:
          type: string
          format: uuid
          example: '500123'
        accountId:
          type: string
          format: uuid
          example: '500123'
        lineType:
          type: string
          enum:
          - Comment
          - Account
          - Item
          - Fixed Asset
          - Charge
          example: Comment
        lineObjectNumber:
          type: string
          maxLength: 20
          example: example_value
        description:
          type: string
          maxLength: 100
          example: A sample description.
        description2:
          type: string
          maxLength: 50
          example: example_value
        unitOfMeasureId:
          type: string
          format: uuid
          example: '500123'
        unitOfMeasureCode:
          type: string
          maxLength: 10
          example: example_value
        quantity:
          type: number
          format: decimal
          example: 42.5
        directUnitCost:
          type: number
          format: decimal
          example: 42.5
        discountAmount:
          type: number
          format: decimal
          example: 42.5
        discountPercent:
          type: number
          format: decimal
          example: 42.5
        discountAppliedBeforeTax:
          type: boolean
          example: true
        amountExcludingTax:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        taxCode:
          type: string
          maxLength: 20
          example: example_value
        taxPercent:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        totalTaxAmount:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        amountIncludingTax:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        expectedReceiptDate:
          type: string
          format: date
          example: '2026-01-15'
        receivedQuantity:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        invoicedQuantity:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        invoiceQuantity:
          type: number
          format: decimal
          example: 42.5
        receiveQuantity:
          type: number
          format: decimal
          example: 42.5
    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
    PurchaseOrderCreate:
      type: object
      properties:
        orderDate:
          type: string
          format: date
          example: '2026-01-15'
        vendorId:
          type: string
          format: uuid
          example: '500123'
        vendorNumber:
          type: string
          maxLength: 20
          example: example_value
        currencyCode:
          type: string
          maxLength: 10
          example: example_value
        pricesIncludeTax:
          type: boolean
          example: true
        requestedReceiptDate:
          type: string
          format: date
          example: '2026-01-15'
    PurchaseOrder:
      type: object
      properties:
        '@odata.etag':
          type: string
          example: example_value
        id:
          type: string
          format: uuid
          description: The unique identifier of the purchase order
          example: abc123
        number:
          type: string
          description: The purchase order number
          maxLength: 20
          example: example_value
        orderDate:
          type: string
          format: date
          description: The order date
          example: '2026-01-15'
        postingDate:
          type: string
          format: date
          description: The posting date
          example: '2026-01-15'
        vendorId:
          type: string
          format: uuid
          description: The vendor ID
          example: '500123'
        vendorNumber:
          type: string
          description: The vendor number
          maxLength: 20
          example: example_value
        vendorName:
          type: string
          description: The vendor name
          maxLength: 100
          example: example_value
        payToName:
          type: string
          maxLength: 100
          example: example_value
        payToVendorId:
          type: string
          format: uuid
          example: '500123'
        payToVendorNumber:
          type: string
          maxLength: 20
          example: example_value
        shipToName:
          type: string
          maxLength: 100
          example: example_value
        shipToContact:
          type: string
          maxLength: 100
          example: example_value
        buyFromAddressLine1:
          type: string
          maxLength: 100
          example: example_value
        buyFromAddressLine2:
          type: string
          maxLength: 50
          example: example_value
        buyFromCity:
          type: string
          maxLength: 30
          example: example_value
        buyFromCountry:
          type: string
          maxLength: 10
          example: example_value
        buyFromState:
          type: string
          maxLength: 20
          example: example_value
        buyFromPostCode:
          type: string
          maxLength: 20
          example: example_value
        currencyId:
          type: string
          format: uuid
          example: '500123'
        currencyCode:
          type: string
          maxLength: 10
          example: example_value
        pricesIncludeTax:
          type: boolean
          example: true
        paymentTermsId:
          type: string
          format: uuid
          example: '500123'
        shipmentMethodId:
          type: string
          format: uuid
          example: '500123'
        purchaser:
          type: string
          maxLength: 20
          example: example_value
        requestedReceiptDate:
          type: string
          format: date
          example: '2026-01-15'
        discountAmount:
          type: number
          format: decimal
          example: 42.5
        discountAppliedBeforeTax:
          type: boolean
          example: true
        totalAmountExcludingTax:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        totalTaxAmount:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        totalAmountIncludingTax:
          type: number
          format: decimal
          readOnly: true
          example: 42.5
        fullyReceived:
          type: boolean
          readOnly: true
          example: true
        status:
          type: string
          enum:
          - Draft
          - In Review
          - Open
          - Released
          readOnly: true
          example: Draft
        lastModifiedDateTime:
          type: string
          format: date-time
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        purchaseOrderLines:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLine'
          example: []
    PurchaseOrderUpdate:
      type: object
      properties:
        orderDate:
          type: string
          format: date
          example: '2026-01-15'
        vendorId:
          type: string
          format: uuid
          example: '500123'
        vendorNumber:
          type: string
          maxLength: 20
          example: example_value
        currencyCode:
          type: string
          maxLength: 10
          example: example_value
        pricesIncludeTax:
          type: boolean
          example: true
        requestedReceiptDate:
          type: string
          format: date
          example: '2026-01-15'
  parameters:
    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
    ifMatch:
      name: If-Match
      in: header
      required: true
      description: ETag value for optimistic concurrency control
      schema:
        type: string
    skip:
      name: $skip
      in: query
      description: Number of items to skip
      schema:
        type: integer
        minimum: 0
    filter:
      name: $filter
      in: query
      description: OData filter 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
    orderby:
      name: $orderby
      in: query
      description: OData order by expression
      schema:
        type: string
    purchaseOrder_id:
      name: purchaseOrder_id
      in: path
      required: true
      description: The unique identifier of the purchase order
      schema:
        type: string
        format: uuid
    expand:
      name: $expand
      in: query
      description: Related entities to expand inline
      schema:
        type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    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'
  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 APIs
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://api.businesscentral.dynamics.com/.default: Access Business Central APIs
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token obtained from Microsoft Entra ID
externalDocs:
  description: Business Central API v2.0 Documentation
  url: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/