Basware PurchaseOrders API

The PurchaseOrders API from Basware — 2 operation(s) for purchaseorders.

Operations 5

GET /v1/purchaseOrders Returns imported purchase orders.
POST /v1/purchaseOrders Creates new purchase order(s), fully overwrites previous record if exists. P2P Purchase does not allow updates to purchase orders after import.
DELETE /v1/purchaseOrders Deletes data from Basware API. For manual one-time operations.
GET /v1/purchaseOrders/{externalCode} Returns single imported purchase order by orderId - identifier.
PATCH /v1/purchaseOrders/{externalCode} Updates fields on specified order line. Can be used for adding new goods receipts to existing order lines when order is in 'Uncompleted' state. Preserves existing values in fields,

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/basware-purchaseorders-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

basware-purchaseorders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Basware OAUTH2 authentication APIs AccountingDocuments Purchase Orders 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
servers:
- url: https://api.basware.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: PurchaseOrders
paths:
  /v1/purchaseOrders:
    get:
      tags:
      - PurchaseOrders
      summary: Returns imported purchase orders.
      description: "Note: This GET operation returns a HTTP redirect, which the API client needs to follow. \n* 'Authorization' header must not be included in the redirected request (the second request after receiving a redirect). \n* 'Host' header needs to be included."
      parameters:
      - name: processingStatus
        in: query
        description: Document status filter. Returns items by purchase order status.
        schema:
          enum:
          - Uncompleted
          - ReadyForImport
          - ImportInProgress
          - Imported
          - ImportFailed
          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: 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: ac0108a2-5ade-4b78-8d57-1e4d5999cb83
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
        '401':
          description: Unauthorized
        '404':
          description: Not 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:
      - PurchaseOrders
      summary: Creates new purchase order(s), fully overwrites previous record if exists. P2P Purchase does not allow updates to purchase orders after import.
      description: "Notes: \n1. Any referenced vendors, users, payment terms, purchasing categories, quantity units, etc. need to exist in P2P when the purchase order is posted.\n2. Orders are technically handled as auto-approved requisitions resulting in a corresponding order being created. If you don't find the order in P2P UI, try looking for it as a requisition. It might have invalid data (see above) or the requisition approval process may be configured in a way to block automatic order creation.\n3. Field 'processingStatus' requires a value from API user in POST and PATCH request. If you need to import an order with more than 200 lines, this can be done by setting 'processingStatus' to 'Uncompleted' when POSTing the purchaseOrder and then adding additional lines to it using the PATCH method. ProcessingStaus: 'Uncompleted' prevents the order from being set to P2P so that more lines can be added. When all lines have been added, set 'processingStaus' = 'ReadyForImport' using PATCH method and the order will be imported to P2P.  \n\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/PurchaseOrderEntity'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseOrderEntity'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseOrderEntity'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseOrderEntity'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PurchaseOrderEntity'
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderEntity'
            text/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderEntity'
        '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:
      - PurchaseOrders
      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. \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.\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/purchaseOrders/{externalCode}:
    get:
      tags:
      - PurchaseOrders
      summary: Returns single imported purchase order by orderId - identifier.
      description: "Note: This GET operation returns a HTTP redirect, which the API client needs to follow. \n* 'Authorization' header must not be included in the redirected request (the second request after receiving a redirect). \n* 'Host' header needs to be included."
      parameters:
      - name: externalCode
        in: path
        description: The externalCode of the purchaseOrder to be fetched
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrdersResponse'
        '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'
    patch:
      tags:
      - PurchaseOrders
      summary: Updates fields on specified order line. Can be used for adding new goods receipts to existing order lines when order is in 'Uncompleted' state. Preserves existing values in fields, which were not updated.
      description: "Notes: \n1) Field 'processingStatus' requires a value from API user in POST and PATCH request. If you need to import an order with more than 200 lines, this can be done by setting 'processingStatus' to 'Uncompleted' when POSTing the purchaseOrder and then adding additional lines to it using the PATCH method. ProcessingStaus: 'Uncompleted' prevents the order from being set to P2P so that more lines can be added. When all lines have been added, set 'processingStaus' = 'ReadyForImport' using PATCH method and the order will be imported to P2P. \n2) Basware API considers 'null' value in field(s) equivalent to the field(s) not being sent. For this reason patch method does not support setting field values to 'null'. \n\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: externalCode
        in: path
        description: The externalCode of the imported purchase order to be updated
        required: true
        schema:
          type: string
      requestBody:
        description: Entity to be updated
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderEntity'
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderEntity'
          text/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderEntity'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderEntity'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrderLineEntity'
            application/json:
              schema:
                $ref: '#/components/schemas/OrderLineEntity'
            text/json:
              schema:
                $ref: '#/components/schemas/OrderLineEntity'
        '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
        '404':
          description: Not found. Record to update not 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'
        '503':
          description: Service Unavailable
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityList'
components:
  schemas:
    OrderLineUserEntity:
      type: object
      properties:
        userExternalCode:
          maxLength: 36
          minLength: 0
          type:
          - string
          - 'null'
          description: External code. Either userExternalCode or userEmail is required.
          example: 6532e1d70e194ff8a193e42beab4a0d9
        userEmail:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Email address. Either userExternalCode or userEmail is required.
          example: buyer@company.com
        userRole:
          enum:
          - Buyer
          - Owner
          - ReferencePerson
          - Other
          type:
          - string
          - 'null'
          description: User role.
          example: ''
        lastUpdated:
          type: string
          description: Timestamp when the record was last sent to API. Set automatically.
          format: date-time
      additionalProperties: false
    DeliveryAddress:
      required:
      - name
      type: object
      properties:
        name:
          maxLength: 250
          minLength: 1
          type: string
          description: Specifies the address’ name for the goods delivery.
          example: Maple street office
        pObox:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: PO box
          example: ''
        streetName:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Street name.
          example: Maple street
        additionalStreetName:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Additional street name.
          example: ''
        blockName:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Block name.
          example: ''
        buildingName:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Building name.
          example: ''
        buildingNumber:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Building number.
          example: '68'
        department:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Department.
          example: ''
        floor:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Floor.
          example: ''
        room:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Room.
          example: ''
        postalZone:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Postal zone.
          example: '02600'
        city:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: City.
          example: Toronto
        region:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Region.
          example: ''
        district:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: District.
          example: ''
        countryCode:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Country code.
          example: CA
        countryName:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Country name.
          example: Canada
        description:
          maxLength: 1000
          minLength: 0
          type:
          - string
          - 'null'
          description: Description.
          example: ''
        globalLocationNumber:
          maxLength: 13
          minLength: 0
          type:
          - string
          - 'null'
          description: Global location number.
          example: ''
        countrySubEntity:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          example: TX
        countrySubEntityDescription:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          example: Texas
        addressId:
          maxLength: 2000
          minLength: 0
          type:
          - string
          - 'null'
          description: Identifier for the address.
          example: '1000467'
        addressSchemeId:
          maxLength: 2000
          minLength: 0
          type:
          - string
          - 'null'
          description: Can be used to specify a code that represents the agency or organization responsible for the addressID numbering.
          example: BuyerAccountId
      additionalProperties: false
      description: 'Specifies delivery address for the purchase requisition. If no address specified, uses the default delivery address of organization (configured in P2P).

        Delivery address on header level applies to entire purchase reuisition. If addresses are also provided on requisition lines, these will apply only to the corresponding lines.'
    PurchaseOrderUserEntity:
      type: object
      properties:
        externalCode:
          maxLength: 36
          minLength: 0
          type:
          - string
          - 'null'
          description: ExternalCode of user.
          example: 4847-31231212-212121-1212
        loginAccount:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
          description: Login account of user.
          example: basware\\jyrik
        emailAddress:
          maxLength: 320
          minLength: 0
          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
          - 'null'
          description: Email address of user.
          example: testmail1@mailtest.com
      additionalProperties: false
    DeleteRequest:
      type: object
      properties:
        lastUpdated:
          type:
          - string
          - 'null'
          description: 'To delete records updated after specific time, use lastUpdated -field. This will delete all items that have been updated after the specified date. In response, user will get the taskStatus api link where the task status can be checked. Note: ''0001-01-01'' can be used to delete all records.'
          format: date-time
        externalCode:
          maxLength: 36
          minLength: 0
          type:
          - string
          - 'null'
          description: Single item can be deleted using externalCode and final status is returned immediately.
      additionalProperties: false
    GoodsReceiptEntity:
      required:
      - externalCode
      - goodsReceiptNumber
      - quantity
      type: object
      properties:
        externalCode:
          maxLength: 36
          minLength: 1
          type: string
          description: Identifies the goods receipt for future updates through Basware API. Typically Generated by the system calling Basware API.
          example: 234-3444-74334667-1434612
        goodsReceiptNumber:
          maxLength: 100
          minLength: 1
          type: string
          description: Goods receipt number.
          example: '487632933422'
        goodsReceiptLineNumber:
          maxLength: 25
          minLength: 0
          type:
          - string
          - 'null'
          description: Goods receipt line number.
          example: '1'
        referenceGRExternalCode:
          maxLength: 36
          minLength: 0
          type:
          - string
          - 'null'
          description: "Used to cancel (part of) an existing goods receipt. Place the 'externalCode' value of the original goods receipt here when this receipt item is a negative return/cancellation item for an earlier receipt. \n\nNote: If the original GR does not have netPrice / grossPrice, reversing part of the original GR will set the netSum / grossSum of the original GR to 0. This happens because the the sums get recalculated based on quantity x (net/gross)Price when values are updated."
          example: ''
        deliveryNoteNumber:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Identifier of the delivery from where the receipt was made.
          example: '8718232387'
        bestFitGrouping:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Grouping factor for received items that are invoiced together without any delivery indicator. The value can be for example a delivery note number or a delivery date. Used in best-fit matching.
          example: '4847432142354'
        quantity:
          type: number
          description: Received quantity
          format: double
          example: 10
        netSum:
          type:
          - number
          - 'null'
          description: 'Total currency value of the received items, excluding tax. Note: Either net or gross currency amounts are required on the entire purchase order (both can be provided). Depending on type of provided amounts, either net or gross -based invoice matching can be used.'
          format: double
          example: 1000
        grossSum:
          type:
          - number
          - 'null'
          description: 'Total currency value of the received items, including tax. Note: Either net or gross currency amounts are required on the entire purchase order (both can be provided). Depending on type of provided amounts, either net or gross -based invoice matching can be used.'
          format: double
          example: 1160
        netPrice:
          type:
          - number
          - 'null'
          description: "The unit price of the received item (price for a single item), excluding tax. \n\nNote: If the original GR does not have netPrice, reversing part of the original GR (done using 'referenceGRExternalCode' field) will set the netSum of the original GR to 0. This happens because the netSum gets recalculated based on quantity x netPrice when values are updated."
          format: double
          example: 100
        grossPrice:
          type:
          - number
          - 'null'
          description: 'The unit price of the received item (price for a single item), including tax.


            Note: If the original GR does not have grossPrice, reversing part of the original GR (done using ''referenceGRExternalCode'' field) will set the grossSum of the original GR to 0. This happens because the grosstSum gets recalculated based on quantity x grossPrice when values are updated.'
          format: double
          example: 116
        isDeleted:
          type:
          - boolean
          - 'null'
          description: 'Indicates whether the received item is deleted. If TRUE, the received item has been marked as deleted. Default value: FALSE.'
          example: false
        notifyFault:
          type:
          - boolean
          - 'null'
          description: Used to indicate goods have been received as damaged. 'True' if goods are faulty. P2P can be configured to stop automatic invoice processing when an invoice has been matched against damaged goods.
          example: false
        invoicedQuantity:
          type:
          - number
          - 'null'
          description: Quantity that already has been matched from the line item
          format: double
          example: 0
        invoicedNetSum:
          type:
          - number
          - 'null'
          description: Sum that already has been matched excluding tax
          format: double
        invoicedGrossSum:
          type:
          - number
          - 'null'
          description: Sum that already has been matched including tax
          format: double
        unitOfMeasure:
          maxLength: 25
          minLength: 0
          type:
          - string
          - 'null'
          description: Unit of measure of the line item. Valid value is UN/ECE CEFACT Trade Facilitation Recommendation No. 20 common code value represented as string.
          example: ''
        subUnitOfMeasure:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Alternative unit of measurement of the line item. Valid value is UN/ECE CEFACT Trade Facilitation Recommendation No. 20 common code value represented as string.
          example: ''
        goodsReceiptType:
          type:
          - integer
          - 'null'
          description: Goods receipt type, specified by Customer.
          format: int32
        receiveMethod:
          type:
          - integer
          - 'null'
          description: Receive method, specified by customer.
          format: int32
        voucherNumber:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
          description: A reference to a buyer-generated document that authorizes a purchase transaction
          example: 201809PO0001
        goodsReceiptNote:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Free-form text applying to the goods receipt. This field may contain notes or any other similar information that is not contained explicitly in another structure.
          example: Quality check ok
        fiscalYear:
          type:
          - string
          - 'null'
          description: Used when goods or services are received this fiscal year and will be paid for next fiscal year
          format: date-time
        deliveryDate:
          type:
          - string
          - 'null'
          description: 'Date when the goods/services are delivered. Valid values are in format: CCYY-MM-DD. If the time zone is known, it must be represented with +hh:mm or -hh:mm or Z (which means UTC). If the time zone is not known, it must be left empty.'
          format: date-time
        productSerialNumber:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: A serial number is a code to uniquely identify the received item.
          example: 8-01553-01
        comment:
          maxLength: 255
          minLength: 0
          type:
          - string
          - 'null'
          description: Available for additional information regarding the goods receipt, such as description of damaged goods.
        text1:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Text1-5 are available for customer-specific text fields.
          example: ''
        text2:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Custom field in the business document
          example: ''
        text3:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Custom field in the business document
          example: ''
        text4:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Custom field in the business document
          example: ''
        text5:
          maxLength: 250
          minLength: 0
          type:
          - string
          - 'null'
          description: Custom field in the business document
          example: ''
     

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