openapi: 3.2.0 info: title: Basware APIs for Purchase-to-Pay and Master Data import… description: The Basware APIs documented here are for Purchase-to-Pay use cases and for importing Master Data to Basware services. version: v1 servers: - url: '' security: - Bearer: [] - oauth2authentication: [] tags: - name: Purchase Orders paths: /v1/purchaseOrders: get: tags: - Purchase Orders summary: Returns imported purchase orders description: 'Note: This GET operation returns a HTTP redirect, which the API client needs to follow. * ''Authorization'' header must not be included in the redirected request (the second request after receiving a redirect). * ''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' operationId: getV1PurchaseOrders x-operation-id-source: derived post: tags: - Purchase Orders summary: Creates new purchase order(s), fully overwrites previous record if exists. description: 'Notes: 1. Any referenced vendors, users, payment terms, purchasing categories, quantity units, etc. need to exist in P2P when the purchase order is posted. 2. 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. 3. 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. Please see section "Usage scenario 4: Import and export procurement data" for details on implementing this API. Check out also the example JSONs using a minimal feasible set of fields 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' operationId: postV1PurchaseOrders x-operation-id-source: derived delete: tags: - Purchase Orders 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. Deletion 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' operationId: deleteV1PurchaseOrders x-operation-id-source: derived /v1/purchaseOrders/{externalCode}: get: tags: - Purchase Orders 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. * ''Authorization'' header must not be included in the redirected request (the second request after receiving a redirect). * ''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' operationId: getV1PurchaseOrdersByExternalCode x-operation-id-source: derived patch: tags: - Purchase Orders summary: Updates fields on specified order line. description: 'Notes: 1) 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. 2) 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''. Please see section "Usage scenario 4: Import and export procurement data" for details on implementing this API. Check out also the example JSONs using a minimal feasible set of fields 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' operationId: patchV1PurchaseOrdersByExternalCode x-operation-id-source: derived components: schemas: ImportedPurchaseOrderLineCodingRowEntity: required: - externalCode type: object properties: externalCode: maxLength: 100 minLength: 1 type: string description: Unique external identifier that is used as a key in API. example: 060cb8ea-5464-11ea-a38b-2e728ce88122 accountCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Account code. example: '18200' accountName: maxLength: 2000 minLength: 0 type: - string - 'null' description: Account name. example: Equipment purchases costCenterCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Cost center code. example: '71830' costCenterName: maxLength: 2000 minLength: 0 type: - string - 'null' description: Cost center name. example: Tokyo projectCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Project code. example: '' projectName: maxLength: 255 minLength: 0 type: - string - 'null' description: Project name. example: '' fixedAssetCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Fixed asset code. example: '' fixedAssetName: maxLength: 250 minLength: 0 type: - string - 'null' description: Fixed asset name. example: '' fixedAssetSubCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Fixed asset sub code. example: '' fixedAssetSubName: maxLength: 250 minLength: 0 type: - string - 'null' description: Fixed assets sub name. example: '' internalOrderCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Internal order code. example: '' internalOrderName: maxLength: 250 minLength: 0 type: - string - 'null' description: Internal order name. example: '' profitCenterCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Profit center code. example: '' profitCenterName: maxLength: 250 minLength: 0 type: - string - 'null' description: Profit center name. example: '' businessUnitCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Business unit code. example: '' businessUnitName: maxLength: 250 minLength: 0 type: - string - 'null' description: Business unit name. example: '' projectSubCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Project sub code. example: '' projectSubName: maxLength: 250 minLength: 0 type: - string - 'null' description: Project sub name. example: '' employeeCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Employee code. example: '' employeeName: maxLength: 250 minLength: 0 type: - string - 'null' description: Employee name. example: '' vehicleNumber: maxLength: 25 minLength: 0 type: - string - 'null' description: Vehicle number. example: '' vehicleName: maxLength: 250 minLength: 0 type: - string - 'null' description: Vehicle name. example: '' salesOrderCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Sales order code. example: '' salesOrderName: maxLength: 250 minLength: 0 type: - string - 'null' description: Sales order name. example: '' salesOrderSubCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Sales order sub code. example: '' salesOrderSubName: maxLength: 250 minLength: 0 type: - string - 'null' description: Sales order sub name. example: '' customerCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Customer code. example: '' customerName: maxLength: 250 minLength: 0 type: - string - 'null' description: Customer name. example: '' accAssignmentCategoryCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Account assignment category code. example: '' accAssignmentCategoryName: maxLength: 250 minLength: 0 type: - string - 'null' description: Account assignment category name. example: '' budgetCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Budget code. example: '' budgetName: maxLength: 250 minLength: 0 type: - string - 'null' description: Budget name. example: '' serviceCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Service code. example: '' serviceName: maxLength: 250 minLength: 0 type: - string - 'null' description: Service name. example: '' businessAreaCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Business area code. example: '' businessAreaName: maxLength: 250 minLength: 0 type: - string - 'null' description: Business area name. example: '' workOrderCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Work order code. example: '' workOrderName: maxLength: 250 minLength: 0 type: - string - 'null' description: Work order name. example: '' workOrderSubCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Work order sub code. example: '' workOrderSubName: maxLength: 250 minLength: 0 type: - string - 'null' description: Work order sub name. example: '' distributionCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Distribution code. example: '' distributionMode: maxLength: 250 minLength: 0 type: - string - 'null' description: Distribution mode. example: '' dimCode1: maxLength: 25 minLength: 0 type: - string - 'null' description: 'DimCode 1-10: Code fields for Customer-specific coding dimensions.' example: '' dimCode2: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode3: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode4: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode5: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode6: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode7: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode8: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode9: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimCode10: maxLength: 25 minLength: 0 type: - string - 'null' example: '' dimName1: maxLength: 250 minLength: 0 type: - string - 'null' description: Distribution mode. example: '' dimName2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName6: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName7: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName8: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName9: maxLength: 250 minLength: 0 type: - string - 'null' example: '' dimName10: maxLength: 250 minLength: 0 type: - string - 'null' example: '' num1: type: - number - 'null' description: 'LineInvoicingNum1-5: Can be used for for customer-specific date fields.' format: double num2: type: - number - 'null' format: double num3: type: - number - 'null' format: double num4: type: - number - 'null' format: double num5: type: - number - 'null' format: double text1: maxLength: 250 minLength: 0 type: - string - 'null' description: 'LineInvoicingText1-5: Can be used for for customer-specific date fields.' example: '' text2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' date1: type: - string - 'null' description: 'LineInvoicingDate1-5: Can be used for for customer-specific date fields.' format: date-time example: '' date2: type: - string - 'null' format: date-time example: '' date3: type: - string - 'null' format: date-time example: '' date4: type: - string - 'null' format: date-time example: '' date5: type: - string - 'null' format: date-time example: '' additionalProperties: false ErrorEntity: type: object properties: externalCode: type: - string - 'null' description: External code of record on which error occurred (when available). example: 4847-31231212-212121-1212 type: enum: - BUSINESS - VALIDATION - TECHNICAL - SECURITY type: string description: Error type. example: '' code: enum: - EXTERNAL_CODE_MISMATCH - SCHEMA_VALIDATION_ERROR - CONFLICT_IN_POST - DATA_ORIGIN_VALIDATION_ERROR - ACCESS_TOKEN_VALIDATION_ERROR - CREDENTIAL_VALIDATION_ERROR - PARAMETER_VALIDATION_ERROR - UNEXPECTED_ERROR - METHOD_NOT_ALLOWED - ENTITY_NOT_FOUND - DATA_VALIDATION_FAILED - SNS_PUBLISH_ERROR - SQS_PUBLISH_ERROR type: string description: Error code. example: '' message: type: - string - 'null' description: Specific error message. example: '' info: type: - string - 'null' description: Information about type of the error. example: '' additionalProperties: false OrderLineCodingEntity: required: - allocatedQuantity - externalCode - rowIndex type: object properties: externalCode: maxLength: 36 minLength: 1 type: string description: Unique identifier used for updates through Basware API. example: 1547e437-1231-ad32-dff2-132985aae212 rowIndex: maximum: 100000 minimum: 0 type: integer description: Row number of coding row on the PO line. format: int32 example: 0 netTotal: type: - number - 'null' description: 'Represents total excluding tax that is allocated for the accounting dimensions set in the coding row item. 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 grossTotal: type: - number - 'null' description: 'Represents total including tax that is allocated for the accounting dimensions set in the coding row item. 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 accountCode: maxLength: 50 minLength: 0 type: - string - 'null' description: Account code. A code that identifies the general ledger account to where the matched spend is recorded. example: '28520' accountName: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the account example: Other marketing expences costCenterCode: maxLength: 200 minLength: 0 type: - string - 'null' description: Cost center code. A code that identifies the part of an organization to which costs may be charged for accounting purposes example: '1010' costCenterName: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the cost center example: Global presales and Marketing projectCode: maxLength: 25 minLength: 0 type: - string - 'null' description: A code that identifies the project when the spend is required to be recorded example: '32101' projectName: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the project example: Basware Connect 2022 conversionNumerator: type: - number - 'null' description: A conversion factor is used to change the units of a nominator in quantity without changing its value. For example, one envelope weighs 7 g. format: double conversionDenominator: type: - number - 'null' description: A conversion factor is used to change the units of a denominator in quantity without changing its value. format: double conversionDeNumerator: type: - number - 'null' description: Deprecated - field not in use. format: double taxCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Tax code. example: T16 taxPercent: maximum: 1000000000 minimum: -1000000000 type: - number - 'null' description: Tax percent. format: double example: 16 taxPercent2: maximum: 1000000000 minimum: -1000000000 type: - number - 'null' description: Tax percent 2. Can be used for example for handling reverse charges on EU VAT. format: double example: 0 taxSum: type: - number - 'null' description: Tax sum. format: double example: 16 taxSum2: type: - number - 'null' description: Tax sum 2. format: double example: 0 partnerProfitCenter: maxLength: 250 minLength: 0 type: - string - 'null' description: Identifies transfers of goods and services between profit centers example: '' fixedAssetCode: maxLength: 250 minLength: 0 type: - string - 'null' description: Long-term tangible piece of property that a company owns and uses in its operations to generate income example: '' fixedAssetName: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the fixed asset example: '' materialGroup: maxLength: 100 minLength: 0 type: - string - 'null' description: A code that groups together several materials or services with the same characteristics example: '' fixedAssetSubCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code identifying an accessory / special equipment that you maintain on a fixed asset example: '' fixedAssetSubName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the sub-asset example: '' internalOrderCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify an internal order that normally is used to plan, collect, and settle the costs of internal jobs and tasks example: '' internalOrderName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the internal order example: '' profitCenterCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a part of a business which is expected to make an identifiable contribution to the organization's profits example: '' profitCenterName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the profit center example: '' businessUnitCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a division of a large company that operates as an independent enterprise with responsibility for a particular range of products or activities example: '' businessUnitName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the business unit example: '' projectSubCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a project that is part of a larger project example: '' projectSubName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the sub-project example: '' employeeCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify an employee related to the cost example: '' employeeName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the employee example: '' vehicleNumber: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a vehicle related to the cost example: '' vehicleName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the vehicle example: '' salesOrderCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a sales order example: '' salesOrderName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the sales order example: '' salesOrderSubCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify another order that is part of a sales order example: '' salesOrderSubName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the sub sales order example: '' customerCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a customer example: '' customerName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the customer example: '' accAssignmentCategoryCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify account assignment category example: '' accAssignmentCategoryName: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a budget where the cost belongs example: '' budgetCode: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the bugdet example: '' budgetName: maxLength: 50 minLength: 0 type: - string - 'null' example: '' serviceCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a service related to the cost example: '' serviceName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the service example: '' businessAreaCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a business area example: '' businessAreaName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the business area example: '' taxJurisdictionCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify which area or which tax authority is involved example: '' subUOM: maxLength: 50 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 a string. example: '' workOrderCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify work order example: '' workOrderName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the work order example: '' workOrderSubCode: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify another order related to work order example: '' workOrderSubName: maxLength: 50 minLength: 0 type: - string - 'null' description: Name of the sub work order example: '' commitmentItem: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify an element that represents the functional grouping of expenditures and revenues within a financial management area example: '' controllingArea: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify an organizational unit in an organization that represents a closed system used for cost accounting purposes example: '' functionalArea: maxLength: 50 minLength: 0 type: - string - 'null' description: A code to identify a functional area, like teams of employees, who have similar skills and expertise example: '' dimCode1: maxLength: 100 minLength: 0 type: - string - 'null' description: dimCode1-10 are often used for additional, customer-specific, coding dimensions. Specifies the dimension code. example: '' dimCode2: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode3: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode4: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode5: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode6: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode7: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimCode8: maxLength: 100 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' dimCode9: maxLength: 100 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' dimCode10: maxLength: 100 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' dimName1: maxLength: 100 minLength: 0 type: - string - 'null' description: dimName1-10 are often used for additional, customer-specific, coding dimensions. Specifies the dimension name. example: '' dimName2: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName3: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName4: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName5: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName6: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName7: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName8: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName9: maxLength: 100 minLength: 0 type: - string - 'null' example: '' dimName10: maxLength: 100 minLength: 0 type: - string - 'null' example: '' num1: type: - number - 'null' description: Num1-5 are available for customer-specific numeric fields. format: double num2: type: - number - 'null' format: double num3: type: - number - 'null' format: double num4: type: - number - 'null' format: double num5: type: - number - 'null' format: double allocatedQuantity: type: number description: Specifies quantity per coding-line. Needed especially when creating multiple coding lines for a single order row. format: double example: 1 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: '' date1: type: - string - 'null' description: Date1-5 are available for customer-specific date fields. format: date-time date2: type: - string - 'null' format: date-time date3: type: - string - 'null' format: date-time date4: type: - string - 'null' format: date-time date5: type: - string - 'null' format: date-time network: maxLength: 250 minLength: 0 type: - string - 'null' example: '' networkActivity: maxLength: 250 minLength: 0 type: - string - 'null' example: '' additionalProperties: false PurchaseOrderEntity: required: - externalCode - extOrderNumber - extRequisitionNumber type: object properties: externalCode: maxLength: 100 minLength: 1 type: string description: External identifier that is used as a key in API. example: 4847-31231212-212121-1212 extOrderNumber: maxLength: 100 minLength: 1 type: string description: Order number in external system example: PO1235876123 extRequisitionNumber: maxLength: 100 minLength: 1 type: string description: Requisition number of related requisition in external system (for imported requisitions). example: REQ21037756 processingStatus: enum: - Uncompleted - ReadyForImport - ImportInProgress - Imported - ImportFailed type: - string - 'null' description: 'Processing status of the order in Basware API. Enables importing orders with > 200 lines. Possible values to POST by API user: 1) ''Uncompleted'' - Order will not be imported to P2P and more lines can be added using PATCH method. 2) ''ReadyForImport'' - Order will now be imported to P2P, no more lines can be sent. Default Value: ''Uncompleted''. After starting import, processingStatus changes automatically to ''ImportInProgress'' and ''Imported'' / ''ImportFailed'' to indicate updated import status.' example: ReadyForImport organizationUnitCode: maxLength: 32 minLength: 0 type: - string - 'null' description: P2P company code for buyer organisation unit. Either 'organizationUnitCode' or 'organizationIdentifier' is required. example: BE100 organizationIdentifier: maxLength: 32 minLength: 0 type: - string - 'null' description: Organization identifier for buyer organisation unit. Needs to match with what is configured on the organization unit in P2P. Either 'organizationUnitCode' or 'organizationIdentifier' is required. example: 0037321832176 purchasingGroupCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Purchasing group code. example: '' purchasingGroupName: maxLength: 250 minLength: 0 type: - string - 'null' description: Purchasing group name. example: '' purpose: maxLength: 2000 minLength: 0 type: - string - 'null' description: Reason why order is placed. example: Goods for Project X noteToSupplier: maxLength: 2000 minLength: 0 type: - string - 'null' description: This note is included when order is sent to supplier. example: '' validityPeriodStartDate: type: - string - 'null' 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 example: '' validityPeriodEndDate: type: - string - 'null' 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 example: '' desiredDeliveryDate: type: - string - 'null' description: Delivery date requested by buyer. format: date-time example: '2020-10-24T00:00:00' desiredDeliveryEndDate: type: - string - 'null' description: Buyer requested latest delivery date. format: date-time example: '2020-10-24T00:00:00' deliveryInstruction: maxLength: 250 minLength: 0 type: - string - 'null' description: Delivery instruction to supplier (shown on header). Here users can provide free-text information in addition to deliveryTerm and deliveryLocation. example: '' classification: maxLength: 250 minLength: 0 type: - string - 'null' description: '"Order classification code. Values can be specified by customer. Often used to group orders and assign different groups to be handled to different persons.' example: '' contractNumber: maxLength: 255 minLength: 0 type: - string - 'null' description: Specifies contract which this order relates to. example: CON2198763 orderType: enum: - Standard - Blanket type: - string - 'null' supplierCode: maxLength: 32 minLength: 1 type: - string - 'null' description: Supplier code to whom the order is addressed. example: '321687' supplierName: maxLength: 255 minLength: 0 type: - string - 'null' description: Supplier name to whom the order is addressed. example: ACME supplier ltd. ownerOrderingEmail: maxLength: 1800 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: '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.' example: john.smith@buyer.com supplierOrderingEmail: maxLength: 1800 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: The email address(es) where the order is sent to when sending order to supplier. Can contain multiple email addresses separated by semicolon. example: Mark@supplier.com otherOrderingEmail: 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: The email address(es) where the order is sent by P2P purchase. Can contain multiple email addresses separated by semicolon. The order is sent to these addresses when orderRecipientType is 'Owner' or 'Both'. example: Mark@supplier.com paymentTermCode: maxLength: 250 minLength: 0 type: - string - 'null' description: Order payment term code. example: 30N paymentTermName: maxLength: 2000 minLength: 0 type: - string - 'null' description: Order payment term name. example: 30 Days Net releaseOrdersRequired: type: - boolean - 'null' description: Used only if the order type is blanket to specify, if the blanket order requires release orders. example: false hidePricesFromSupplier: type: - boolean - 'null' description: Specifies, if all price information is hidden from the supplier in the outgoing order. example: false attachPdfToNetworkOrder: type: boolean description: Specifies if order is attached as pdf file when order is sent to supplier through Basware network. example: true orderRecipientType: enum: - Supplier - Owner - SupplierAndOwner type: - string - 'null' description: 'Determines who order is sent to. -Supplier(0) : Order is sent only to supplier. -If orderingMethod is email, order is sent to the email indicated by ''supplierOrderingEmail''. -If orderingMethod is network, the order is sent through Basware network. -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. -Both (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 deliveryLocation: maxLength: 250 minLength: 0 type: - string - 'null' description: Details on Delivery example: '' deliveryTerm: maxLength: 100 minLength: 0 type: - string - 'null' description: Delivery term. Generally Incoterms (International Commercial Terms) are used here, however customer and supplier can also agree to use different sets of delivery terms. example: Supplier to Buyer via Post deliveryReceivers: type: - array - 'null' items: $ref: '#/components/schemas/PurchaseOrderUserEntity' description: 'List of people who will get GR -task in Purchase for this order. The users specified needs to have appropriate permission to P2P to receive goods. Each entry must uniquely identify a user. Identifiers are applied in following order: 1) externalCode, 2) loginAccount, 3) emailAddress. This is a list with max. 20 items.' purchaseCurrency: maxLength: 25 minLength: 1 type: - string - 'null' description: Currency code for currency in which the order is placed. example: USD headerDataDate1: type: - string - 'null' description: 'HeaderDataDate1-5: Can be used for customer-specific date fields.' format: date-time example: '' headerDataDate2: type: - string - 'null' format: date-time example: '' headerDataDate3: type: - string - 'null' format: date-time example: '' headerDataDate4: type: - string - 'null' format: date-time example: '' headerDataDate5: type: - string - 'null' format: date-time example: '' headerDataNum1: type: - number - 'null' description: 'HeaderDataNum1-5: Can be used for customer-specific numeric fields.' format: double headerDataNum2: type: - number - 'null' format: double headerDataNum3: type: - number - 'null' format: double headerDataNum4: type: - number - 'null' format: double headerDataNum5: type: - number - 'null' format: double headerDataText1: maxLength: 250 minLength: 0 type: - string - 'null' description: 'HeaderDataText1-5: Can be used for customer-specific numeric fields.' example: '' headerDataText2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' headerDataText3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' headerDataText4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' headerDataText5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' lastUpdated: type: string description: Timestamp when the record was last sent to API. Set automatically. format: date-time owner: $ref: '#/components/schemas/PurchaseOrderUserEntity' receiverToContact: $ref: '#/components/schemas/PurchaseOrderUserEntity' lines: type: - array - 'null' items: $ref: '#/components/schemas/PurchaseOrderLineEntity' description: "Purchase order lines. Notes: \n1. Row count needs to be min 1 and max 200. At least one of the rows needs to have quantity > 0. \n2. An order needs to have at least non-refund line. \n3. If you need to import an order with more than 100 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." deliveryAddress: $ref: '#/components/schemas/DeliveryAddress' 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.' OrderLineEntity: required: - externalCode - lineNumber - matchingMode - orderExternalCode - quantity type: object properties: externalCode: maxLength: 36 minLength: 1 type: string description: Identifies the order line for future updates through Basware API. example: 6741ecc7-848a-443c-83ad-ea95e4df06yh orderExternalCode: maxLength: 36 minLength: 1 type: string description: Links the order line to the corresponding order header. The header needs to have been posted to API before order line(s). example: 6741ecc7-848a-443c-83ad-ea95e4df06fa lineNumber: maxLength: 100 minLength: 1 type: string description: Purchase order row number. example: '1' sortNumber: type: - integer - 'null' description: Technical row number, used also for sorting. Typically the same as purchase order row number. format: int32 example: 1 quantity: type: number description: Defines how many items a customer has purchased. The quantity must be higher than zero. With isBlanketOrderLine TRUE, the quantity must be set 1. For service PO's quantity must always be 1. format: double example: 10 netSum: type: - number - 'null' description: 'Total currency amount excluding tax amount of the purchase order line. 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 amount including tax amount of the purchase order line. 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 currencyCode: maxLength: 3 minLength: 2 type: - string - 'null' description: A code that identifies the currency of the total payable amount in the purchase order line. Valid values are in ISO 4217 Alpha format. When empty, the currency from the purchase order is used. It is possible to have different currencies in order lines with different needs like products and transportation costs. Exchange rates for matching are based on the exchange rate date defined in the purchase invoice. Gain/loss is expected based on the difference between rate on receive date and rate on invoice date. example: USD matchingMode: enum: - Standard - Blanket - Return - Service type: string description: "Specifies how the order row is handled when matching invoice lines to order lines.\n'Standard' - Standard matching, based on quantities and sums.\n'Blanket' - Matching is based on sum. Quantity is fixed to '1' and is not used in matching. \n'Return' - Standard matching with negative unit price. Used when a new PO is needed for matching against returned items. \n'Service' - Service PO, are sum based PO's. Quantity is not considered here, default quantity is always 1 in these PO's." example: Standard isReceiptRequired: type: - boolean - 'null' description: Indicates whether the line item requires receipts. When FALSE, the line item does not require receipts. When TRUE, the system evaluates the received quantity and sum at the time of matching. When field omitted, value gets defaulted to 'false' in P2P. Value 'true' is not allowed with matchingMode = 'Blanket'. For service PO's IsReceiptRequired is mandatory and value must always be true. example: true isReceiptBasedMatching: type: - boolean - 'null' description: Indicates whether the matching takes place with line item or a goods receipt. When FALSE, a matched invoice is associated with the purchase order line and one coding line is generated per matched order line. When TRUE, an invoice is matched with a goods receipt that belongs to the line item and one coding line is generated for each of the goods receipts under the order line. When field omitted, value gets defaulted to 'false' in P2P. For service PO's IsReceiptBasedMatching is mandatory and value must always be true. example: true isOverreceivalAllowed: type: - boolean - 'null' description: Indicates whether over-delivery is allowed for the line item. When FALSE, the system evaluates the matching using the ordered quantity instead of possible higher quantity from receipts. example: false isClosed: type: - boolean - 'null' description: Indicates whether the line item is closed. When TRUE, new receipts are not expected for the order line and matching is possible only with unmatched or partly matched goods receipts that have been recorded to the purchase order earlier. When FALSE, the order line is open for new deliveries and matching. When field omitted, value gets defaulted to 'false' in P2P. example: false isDeleted: type: - boolean - 'null' description: 'Indicates whether the line item is deleted. If TRUE, the line item has been marked as deleted. Default value: FALSE. Note: This field must have a value if an order line is intended to be matched with an invoice using best-fit recognition methods.' example: false isSelfApproved: type: - boolean - 'null' description: Specifies has the PO line bypassed standard requisition approval flow in PO source system before order line has been sent to P2P. If true, approval has been bypassed in PO seource system. Invoices matched to such PO lines can be sent to additional approval in P2P. example: false uom: 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: PCS subUOM: 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: G netPrice: type: - number - 'null' description: 'The price of the line item 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: 100 grossPrice: type: - number - 'null' description: 'The price of the line item 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: 116 priceUnit: maxLength: 25 minLength: 0 type: - string - 'null' description: The unit by which the line item is sold (boxes, litres, tons, pcs, kg, etc). Reguired when using line-level invoice matching with unit validation. example: BOX priceUnitDescription: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the price unit. example: BOX taxCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Tax code. example: VN taxPercent: maximum: 1000000000 minimum: 0 type: - number - 'null' description: Tax percentage. format: double example: 16 taxPercent2: type: - number - 'null' description: Return tax. format: double example: 0 taxSum: type: - number - 'null' description: Tax sum. format: double example: 160 taxSum2: type: - number - 'null' description: Tax sum 2. format: double 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 example: 0 invoicedGrossSum: type: - number - 'null' description: Sum that already has been matched, including tax. format: double example: 0 validFrom: type: - string - 'null' description: 'Date when the validity of the purchase order starts. 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 example: '2018-01-01T07:36:13.053Z' validTo: type: - string - 'null' description: 'Date when the validity of the purchase order ends. 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 example: '2018-12-31T07:36:13.053Z' productCode: maxLength: 250 minLength: 0 type: - string - 'null' description: A code that identifies the purchased items to the party that is the supplier of the goods/services. This is typically matched to the product code on invoice lines. Required when using line-level invoice matching. example: '1950469687' productName: maxLength: 250 minLength: 0 type: - string - 'null' description: Name of the product example: Envelopes A5 - 1000 pce/package materialGroup: maxLength: 250 minLength: 0 type: - string - 'null' description: A code that groups together several materials or services with the same characteristics example: Communication globalTradeItemNumber: maxLength: 250 minLength: 0 type: - string - 'null' description: The GTIN is a globally unique 14-digit number used to identify trade items, products, or services. Can also be used to match order rows to invoice lines. example: 00012345678905 unspsc: maxLength: 25 minLength: 0 type: - string - 'null' description: The United Nations Standard Products and Services Code is a unique 8-digit number used to identify trade items, products, and services. Can also be used to match order rows to invoice lines. example: '44121504' buyerProductCode: maxLength: 250 minLength: 0 type: - string - 'null' description: A code that identifies purchased items for internal reporting and communication example: env0002 contractNumber: maxLength: 255 minLength: 0 type: - string - 'null' description: Contract number. example: '123456' description: maxLength: 1000 minLength: 0 type: - string - 'null' description: Description of the business document's line item example: '' comment: maxLength: 1000 minLength: 0 type: - string - 'null' description: Free-form text pertinent to this document, conveying information that is not contained explicitly in other structures example: '' requestedDeliveryDate: type: - string - 'null' description: 'Date the goods are to be 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 example: '2018-07-02T07:36:13.053Z' actualDeliveryDate: type: - string - 'null' description: 'Date the goods are to be 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 example: '2018-07-02T07:36:13.053Z' text1: maxLength: 250 minLength: 0 type: - string - 'null' description: Text1-10 are available for customer-specific text fields. example: '' text2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text6: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text7: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text8: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text9: maxLength: 250 minLength: 0 type: - string - 'null' example: '' text10: maxLength: 250 minLength: 0 type: - string - 'null' example: '' numeric1: type: - number - 'null' description: Numeric-5 are available for customer-specific numeric fields. format: double numeric2: type: - number - 'null' format: double example: 0 numeric3: type: - number - 'null' format: double example: 0 numeric4: type: - number - 'null' format: double example: 0 numeric5: type: - number - 'null' format: double example: 0 date1: type: - string - 'null' description: Date1-10 are available for customer-specific date fields. format: date-time example: '2018-07-02T07:36:13.053Z' date2: type: - string - 'null' format: date-time example: '2018-07-02T07:36:13.053Z' date3: type: - string - 'null' format: date-time example: '2018-07-02T07:36:13.053Z' date4: type: - string - 'null' format: date-time example: '2018-07-02T07:36:13.053Z' date5: type: - string - 'null' format: date-time example: '2018-07-02T07:36:13.053Z' orderLineCoding: type: - array - 'null' items: $ref: '#/components/schemas/OrderLineCodingEntity' description: Order line coding is used for adding values to coding dimensions. These values will be used by default when producing coding rows on the invoice line(s) matched to this order line. It is applicable for all matching modes (Standard, Blanket, and Return) except Service POs. goodsReceipts: type: - array - 'null' items: $ref: '#/components/schemas/GoodsReceiptEntity' description: Goods receipts indicate whether the ordered goods or services have been received. Goods receipts are required when using goods receipts -based matching. referenceUsers: type: - array - 'null' items: $ref: '#/components/schemas/OrderLineUserEntity' description: 'Users related to order (buyer, owner, reference person, etc). Note: Not shown in old silverlight based P2P user interface. If this block is sent, userEmail or userExternalCode is required to identify user.' lastUpdated: type: string description: Timestamp when the record was last sent to API. Set automatically. format: date-time additionalProperties: false PurchaseOrdersResponse: required: - purchaseOrders type: object properties: purchaseOrders: type: array items: $ref: '#/components/schemas/PurchaseOrderEntity' 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: '' text6: maxLength: 250 minLength: 0 type: - string - 'null' description: Custom field in the business document example: account text7: maxLength: 250 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' text8: maxLength: 250 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' text9: maxLength: 250 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' text10: maxLength: 250 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' numeric1: type: - number - 'null' description: Numeric1-5 are available for customer-specific numericfields. format: double numeric2: type: - number - 'null' format: double numeric3: type: - number - 'null' format: double numeric4: type: - number - 'null' format: double numeric5: type: - number - 'null' format: double date1: type: - string - 'null' description: Date1-5 are available for customer-specific date fields. format: date-time date2: type: - string - 'null' format: date-time date3: type: - string - 'null' format: date-time date4: type: - string - 'null' format: date-time date5: type: - string - 'null' format: date-time serviceEntrySheetDocId: maxLength: 100 minLength: 0 type: - string - 'null' description: Custom field in the business document example: '' receiptCoding: type: - array - 'null' items: $ref: '#/components/schemas/OrderLineCodingEntity' description: ReceiptCoding (for Service POs only) defines default coding dimension values for matched invoice lines. For Service POs, only one codingRow is allowed. additionalProperties: false 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 PurchaseOrderLineEntity: required: - categoryCode - externalCode - extOrderLineNumber - priceType - unitPrice type: object properties: externalCode: maxLength: 100 minLength: 1 type: string description: Unique external identifier that is used as a key in API. Identifies order line for updates through API. example: 060cb8ea-5464-11ea-a38b-2e728ce88123" extOrderLineNumber: maxLength: 100 minLength: 1 type: string description: Order line number in customer system. example: '1' categoryCode: maxLength: 100 minLength: 0 type: string description: Category code linked to product example: '007' buyerProductCode: maxLength: 250 minLength: 0 type: - string - 'null' description: Product code used by buyer. example: ProjectLaptops100 supplierProductCode: maxLength: 50 minLength: 0 type: - string - 'null' description: Product code used by supplier. example: '912736320' supplierProductName: maxLength: 250 minLength: 0 type: - string - 'null' description: Product name used by supplier. example: Developer laptop, 15 inch manufacturerProductCode: maxLength: 255 minLength: 0 type: - string - 'null' description: Manufacturer product code is an identification number supplied by a manufacturer to uniquely identify products that aren't easily distinquishable from one another. It allows consumers to search for the exact product they need without any technical knowledge. Commonly used for example with automotive or electronics replacement parts. Required P2P 23.10 or later. example: ManufacturerProductCode description: maxLength: 2000 minLength: 0 type: - string - 'null' description: Product description. example: Developer laptop, 15 inch, model MK2160 leadTime: maxLength: 255 minLength: 0 type: - string - 'null' description: Specifies how soon after receiving order the supplier usually is able to deliver the goods. Informative field. example: '' desiredDeliveryDate: type: - string - 'null' description: Delivery date requested by buyer. format: date-time example: '2020-10-24T00:00:00' desiredDeliveryEndDate: type: - string - 'null' description: Buyer requested end date for delivery. format: date-time example: '2020-10-24T00:00:00' allowPartialDeliveries: type: boolean description: Specifies whether the goods need to be delivered in one batch. example: false additionalInfo: maxLength: 2000 minLength: 0 type: - string - 'null' description: Free-text field for additional notes regarding order line. Sent to vendor along with the order. example: one year receiveAutomatically: type: boolean description: "Specifies if order line will be received automatically. \nTrue - Order line will be automatically received(no user input required)\nFalse - Order line will not be automatically received." example: false deliveryInstruction: maxLength: 250 minLength: 0 type: - string - 'null' description: Delivery instruction for supplier. example: Must be delivered before 17:00 plant: maxLength: 100 minLength: 0 type: - string - 'null' description: Plant. example: '' storageLocation: maxLength: 100 minLength: 0 type: - string - 'null' description: Storage location. example: '' unspsc: maxLength: 64 minLength: 0 type: - string - 'null' description: Product classification code (UNSPC). example: '' grNote: maxLength: 100 minLength: 0 type: - string - 'null' description: Note for receiving goods. example: '' lineDataDate1: type: - string - 'null' description: LineDataDate1-5 can be used for customer-specific date fields. This data will go to ‘Line data’ -tab of the order line in P2P. format: date-time example: '2020-10-24T00:00:00' lineDataDate2: type: - string - 'null' format: date-time example: '' lineDataDate3: type: - string - 'null' format: date-time example: '' lineDataDate4: type: - string - 'null' format: date-time example: '' lineDataDate5: type: - string - 'null' format: date-time example: '' lineDataNum1: type: - number - 'null' description: LineDataNum1-5 can be used for customer-specific numeric fields. This data will go to ‘Line data’ -tab of the order line in P2P. format: double lineDataNum2: type: - number - 'null' format: double lineDataNum3: type: - number - 'null' format: double lineDataNum4: type: - number - 'null' format: double lineDataNum5: type: - number - 'null' format: double lineDataText1: maxLength: 250 minLength: 0 type: - string - 'null' description: LineDataText1-5 can be used for customer-specific text fields. This data will go to ‘Line data’ -tab of the order line in P2P. example: '' lineDataText2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' lineDataText3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' lineDataText4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' lineDataText5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' quantity: type: number description: Ordered quantity. format: double example: 1 quantityUnit: maxLength: 10 minLength: 0 type: - string - 'null' description: Unit code for ordered quantity (pcs, kg, litre, boxes, etc). example: PCS quantityUnitName: maxLength: 250 minLength: 0 type: - string - 'null' description: Description for quantityUnit. example: Pieces priceType: enum: - Net - Gross type: string description: Specified whether price been originally net (0) or gross (1). example: gross refundLine: type: boolean description: Specifies whether the line is a refund line. True = refund line, false = not a refund line. Prices needs to be be negative on refund lines. example: false unitPrice: type: number description: Price per unit, without discount. format: double example: 125 subUOM: maxLength: 100 minLength: 0 type: - string - 'null' description: Sub unit of measure. example: '' discountPercent: type: number description: Percentage of discount on order line. This percentage amount is deducted from unitPrice by P2P when calculating discounted price. format: double example: 0 discountPercentReason: maxLength: 250 minLength: 0 type: - string - 'null' description: Reason for discount. example: '' taxCode: maxLength: 32 minLength: 0 type: - string - 'null' description: If empty, tax code will be resolved using tax percent. If both are empty, Basware P2P resolves the value using the tax percent from the purchasing category. example: T25 taxJurisdictionCode: maxLength: 25 minLength: 0 type: - string - 'null' description: Tax juristiction code. example: '' taxPercent: type: - number - 'null' description: When taxCode is provided, taxPercent will be overwritten by the tax percent configured on the specified taxCode. format: double example: 25 taxPercent2: type: - number - 'null' description: When taxCode is provided, taxPercent will be overwritten by the tax percent configured on the specified taxCode. format: double example: 0 conversionNumerator: type: number description: Factor for conversions. format: double conversionDenumerator: type: number description: Factor for conversions. format: double materialGroup: maxLength: 100 minLength: 0 type: - string - 'null' description: Material group. example: '' linePricingDate1: type: - string - 'null' description: LinePricingDate1-5 can be used for customer-specific date fields. This data will go to ‘Pricing’ -tab of the order line in P2P. format: date-time example: '' linePricingDate2: type: - string - 'null' format: date-time example: '' linePricingDate3: type: - string - 'null' format: date-time example: '' linePricingDate4: type: - string - 'null' format: date-time example: '' linePricingDate5: type: - string - 'null' format: date-time example: '' linePricingNum1: type: - number - 'null' description: LinePricingNum1-5 can be used for customer-specific numeric fields. This data will go to ‘Pricing’ -tab of the order line in P2P. format: double linePricingNum2: type: - number - 'null' format: double linePricingNum3: type: - number - 'null' format: double linePricingNum4: type: - number - 'null' format: double linePricingNum5: type: - number - 'null' format: double linePricingText1: maxLength: 250 minLength: 0 type: - string - 'null' description: LinePricingText1-5 can be used for customer-specific text fields. This data will go to ‘Pricing’ -tab of the order line in P2P. example: '' linePricingText2: maxLength: 250 minLength: 0 type: - string - 'null' example: '' linePricingText3: maxLength: 250 minLength: 0 type: - string - 'null' example: '' linePricingText4: maxLength: 250 minLength: 0 type: - string - 'null' example: '' linePricingText5: maxLength: 250 minLength: 0 type: - string - 'null' example: '' codingRows: type: - array - 'null' items: $ref: '#/components/schemas/ImportedPurchaseOrderLineCodingRowEntity' description: Each order line can have only one coding row. deliveryAddress: $ref: '#/components/schemas/DeliveryAddress' additionalProperties: false DeleteResponse: type: object properties: statusApiLink: type: - string - 'null' taskName: type: - string - 'null' taskStatus: type: - string - 'null' additionalProperties: false 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 ResponseEntityList: type: object properties: requestId: type: - string - 'null' description: ID of the request on which error occurred (generated by Basware API). example: fbc082a2-65a4-469c-b230-d84a252f18fc hasErrors: type: boolean description: Specifies whether the request has errors. errors: type: - array - 'null' items: $ref: '#/components/schemas/ErrorEntity' additionalProperties: false description: Errors returned here are returned synchronously from Basware API middle layer. Additional errors coming from target system(s) may be returned through errorFeedbacks API. securitySchemes: Bearer: type: http description: Please insert basic authentication credentials into fields scheme: basic oauth2authentication: type: oauth2 description: Oauth2 client credentials flow. flows: clientCredentials: tokenUrl: https://api.basware.com/v1/tokens scopes: accountingDocuments.read: GET accountingDocuments accountingDocuments.write: POST/PATCH accountingDocuments accountingDocuments.delete: DELETE accountingDocuments accounts.read: GET accounts accounts.write: POST/PATCH accounts accounts.delete: DELETE accounts advancedPermissions.read: GET advancedPermissions advancedPermissions.write: POST/PATCH advancedPermissions advancedPermissions.delete: DELETE advancedPermissions advancedValidations.read: GET advancedValidations advancedValidations.write: POST/PATCH advancedValidations advancedValidations.delete: DELETE advancedValidations applicationGroups.read: GET applicationGroups applicationGroups.write: POST/PATCH applicationGroups companies.read: GET companies companies.write: POST/PATCH companies contracts.delete: DELETE contracts contracts.read: GET contracts contracts.write: POST/PATCH contracts costCenters.read: GET costCenters costCenters.write: POST/PATCH costCenters costCenters.delete: DELETE costCenters errorFeedbacks.read: GET errorFeedbacks errorFeedbacks.write: POST/PATCH errorFeedbacks errorFeedbacks.delete: DELETE errorFeedbacks exchangeRates.read: GET exchangeRates exchangeRates.write: POST/PATCH exchangeRates exchangeRates.delete: DELETE exchangeRates exportedContracts.read: GET exportedContracts exportedContracts.write: POST/PATCH exportedContracts exportedContracts.delete: DELETE exportedContracts exportedContractSpends.read: GET exportedContractSpends exportedContractSpends.write: POST/PATCH exportedContractSpends exportedContractSpends.delete: DELETE exportedContractSpends exportedPurchaseOrders.read: GET exportedPurchaseOrders exportedPurchaseOrders.write: POST/PATCH exportedPurchaseOrders exportedPurchaseOrders.delete: DELETE exportedPurchaseOrders exportedPurchaseRequisitions.read: GET exportedPurchaseRequisitions exportedPurchaseRequisitions.write: POST/PATCH exportedPurchaseRequisitions exportedPurchaseRequisitions.delete: DELETE exportedPurchaseRequisitions lists.read: GET lists lists.write: POST/PATCH lists lists.delete: DELETE lists matchingOrders.read: GET matchingOrders matchingOrders.write: POST/PATCH matchingOrders matchingOrders.delete: DELETE matchingOrders matchingOrderLines.read: GET matchingOrderLines matchingOrderLines.write: POST/PATCH matchingOrderLines matchingOrderLines.delete: DELETE matchingOrderLines paymentTerms.read: GET paymentTerms paymentTerms.write: POST/PATCH paymentTerms paymentTerms.delete: DELETE paymentTerms projects.read: GET projects projects.write: POST/PATCH projects projects.delete: DELETE projects purchaseOrders.read: GET purchaseOrders purchaseOrders.write: POST/PATCH purchaseOrders purchaseOrders.delete: DELETE purchaseOrders purchaseRequisitions.read: GET purchaseRequisitions purchaseRequisitions.write: POST/PATCH purchaseRequisitions purchaseRequisitions.delete: DELETE purchaseRequisitions purchaseGoodsReceipts.read: GET purchaseGoodsReceipts purchaseGoodsReceipts.write: POST/PATCH purchaseGoodsReceipts purchaseGoodsReceipts.delete: DELETE purchaseGoodsReceipts requestStatus.read: GET requestStatus requestStatus.write: POST/PATCH requestStatus subscriptions.read: GET subscriptions subscriptions.write: POST/PATCH subscriptions subscriptions.delete: DELETE subscriptions tasks.read: GET tasks taskStatus.read: GET taskStatus taxCodes.read: GET taxCodes taxCodes.write: POST/PATCH taxCodes taxCodes.delete: DELETE taxCodes users.read: GET users users.write: POST/PATCH users users.delete: DELETE users vendors.read: GET vendors vendors.write: POST/PATCH vendors vendors.delete: DELETE vendors