Basware ExportedPurchaseRequisitions API

The ExportedPurchaseRequisitions API from Basware — 3 operation(s) for exportedpurchaserequisitions.

OpenAPI Specification

basware-exportedpurchaserequisitions-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Basware OAUTH2 authentication APIs AccountingDocuments ExportedPurchaseRequisitions 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: ExportedPurchaseRequisitions
paths:
  /v1/exportedPurchaseRequisitions:
    get:
      tags:
      - ExportedPurchaseRequisitions
      summary: Returns purchase requisitions exported fom Basware P2P.
      description: "Notes:\r\n1) A purchase requisition is exported from P2P when the requisition is approved, rejected or canceled. Requisitions are not exported while they are in approval process. \r\n2) This API supports sending webhook based  [push notifications](https://developer.basware.com/api/p2p/manual#PushNotifications) when new data is available to be exported. \r\n3) This GET operation returns a HTTP redirect, which the API client needs to follow. \r\n * 'Authorization' header must not be included in the redirected request (the second request after receiving a redirect). \r\n * 'Host' header needs to be included.\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."
      parameters:
      - name: status
        in: query
        description: Document status filter. Returns items by order document status.
        schema:
          enum:
          - WaitingForExport
          - Exported
          type: string
      - 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: 1093edb3-7620-4986-b46b-985c3f9addd4
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
        '404':
          description: Not Found
          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:
      - ExportedPurchaseRequisitions
      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
          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'
  /v1/exportedPurchaseRequisitions/{externalCode}:
    get:
      tags:
      - ExportedPurchaseRequisitions
      summary: Returns a single purchase requisition by external code - identifier.
      description: "Note: This GET operation returns a HTTP redirect, which the API client needs to follow. \r\n* 'Authorization' header must not be included in the redirected request (the second request after receiving a redirect). \r\n* 'Host' header needs to be included.\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."
      parameters:
      - name: externalCode
        in: path
        description: ExternalCode of the requisition to be retrieved.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportedPurchaseRequisitionsResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
        '404':
          description: Not found
          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'
  /v1/exportedPurchaseRequisitions/{externalCode}/acknowledge:
    post:
      tags:
      - ExportedPurchaseRequisitions
      summary: Acknowledged requisitions are no longer returned for next GET operation.
      description: "Notes:\r\n1. Updates 'processingStatus' -field on the document to allow filtering out the document on the next GET operation\r\n2. For a document which is already acknowledged (processingStatus: 'Exported'), API will return 405 'Method not allowed' if acknowledge is attempted again on the document.\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."
      parameters:
      - name: externalCode
        in: path
        description: 'External Code of the purchase requisition to be acknowledged. Note: For a purchase requisition which is already acknowledged, API will return 405 ''Method not allowed''.'
        required: true
        schema:
          type: string
      - name: Content-Type
        in: header
        description: Specifies the media type of the resource. Value application/json is supported.
        schema:
          type: string
        example: application/json
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: string
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '405':
          description: Method not allowed. This generally happens when trying to acknowledge an exportedPurchaseRequisition that is already acknowledged.
        '500':
          description: Unexpected error
components:
  schemas:
    GroupingLine:
      required:
      - externalCode
      - requisitionLineNumber
      type: object
      properties:
        externalCode:
          maxLength: 100
          minLength: 1
          type: string
          example: 987236sd-sd31-3562-1239-9asffa986asd
        requisitionLineNumber:
          maxLength: 100
          minLength: 1
          type: string
          example: '1'
      additionalProperties: false
    OrderGrouping:
      required:
      - hidePricesFromSupplier
      - releaseOrdersRequired
      type: object
      properties:
        supplierCode:
          maxLength: 32
          minLength: 0
          type: string
          description: Supplier code.
          nullable: true
          example: SU100
        supplierName:
          maxLength: 255
          minLength: 0
          type: string
          description: Supplier name.
          nullable: true
          example: ProjectSupplierLtd
        paymentTermCode:
          maxLength: 255
          minLength: 0
          type: string
          description: Payment term code.
          nullable: true
          example: 30N
        paymentTermName:
          maxLength: 2000
          minLength: 0
          type: string
          description: Payment term name.
          nullable: true
          example: 30DaysNet
        contractNumber:
          maxLength: 255
          minLength: 0
          type: string
          description: Contract number.
          nullable: true
          example: Contract-100
        orderType:
          enum:
          - Standard
          - Blanket
          type: string
        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: ''
        deliveryTerm:
          maxLength: 100
          minLength: 0
          type: string
          description: Delivery term.
          nullable: true
          example: Supplier to Buyer via Post
        deliveryLocation:
          maxLength: 250
          minLength: 0
          type: string
          description: Delivery location.
          nullable: true
          example: ''
        deliveryInstruction:
          maxLength: 250
          minLength: 0
          type: string
          description: Delivery instruction.
          nullable: true
          example: Check the packing so it will not break
        sendingMethod:
          enum:
          - BaswareNetwork
          - Email
          type: string
          description: Determines how Basware P2P will sends the order to supplier when the order is placed.
          nullable: true
          example: BaswareNetwork
        orderRecipientType:
          enum:
          - Supplier
          - Owner
          - SupplierAndOwner
          type: string
          description: "Determines who order is sent to.\r\n-Supplier(0) : Order is sent only to supplier.\r\n-If orderingMethod is email, order is sent to the email indicated by 'supplierOrderingEmail'. -If orderingMethod is network, the order is sent through Basware network.\r\n-Owner (1): Order is sent only to email address(es) indicated by field 'otherOrderingEmail'. Used for example when goods were picked up from a store and no order needs to be sent to supplier.\r\n-SupplierAndOwner (2): Order is sent to both supplier and email addresses indicated by field 'otherOrderingEmail'. Order delivery method to supplier is determined by orderingMethod, same as above."
          example: Supplier
        supplierOrderingEmail:
          maxLength: 1800
          minLength: 0
          type: string
          description: Specifies the email address(es) where the order is sent to when sending order to supplier. Can contain multiple email addresses. Used when orderRecipientType is set as 'Owner' or 'SupplierAndOwner'.
          nullable: true
          example: john.smith@company.com
        ownerOrderingEmail:
          maxLength: 1800
          minLength: 0
          type: string
          description: 'Contact email to which supplier can send questions about the order. Note: When order is sent to supplier, it is not sent to this email. Note: Fields visible on the order sent to supplier are configured in P2P Purchase.'
          nullable: true
          example: john.smith@company.com
        otherOrderingEmail:
          type: string
          description: The email address(es) where the order is sent by P2P purchase. Can contain multiple email addresses. The order is sent to these addresses when orderRecipientType is 'Owner' or 'Both'.
          nullable: true
          example: john.smith@company.com
        releaseOrdersRequired:
          type: boolean
          description: Used only if the order type is blanket to specify, if the blanket purchase order requires release orders.
          example: false
        hidePricesFromSupplier:
          type: boolean
          description: Specifies, if all price information is hidden from the supplier in the outgoing purchase order.
          example: false
        attachPdfToNetworkOrder:
          type: boolean
          description: Specifies if order is attached as pdf file when order is sent to supplier through Basware network.
          nullable: true
          example: true
        grossSum:
          type: number
          description: Gross sum of the grouped order line(s).
          format: double
          example: 125
        netSum:
          type: number
          description: Net sum of the grouped order line(s).
          format: double
          example: 100
        receivers:
          type: array
          items:
            $ref: '#/components/schemas/ExportedPurchaseRequisitionUserEntity'
          description: List of people who should receive the order.
          nullable: true
        receiverToContact:
          $ref: '#/components/schemas/ExportedPurchaseRequisitionUserEntity'
        requisitionLines:
          type: array
          items:
            $ref: '#/components/schemas/GroupingLine'
          description: Specifies the requisition lines which are on-course for being grouped to this order.
          nullable: true
      additionalProperties: false
    ExportedPurchaseRequisitionCodingRow:
      required:
      - externalCode
      type: object
      properties:
        externalCode:
          maxLength: 36
          minLength: 1
          type: string
          description: External identifier that is used as a key in API for the coding line.
          example: 1547e4371231ad32dff2132985aae212
        rowIndex:
          type: integer
          description: Purchase internal document coding line number.
          format: int32
          example: 1
        splitPercent:
          type: number
          description: Percentage of requisition line’s cost which this coding row covers (cost can be split between coding lines). Current always 100 (as long as there is one coding line per requisition line).
          format: double
          example: 100
        accountCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Account code.
          nullable: true
          example: '10017'
        accountName:
          maxLength: 2000
          minLength: 0
          type: string
          description: Account name.
          nullable: true
          example: IT equipment costs
        costCenterCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Cost center code.
          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.
          nullable: true
          example: '815722'
        employeeName:
          maxLength: 250
          minLength: 0
          type: string
          description: Employee 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.
          nullable: true
          example: ''
        accAssignmentCategoryName:
          maxLength: 250
          minLength: 0
          type: string
          description: Account assignment category name.
          nullable: true
          example: ''
        budgetCode:
          maxLength: 25
          minLength: 0
          type: string
          description: Budget code.
          nullable: true
          example: B36782
        budgetName:
          maxLength: 250
          minLength: 0
          type: string
          description: Budget name.
          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: '2800'
        dimCode2:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode3:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode4:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode5:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode6:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode7:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode8:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode9:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimCode10:
          maxLength: 25
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName1:
          maxLength: 250
          minLength: 0
          type: string
          description: DimName1-10 are often used for additional, customer-specific, coding dimensions. Specifies the dimension name.
          nullable: true
          example: EU Purchases
        dimName2:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName3:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName4:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName5:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName6:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName7:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName8:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName9:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        dimName10:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        num1:
          type: number
          description: Num1-5 can be used for additional, customer-specific, numeric fields.
          format: double
          nullable: true
        num2:
          type: number
          format: double
          nullable: true
        num3:
          type: number
          format: double
          nullable: true
        num4:
          type: number
          format: double
          nullable: true
        num5:
          type: number
          format: double
          nullable: true
        text1:
          maxLength: 250
          minLength: 0
          type: string
          description: Text1-5 can be used for additional, customer-specific, text fields
          nullable: true
          example: ''
        text2:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        text3:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        text4:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        text5:
          maxLength: 250
          minLength: 0
          type: string
          nullable: true
          example: ''
        date1:
          type: string
          description: Date1-5 can be used for additional, customer-specific, date fields
          format: date-time
          nullable: true
        date2:
          type: string
          format: date-time
          nullable: true
        date3:
          type: string
          format: date-time
          nulla

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