Basware PurchaseRequisitions API

The PurchaseRequisitions API from Basware — 2 operation(s) for purchaserequisitions.

OpenAPI Specification

basware-purchaserequisitions-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Basware OAUTH2 authentication APIs AccountingDocuments PurchaseRequisitions API
  description: "**Using OAUTH2.0 authentication:**\n\nGet API access token from api.basware.com/tokens\n1. Using client id and client secret, which you can obtain from Basware. \n2. Specify which APIs can be accessed by using the token e.g. Read only access to vendors API only (these are called scopes). Available scopes are listed at <https://developer.basware.com/api/p2p/manual#AccessRights>. \n3. Each token has an expiration time, until which it can be used to call APIs.\n\nWhen using OAUTH2 authentication, you need to pass the OAUTH2 authentication token when calling Basware API endpoints. Available Basware API operations are documented at <https://api.basware.com/swagger>. \n\nSee the Basware API developer site at <https://developer.basware.com/api/p2p/manual#Authentication> for more details on API authentication."
  version: 1.0.0
  x-logo:
    url: https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png
tags:
- name: PurchaseRequisitions
paths:
  /v1/purchaseRequisitions:
    get:
      tags:
      - PurchaseRequisitions
      summary: Returns purchase requisitions posted to Basware API.
      description: 'Note: Updating data for existing requisitions is not supported. Posting updates will result in errors in errorFeedbacks -interface and data will not be updated in Alusta Purchase. The data will still be accepted and updated in Basware API. Because of this updates to existing purchase requisition records will result in inconsistent data between GET operations to Basware API and Alusta Purchase.'
      parameters:
      - name: pageSize
        in: query
        description: A limit for the number of items to be returned for one request. Limit can range between 1 and 100 items.
        schema:
          type: integer
          format: int32
          default: 100
      - name: companyCode
        in: query
        description: Company filter. Returns items for specific company.
        schema:
          type: string
          default: ''
      - name: lastUpdated
        in: query
        description: Date Filter. Returns items that have been updated after specified date.
        schema:
          type: string
          format: date-time
      - name: x-amz-meta-continuationtoken
        in: header
        description: Used to get next page of results when item count indicated by 'pageSize' is exceeded. A token is returned in header (not body) parameter 'X-amz-meta-continuationToken' of the response whenever there are more records to fetch. Post the received value here in a new HEADER parameter on the next GET request to receive the next page of results. When getting the next page of results, you must include the same query parameters that were used when getting the first page.
        schema:
          type: string
        example: 1c121d65-110b-4027-b306-e7525d4e716f
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionResponse'
        '401':
          description: Unauthorized
        '404':
          description: Not found. Request was successful and no records were found.
        '500':
          description: Unexpected error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
    post:
      tags:
      - PurchaseRequisitions
      summary: Creates new purchase requisition(s). P2P Purchase does not allow updates to purchase requisitions after import.
      description: " Notes: \r\n 1. Any referenced vendors, users, etc. need to exist in P2P when the purchase requisition is imported. \r\n 2. Updating data for existing requisitions is not supported. Posting updates will result in errors in errorFeedbacks -interface and data will not be updated in Alusta Purchase. The data will still be accepted and updated in Basware API. Because of this updates to existing purchase requisition records will result in inconsistent data between GET operations to Basware API and Alusta Purchase.\r\n \r\nPlease see section \"[Usage scenario 4: Import and export procurement data](https://developer.basware.com/api/p2p/manual#usage4)\" for details on implementing this API. Check out also the [example JSONs using a minimal feasible set of fields](https://developer.basware.com/api/p2p/templates) from the developer site."
      parameters:
      - name: Content-Type
        in: header
        description: Specifies the media type of the resource. Value application/json is supported.
        schema:
          type: string
        example: application/json
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseRequisitionEntity'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseRequisitionEntity'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseRequisitionEntity'
        '400':
          description: Bad request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
        '401':
          description: Unauthorized
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
        '500':
          description: Unexpected error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
    delete:
      tags:
      - PurchaseRequisitions
      summary: Deletes data from Basware API. For manual one-time operations.
      description: "For manual one-time operations only, such as a manual clean-up to remove test data generated during API integration development. Only removes records from API layer. \r\nDeletion in target systems needs to be done separately using the data deletion mechanisms available in each of the target system in addition to deleting the data in Basware API."
      requestBody:
        description: "Contains the body of the request.\r\n            Either externalCode or lastUpdated -field is required. If both values are provided, externalCode will have the priority."
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DeleteRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DeleteRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DeleteRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
        '202':
          description: RequestAccepted
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
        '400':
          description: BadRequest
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
        '401':
          description: Unauthorized
        '500':
          description: Unexpected error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
  /v1/purchaseRequisitions/{externalCode}:
    get:
      tags:
      - PurchaseRequisitions
      summary: Returns single purchase requisition by externalCode -identifier.
      description: 'Note: Updating data for existing requisitions is not supported. Posting updates will result in errors in errorFeedbacks -interface and data will not be updated in Alusta Purchase. The data will still be accepted and updated in Basware API. Because of this updates to existing purchase requisition records will result in inconsistent data between GET operations to Basware API and Alusta Purchase.'
      parameters:
      - name: externalCode
        in: path
        description: ExternalCode of the entity to be fetched
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
            text/json:
              schema:
                $ref: '#/components/schemas/PurchaseRequisitionEntity'
        '401':
          description: Unauthorized
        '404':
          description: Not found. Request was successful and no records were found.
        '500':
          description: Unexpected error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
components:
  schemas:
    RequisitionCodingRow:
      required:
      - externalCode
      type: object
      properties:
        externalCode:
          maxLength: 36
          minLength: 1
          type: string
          description: The coding row number in the external system.
          example: 1547e437-1231-ad32-dff2-132985aae212
        accountCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Defines code for the account. If empty, defaults based on item's purchasing category.
          nullable: true
          example: '10017'
        accountName:
          maxLength: 2000
          minLength: 0
          type: string
          description: Defines name for the account. If empty, defaults based on the item's purchasing category.
          nullable: true
          example: IT equipment costs
        costCenterCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Cost center code. If empty, the requisition owner's default cost center is used.
          nullable: true
          example: '23800'
        costCenterName:
          maxLength: 2000
          minLength: 0
          type: string
          description: Cost center name.
          nullable: true
          example: Lift engine research
        projectCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Project code.
          nullable: true
          example: ''
        projectName:
          maxLength: 255
          minLength: 0
          type: string
          description: Project name.
          nullable: true
          example: ''
        fixedAssetCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Fixed asset code.
          nullable: true
          example: ''
        fixedAssetName:
          maxLength: 250
          minLength: 0
          type: string
          description: Fixed asset name.
          nullable: true
          example: ''
        fixedAssetSubCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Fixed asset sub code.
          nullable: true
          example: ''
        fixedAssetSubName:
          maxLength: 250
          minLength: 0
          type: string
          description: Fixed asset sub name.
          nullable: true
          example: ''
        internalOrderCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Internal order code.
          nullable: true
          example: ''
        internalOrderName:
          maxLength: 250
          minLength: 0
          type: string
          description: Internal order name.
          nullable: true
          example: ''
        profitCenterCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Profit center code.
          nullable: true
          example: ''
        profitCenterName:
          maxLength: 250
          minLength: 0
          type: string
          description: Profit center name.
          nullable: true
          example: ''
        businessUnitCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Business unit code.
          nullable: true
          example: ''
        businessUnitName:
          maxLength: 250
          minLength: 0
          type: string
          description: Business unit name.
          nullable: true
          example: ''
        projectSubCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Project sub code.
          nullable: true
          example: ''
        projectSubName:
          maxLength: 250
          minLength: 0
          type: string
          description: Project sub name.
          nullable: true
          example: ''
        employeeCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Employee code. If empty, defaults to requisition owner's employee code.
          nullable: true
          example: '815722'
        employeeName:
          maxLength: 250
          minLength: 0
          type: string
          description: Employee name. If empty, defaults to requisition owner's name.
          nullable: true
          example: Jim Green
        vehicleName:
          maxLength: 255
          minLength: 0
          type: string
          description: Vehicle name.
          nullable: true
          example: ''
        vehicleNumber:
          maxLength: 25
          minLength: 0
          type: string
          description: Vehicle number.
          nullable: true
          example: ''
        salesOrderCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Sales order code.
          nullable: true
          example: ''
        salesOrderName:
          maxLength: 250
          minLength: 0
          type: string
          description: Sales order name.
          nullable: true
          example: ''
        salesOrderSubCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Sales order sub code.
          nullable: true
          example: ''
        salesOrderSubName:
          maxLength: 250
          minLength: 0
          type: string
          description: Sales order sub name.
          nullable: true
          example: ''
        customerCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Customer code.
          nullable: true
          example: ''
        customerName:
          maxLength: 250
          minLength: 0
          type: string
          description: Customer name.
          nullable: true
          example: ''
        accAssignmentCategoryCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Account assignment category code. If empty, defaults based on the item's purchasing category.
          nullable: true
          example: ''
        accAssignmentCategoryName:
          maxLength: 250
          minLength: 0
          type: string
          description: Account assignment category name. If empty, defaults based on the item's purchasing category.
          nullable: true
          example: ''
        budgetCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Defines a code for the budget.
          nullable: true
          example: B36782
        budgetName:
          maxLength: 250
          minLength: 0
          type: string
          description: Defines name for the budget.
          nullable: true
          example: IT equipment 2020
        serviceCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Service code.
          nullable: true
          example: ''
        serviceName:
          maxLength: 250
          minLength: 0
          type: string
          description: Service name.
          nullable: true
          example: ''
        businessAreaCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Business area code.
          nullable: true
          example: ''
        businessAreaName:
          maxLength: 250
          minLength: 0
          type: string
          description: Business area name.
          nullable: true
          example: ''
        workOrderCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Work order code.
          nullable: true
          example: ''
        workOrderName:
          maxLength: 250
          minLength: 0
          type: string
          description: Work order name.
          nullable: true
          example: ''
        workOrderSubCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Work order sub code.
          nullable: true
          example: ''
        workOrderSubName:
          maxLength: 250
          minLength: 0
          type: string
          description: Work order sub name.
          nullable: true
          example: ''
        distributionCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Distribution code.
          nullable: true
          example: ''
        distributionMode:
          maxLength: 250
          minLength: 0
          type: string
          description: Distribution mode.
          nullable: true
          example: ''
        dimCode1:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode1-10 are often used for additional, customer-specific, coding dimensions. Specifies the dimension code.
          nullable: true
          example: '236710'
        dimCode2:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode2
          nullable: true
          example: ''
        dimCode3:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode3
          nullable: true
          example: ''
        dimCode4:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode4
          nullable: true
          example: ''
        dimCode5:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode5
          nullable: true
          example: ''
        dimCode6:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode6
          nullable: true
          example: ''
        dimCode7:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode7
          nullable: true
          example: ''
        dimCode8:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode8
          nullable: true
          example: ''
        dimCode9:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode9
          nullable: true
          example: ''
        dimCode10:
          maxLength: 25
          minLength: 0
          type: string
          description: DimCode10
          nullable: true
          example: ''
        dimName1:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName1-10 is used for additional, customer-specific, coding dimensions. Specifies the dimension name.
          nullable: true
          example: Maple street office
        dimName2:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName2
          nullable: true
          example: ''
        dimName3:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName3
          nullable: true
          example: ''
        dimName4:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName4
          nullable: true
          example: ''
        dimName5:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName5
          nullable: true
          example: ''
        dimName6:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName6
          nullable: true
          example: ''
        dimName7:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName7
          nullable: true
          example: ''
        dimName8:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName8
          nullable: true
          example: ''
        dimName9:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName9
          nullable: true
          example: ''
        dimName10:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName10
          nullable: true
          example: ''
        num1:
          type: number
          description: Num1-5 are custom fields in the business document.
          format: double
          nullable: true
        num2:
          type: number
          description: Num2
          format: double
          nullable: true
        num3:
          type: number
          description: Num3
          format: double
          nullable: true
        num4:
          type: number
          description: Num4
          format: double
          nullable: true
        num5:
          type: number
          description: Num5
          format: double
          nullable: true
        text1:
          maxLength: 250
          minLength: 0
          type: string
          description: Text1-5 are custom fields in the business document.
          nullable: true
          example: ''
        text2:
          maxLength: 250
          minLength: 0
          type: string
          description: Text2
          nullable: true
          example: ''
        text3:
          maxLength: 250
          minLength: 0
          type: string
          description: Text3
          nullable: true
          example: ''
        text4:
          maxLength: 250
          minLength: 0
          type: string
          description: Text4
          nullable: true
          example: ''
        text5:
          maxLength: 250
          minLength: 0
          type: string
          description: Text5
          nullable: true
          example: ''
        date1:
          type: string
          description: Date1-5 are custom fields in the business document.
          format: date-time
          nullable: true
        date2:
          type: string
          description: Date2
          format: date-time
          nullable: true
        date3:
          type: string
          description: Date3
          format: date-time
          nullable: true
        date4:
          type: string
          description: Date4
          format: date-time
          nullable: true
        date5:
          type: string
          description: Date5
          format: date-time
          nullable: true
      additionalProperties: false
    PurchaseRequisitionEntity:
      required:
      - extDocumentNumber
      - externalCode
      - lines
      - purpose
      type: object
      properties:
        externalCode:
          maxLength: 36
          minLength: 1
          type: string
          description: External document identifier that is used as a key in API. This number must be unique in Basware P2P, and cannot be updated after the first import.
          example: 987236sd-sd31-3562-1239-9asffa986asd
        extDocumentNumber:
          maxLength: 100
          minLength: 2
          type: string
          description: Requisition document number from an external system. Needs to be unique. This is visible and searchable in Basware Purchase.
          example: REQ000213786
        sendToProcess:
          type: boolean
          description: Indicates if the requisition is automatically sent to approval process. If false, requisition is saved as draft.
          nullable: true
          example: false
        organizationUnitCode:
          maxLength: 100
          minLength: 0
          type: string
          description: The code that identifies the buyer organization, as defined in Basware P2P Administration. Alternatively, organizationIdentifier can be used. Both cannot be used simultaneously.
          nullable: true
          example: BW00
        organizationIdentifier:
          maxLength: 50
          minLength: 0
          type: string
          description: A custom identifier for the buyer organization, as defined in Basware P2P Administration. Alternatively, organizationUnitCode can be used. Both cannot be used simultaneously.
          nullable: true
          example: 003749272021
        purchasingGroupCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Purchasing Group Code.
          nullable: true
          example: P3
        purchasingGroupName:
          maxLength: 250
          minLength: 0
          type: string
          description: Purchasing Group Name.
          nullable: true
          example: IT-equipment for internal use
        orderType:
          enum:
          - Standard
          - Blanket
          type: string
          description: "Standard order is a quantity-based purchase order. It specifies quantity amounts, prices and desired delivery dates for the items or services. \r\nStandard purchase orders typically require goods receipts.\r\n\r\nBlanket order is a sum-based long-term purchase order. It is placed for items or services for a specific period of time (validity period) \r\nand with an pre-determined maximum currency amount. Blanket orders are typically used for recurring invoices, for example ordering office cleaning \r\nfor one year. They can be used for ordering both services and consumable goods. Quantity amount used on the blanket order is always '1'. \r\nGoods receipts are not used with blanket orders."
          example: standard
        releaseOrdersRequired:
          type: boolean
          description: Used only if the order type is blanket to specify, if the blanket purchase order requires release orders.
          nullable: true
          example: false
        hidePricesFromSupplier:
          type: boolean
          description: Specifies, if all price information is hidden from the supplier in the outgoing purchase order.
          nullable: true
          example: false
        ownerEmail:
          pattern: ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
          type: string
          description: Email address of requisition owner.
          nullable: true
          example: john.smith@company.com
        ownerLogin:
          maxLength: 100
          minLength: 0
          type: string
          description: "Login username for the requisition owner. The user must have 'Use Basware Purchase' user right. \r\nUsers with Use restricted/simplified Basware Purchase user rights are invalid."
          nullable: true
          example: BASWARE\\JOHNSMITH
        ownerExternalCode:
          maxLength: 36
          minLength: 0
          type: string
          description: ExternalCode for the requisition owner.
          nullable: true
          example: 987236sd-sd31-3562-1239-9asffa986asd
        purpose:
          maxLength: 2000
          minLength: 1
          type: string
          description: Requisition purpose.
          example: To Replace 3 years old laptop according to company policy.
        validityPeriodStartDate:
          type: string
          description: 'Used only if the order type is blanket to specify the start date for blanket purchase order validity period (date format: yyyy-MM-dd).'
          format: date-time
          nullable: true
          example: ''
        validityPeriodEndDate:
          type: string
          description: 'Used only if the order type is blanket to specify the end date for blanket purchase order validity period (date format: yyyy-MM-dd).'
          format: date-time
          nullable: true
          example: ''
        desiredDeliveryDate:
          type: string
          description: Date when goods/services are expected to be delivered.
          format: date-time
          nullable: true
          example: '2021-11-01T00:00:00'
        desiredDeliveryEndDate:
          type: string
          description: End date when goods/services are expected to be delivered.
          format: date-time
          nullable: true
          example: '2021-11-31T00:00:00'
        deliveryInstructions:
          maxLength: 250
          minLength: 0
          type: string
          description: Delivery instructions for goods/services.
          nullable: tr

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/basware/refs/heads/main/openapi/basware-purchaserequisitions-api-openapi.yml