mod-orders-storage (v7.1)

http://github.com/folio-org/mod-orders-storage

Table of contents

Purchase Order

This module implements the CRUD interface. This API is intended for internal use only. Please use the /orders/composite-orders API provided by mod-orders instead.

/orders-storage/purchase-orders

Collection of purchase-order items.

GET /orders-storage/purchase-orders

Get list of purchase orders

GET /orders-storage/purchase-orders
Query Parameters
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example code

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    ["code", "MEDGRANT", "="]
    
  • totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)

    How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords

    Example:

    none
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10

Response 200

Returns a list of purchase-order items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "collection of purchase order records",
  "type": "object",
  "properties": {
    "purchaseOrders": {
      "description": "collection of purchase order records",
      "type": "array",
      "id": "purchaseOrders",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "purchase order",
        "javaName": "PurchaseOrder",
        "properties": {
          "id": {
            "description": "UUID of this purchase order",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "approved": {
            "description": "whether or not the purchase order has been approved",
            "type": "boolean",
            "default": false
          },
          "approvedById": {
            "description": "UUID of the user approving the order",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "approvalDate": {
            "description": "Date and time when purchase order was approved",
            "type": "string",
            "format": "date-time"
          },
          "assignedTo": {
            "description": "UUID of the user this purchase order his assigned to",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "billTo": {
            "description": "UUID of the billing address",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "closeReason": {
            "description": "Close reason for purchase order",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "properties": {
              "reason": {
                "description": "close reason description",
                "type": "string"
              },
              "note": {
                "description": "free-form notes related to closing reason",
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "openedById": {
            "description": "UUID of the user opening the Order",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "dateOrdered": {
            "description": "Date and time when purchase order was opened",
            "type": "string",
            "format": "date-time"
          },
          "manualPo": {
            "description": "if true, order cannot be sent automatically, e.g. via EDI",
            "type": "boolean"
          },
          "notes": {
            "description": "free-form notes associated with this purchase order",
            "id": "notes",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "poNumber": {
            "description": "A human readable ID assigned to this purchase order",
            "type": "string",
            "pattern": "^[a-zA-Z0-9]{1,22}$"
          },
          "poNumberPrefix": {
            "description": "Purchase order number prefix",
            "type": "string"
          },
          "poNumberSuffix": {
            "description": "Purchase order number suffix",
            "type": "string"
          },
          "orderType": {
            "description": "the purchase order type",
            "type": "string",
            "enum": [
              "One-Time",
              "Ongoing"
            ]
          },
          "reEncumber": {
            "description": "indicates this purchase order should be re-encumbered each fiscal year. Only applies to ongoing orders",
            "type": "boolean",
            "default": false
          },
          "ongoing": {
            "description": "Ongoing information associated with this order",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "properties": {
              "interval": {
                "description": "Renewal interval (in days)",
                "type": "integer"
              },
              "isSubscription": {
                "description": "Whether or not this is a subscription",
                "type": "boolean",
                "default": false
              },
              "manualRenewal": {
                "description": "Whether or not this is a manual renewal",
                "type": "boolean",
                "default": false
              },
              "notes": {
                "description": "Notes associated with the Ongoing order",
                "type": "string"
              },
              "reviewPeriod": {
                "description": "Time prior to renewal where changes can be made to subscription",
                "type": "integer"
              },
              "renewalDate": {
                "description": "The date this Ongoing PO's order lines were renewed",
                "type": "string",
                "format": "date-time"
              },
              "reviewDate": {
                "description": "Date when Order has to be reviewed",
                "type": "string",
                "format": "date-time"
              }
            },
            "additionalProperties": false
          },
          "shipTo": {
            "description": "UUID of the shipping address",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "template": {
            "description": "The ID of the order template used for this order. Applies to both PO and POL",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "vendor": {
            "description": "UUID of the vendor record",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "workflowStatus": {
            "description": "the workflow status for this purchase order",
            "type": "string",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "enum": [
              "Pending",
              "Open",
              "Closed"
            ],
            "default": "Pending"
          },
          "acqUnitIds": {
            "description": "acquisition unit ids associated with this purchase order",
            "type": "array",
            "items": {
              "$schema": "http://json-schema.org/draft-04/schema#",
              "description": "The UUID format string",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          "nextPolNumber": {
            "description": "Number that will be used next time a purchase order line is created",
            "type": "integer",
            "readonly": true
          },
          "tags": {
            "type": "object",
            "description": "arbitrary tags associated with this purchase order",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "tags.schema",
            "title": "tags",
            "properties": {
              "tagList": {
                "description": "List of tags",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          },
          "customFields": {
            "description": "Object that contains custom field",
            "type": "object",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "javaName": "CustomFields",
            "additionalProperties": true
          },
          "fiscalYearId": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "The UUID format string",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "metadata": {
            "type": "object",
            "readonly": true,
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "metadata.schema",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "properties": {
              "createdDate": {
                "description": "Date and time when the record was created",
                "type": "string",
                "format": "date-time"
              },
              "createdByUserId": {
                "description": "ID of the user who created the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "createdByUsername": {
                "description": "Username of the user who created the record (when available)",
                "type": "string"
              },
              "updatedDate": {
                "description": "Date and time when the record was last updated",
                "type": "string",
                "format": "date-time"
              },
              "updatedByUserId": {
                "description": "ID of the user who last updated the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "updatedByUsername": {
                "description": "Username of the user who last updated the record (when available)",
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "createdDate"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "totalRecords": {
      "description": "The number of objects contained in this collection",
      "type": "integer"
    }
  },
  "additionalProperties": false,
  "required": [
    "purchaseOrders",
    "totalRecords"
  ]
}

Example:

{
  "purchaseOrders": [
    {
      "id": "0804ddec-6545-404a-b54d-a693f505681d",
      "approved": true,
      "approvedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
      "approvalDate": "2018-07-19T00:00:00.000Z",
      "assignedTo": "ab18897b-0e40-4f31-896b-9c9adc979a88",
      "billTo": "1df71bab-818c-46ea-988b-a23676d91ae6",
      "closeReason": {
        "reason": "No longer available",
        "note": "Items are no longer available to purchase"
      },
      "manualPo": false,
      "notes": [
        "ABCDEFGHIJKLMNO",
        "ABCDEFGHIJKLMNOPQRST",
        "ABCDEFGHIJKLMNOPQRSTUV"
      ],
      "orderType": "Ongoing",
      "poNumber": "ABC268758XYZ",
      "poNumberPrefix": "AB",
      "poNumberSuffix": "XYZ",
      "reEncumber": false,
      "ongoing": {
        "interval": 182,
        "isSubscription": false,
        "manualRenewal": true,
        "reviewPeriod": 30,
        "renewalDate": "2019-04-09T00:00:00.000Z"
      },
      "shipTo": "0830111e-dcf1-4897-9eee-dcd1ab44adce",
      "template": "678323d2-3d86-4a69-8674-bbd4f8eecb33",
      "vendor": "168f8a86-d26c-406e-813f-c7527f241ac3",
      "workflowStatus": "Pending",
      "tags": {
        "tagList": [
          "important"
        ]
      },
      "acqUnitIds": [
        "1895e539-8dac-441e-b1f5-aab62b3fde60",
        "47f504bd-0c1b-498e-a2ae-e2f0a0cea273"
      ],
      "customFields": {
        "membership": "opt_0"
      },
      "metadata": {
        "createdDate": "2018-07-19T00:00:00.000+0000",
        "createdByUserId": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1"
      }
    }
  ],
  "totalRecords": 1
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list purchase-orders -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list purchase-orders -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /orders-storage/purchase-orders

Create a new purchase-order item.

POST /orders-storage/purchase-orders
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "purchase order",
  "type": "object",
  "javaName": "PurchaseOrder",
  "properties": {
    "id": {
      "description": "UUID of this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approved": {
      "description": "whether or not the purchase order has been approved",
      "type": "boolean",
      "default": false
    },
    "approvedById": {
      "description": "UUID of the user approving the order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approvalDate": {
      "description": "Date and time when purchase order was approved",
      "type": "string",
      "format": "date-time"
    },
    "assignedTo": {
      "description": "UUID of the user this purchase order his assigned to",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "billTo": {
      "description": "UUID of the billing address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "closeReason": {
      "description": "Close reason for purchase order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "reason": {
          "description": "close reason description",
          "type": "string"
        },
        "note": {
          "description": "free-form notes related to closing reason",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "openedById": {
      "description": "UUID of the user opening the Order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "dateOrdered": {
      "description": "Date and time when purchase order was opened",
      "type": "string",
      "format": "date-time"
    },
    "manualPo": {
      "description": "if true, order cannot be sent automatically, e.g. via EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "free-form notes associated with this purchase order",
      "id": "notes",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "poNumber": {
      "description": "A human readable ID assigned to this purchase order",
      "type": "string",
      "pattern": "^[a-zA-Z0-9]{1,22}$"
    },
    "poNumberPrefix": {
      "description": "Purchase order number prefix",
      "type": "string"
    },
    "poNumberSuffix": {
      "description": "Purchase order number suffix",
      "type": "string"
    },
    "orderType": {
      "description": "the purchase order type",
      "type": "string",
      "enum": [
        "One-Time",
        "Ongoing"
      ]
    },
    "reEncumber": {
      "description": "indicates this purchase order should be re-encumbered each fiscal year. Only applies to ongoing orders",
      "type": "boolean",
      "default": false
    },
    "ongoing": {
      "description": "Ongoing information associated with this order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "interval": {
          "description": "Renewal interval (in days)",
          "type": "integer"
        },
        "isSubscription": {
          "description": "Whether or not this is a subscription",
          "type": "boolean",
          "default": false
        },
        "manualRenewal": {
          "description": "Whether or not this is a manual renewal",
          "type": "boolean",
          "default": false
        },
        "notes": {
          "description": "Notes associated with the Ongoing order",
          "type": "string"
        },
        "reviewPeriod": {
          "description": "Time prior to renewal where changes can be made to subscription",
          "type": "integer"
        },
        "renewalDate": {
          "description": "The date this Ongoing PO's order lines were renewed",
          "type": "string",
          "format": "date-time"
        },
        "reviewDate": {
          "description": "Date when Order has to be reviewed",
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "shipTo": {
      "description": "UUID of the shipping address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "template": {
      "description": "The ID of the order template used for this order. Applies to both PO and POL",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "vendor": {
      "description": "UUID of the vendor record",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "workflowStatus": {
      "description": "the workflow status for this purchase order",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "enum": [
        "Pending",
        "Open",
        "Closed"
      ],
      "default": "Pending"
    },
    "acqUnitIds": {
      "description": "acquisition unit ids associated with this purchase order",
      "type": "array",
      "items": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The UUID format string",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
      }
    },
    "nextPolNumber": {
      "description": "Number that will be used next time a purchase order line is created",
      "type": "integer",
      "readonly": true
    },
    "tags": {
      "type": "object",
      "description": "arbitrary tags associated with this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "customFields": {
      "description": "Object that contains custom field",
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "javaName": "CustomFields",
      "additionalProperties": true
    },
    "fiscalYearId": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description": "The UUID format string",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "additionalProperties": false
}

Example:

{
  "id": "0804ddec-6545-404a-b54d-a693f505681d",
  "approved": true,
  "approvedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "approvalDate": "2018-08-19T00:00:00.000Z",
  "assignedTo": "ab18897b-0e40-4f31-896b-9c9adc979a88",
  "billTo": "1df71bab-818c-46ea-988b-a23676d91ae6",
  "closeReason": {
    "reason": "Shipping delay",
    "note": "Two years is too long for shipping of 'Calendar for Year 2017'"
  },
  "openedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "dateOrdered": "2018-08-20T00:00:00.000+0000",
  "manualPo": false,
  "notes": [
    "ABCDEFGHIJKLMNO",
    "ABCDEFGHIJKLMNOPQRST",
    "ABCDEFGHIJKLMNOPQRSTUV"
  ],
  "orderType": "Ongoing",
  "poNumber": "AB268758XYZ",
  "poNumberPrefix": "AB",
  "poNumberSuffix": "XYZ",
  "reEncumber": false,
  "ongoing": {
    "interval": 182,
    "isSubscription": true,
    "manualRenewal": true,
    "notes" : "Some note",
    "reviewPeriod": 30,
    "renewalDate": "2019-04-09T00:00:00.000Z",
    "reviewDate" : "2019-03-09T00:00:00.000Z"
  },
  "shipTo": "0830111e-dcf1-4897-9eee-dcd1ab44adce",
  "template": "678323d2-3d86-4a69-8674-bbd4f8eecb33",
  "vendor": "168f8a86-d26c-406e-813f-c7527f241ac3",
  "workflowStatus": "Closed",
  "tags": {
    "tagList": [
      "important"
    ]
  },
  "acqUnitIds": [
    "1895e539-8dac-441e-b1f5-aab62b3fde60",
    "47f504bd-0c1b-498e-a2ae-e2f0a0cea273"
  ],
  "nextPolNumber": 1,
  "customFields": {
    "membership": "opt_0"
  },
  "fiscalYearId": "43aba0df-70e4-435e-8463-d8f730d19e0b",
  "metadata": {
    "createdDate": "2018-08-19T00:00:00.000+0000",
    "createdByUserId": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1"
  }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created purchase-order item

Body

Media type: application/json

Type: any

Example:

{
  "id": "0804ddec-6545-404a-b54d-a693f505681d",
  "approved": true,
  "approvedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "approvalDate": "2018-08-19T00:00:00.000Z",
  "assignedTo": "ab18897b-0e40-4f31-896b-9c9adc979a88",
  "billTo": "1df71bab-818c-46ea-988b-a23676d91ae6",
  "closeReason": {
    "reason": "Shipping delay",
    "note": "Two years is too long for shipping of 'Calendar for Year 2017'"
  },
  "openedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "dateOrdered": "2018-08-20T00:00:00.000+0000",
  "manualPo": false,
  "notes": [
    "ABCDEFGHIJKLMNO",
    "ABCDEFGHIJKLMNOPQRST",
    "ABCDEFGHIJKLMNOPQRSTUV"
  ],
  "orderType": "Ongoing",
  "poNumber": "AB268758XYZ",
  "poNumberPrefix": "AB",
  "poNumberSuffix": "XYZ",
  "reEncumber": false,
  "ongoing": {
    "interval": 182,
    "isSubscription": true,
    "manualRenewal": true,
    "notes" : "Some note",
    "reviewPeriod": 30,
    "renewalDate": "2019-04-09T00:00:00.000Z",
    "reviewDate" : "2019-03-09T00:00:00.000Z"
  },
  "shipTo": "0830111e-dcf1-4897-9eee-dcd1ab44adce",
  "template": "678323d2-3d86-4a69-8674-bbd4f8eecb33",
  "vendor": "168f8a86-d26c-406e-813f-c7527f241ac3",
  "workflowStatus": "Closed",
  "tags": {
    "tagList": [
      "important"
    ]
  },
  "acqUnitIds": [
    "1895e539-8dac-441e-b1f5-aab62b3fde60",
    "47f504bd-0c1b-498e-a2ae-e2f0a0cea273"
  ],
  "nextPolNumber": 1,
  "customFields": {
    "membership": "opt_0"
  },
  "fiscalYearId": "43aba0df-70e4-435e-8463-d8f730d19e0b",
  "metadata": {
    "createdDate": "2018-08-19T00:00:00.000+0000",
    "createdByUserId": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1"
  }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add purchase-order -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create purchase-orders -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /orders-storage/purchase-orders/{id}

Retrieve purchase-order item with given {purchase-orderId}

GET /orders-storage/purchase-orders/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Purchase Order

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "purchase order",
  "type": "object",
  "javaName": "PurchaseOrder",
  "properties": {
    "id": {
      "description": "UUID of this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approved": {
      "description": "whether or not the purchase order has been approved",
      "type": "boolean",
      "default": false
    },
    "approvedById": {
      "description": "UUID of the user approving the order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approvalDate": {
      "description": "Date and time when purchase order was approved",
      "type": "string",
      "format": "date-time"
    },
    "assignedTo": {
      "description": "UUID of the user this purchase order his assigned to",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "billTo": {
      "description": "UUID of the billing address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "closeReason": {
      "description": "Close reason for purchase order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "reason": {
          "description": "close reason description",
          "type": "string"
        },
        "note": {
          "description": "free-form notes related to closing reason",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "openedById": {
      "description": "UUID of the user opening the Order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "dateOrdered": {
      "description": "Date and time when purchase order was opened",
      "type": "string",
      "format": "date-time"
    },
    "manualPo": {
      "description": "if true, order cannot be sent automatically, e.g. via EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "free-form notes associated with this purchase order",
      "id": "notes",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "poNumber": {
      "description": "A human readable ID assigned to this purchase order",
      "type": "string",
      "pattern": "^[a-zA-Z0-9]{1,22}$"
    },
    "poNumberPrefix": {
      "description": "Purchase order number prefix",
      "type": "string"
    },
    "poNumberSuffix": {
      "description": "Purchase order number suffix",
      "type": "string"
    },
    "orderType": {
      "description": "the purchase order type",
      "type": "string",
      "enum": [
        "One-Time",
        "Ongoing"
      ]
    },
    "reEncumber": {
      "description": "indicates this purchase order should be re-encumbered each fiscal year. Only applies to ongoing orders",
      "type": "boolean",
      "default": false
    },
    "ongoing": {
      "description": "Ongoing information associated with this order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "interval": {
          "description": "Renewal interval (in days)",
          "type": "integer"
        },
        "isSubscription": {
          "description": "Whether or not this is a subscription",
          "type": "boolean",
          "default": false
        },
        "manualRenewal": {
          "description": "Whether or not this is a manual renewal",
          "type": "boolean",
          "default": false
        },
        "notes": {
          "description": "Notes associated with the Ongoing order",
          "type": "string"
        },
        "reviewPeriod": {
          "description": "Time prior to renewal where changes can be made to subscription",
          "type": "integer"
        },
        "renewalDate": {
          "description": "The date this Ongoing PO's order lines were renewed",
          "type": "string",
          "format": "date-time"
        },
        "reviewDate": {
          "description": "Date when Order has to be reviewed",
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "shipTo": {
      "description": "UUID of the shipping address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "template": {
      "description": "The ID of the order template used for this order. Applies to both PO and POL",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "vendor": {
      "description": "UUID of the vendor record",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "workflowStatus": {
      "description": "the workflow status for this purchase order",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "enum": [
        "Pending",
        "Open",
        "Closed"
      ],
      "default": "Pending"
    },
    "acqUnitIds": {
      "description": "acquisition unit ids associated with this purchase order",
      "type": "array",
      "items": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The UUID format string",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
      }
    },
    "nextPolNumber": {
      "description": "Number that will be used next time a purchase order line is created",
      "type": "integer",
      "readonly": true
    },
    "tags": {
      "type": "object",
      "description": "arbitrary tags associated with this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "customFields": {
      "description": "Object that contains custom field",
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "javaName": "CustomFields",
      "additionalProperties": true
    },
    "fiscalYearId": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description": "The UUID format string",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "additionalProperties": false
}

Example:

{
  "id": "0804ddec-6545-404a-b54d-a693f505681d",
  "approved": true,
  "approvedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "approvalDate": "2018-08-19T00:00:00.000Z",
  "assignedTo": "ab18897b-0e40-4f31-896b-9c9adc979a88",
  "billTo": "1df71bab-818c-46ea-988b-a23676d91ae6",
  "closeReason": {
    "reason": "Shipping delay",
    "note": "Two years is too long for shipping of 'Calendar for Year 2017'"
  },
  "openedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "dateOrdered": "2018-08-20T00:00:00.000+0000",
  "manualPo": false,
  "notes": [
    "ABCDEFGHIJKLMNO",
    "ABCDEFGHIJKLMNOPQRST",
    "ABCDEFGHIJKLMNOPQRSTUV"
  ],
  "orderType": "Ongoing",
  "poNumber": "AB268758XYZ",
  "poNumberPrefix": "AB",
  "poNumberSuffix": "XYZ",
  "reEncumber": false,
  "ongoing": {
    "interval": 182,
    "isSubscription": true,
    "manualRenewal": true,
    "notes" : "Some note",
    "reviewPeriod": 30,
    "renewalDate": "2019-04-09T00:00:00.000Z",
    "reviewDate" : "2019-03-09T00:00:00.000Z"
  },
  "shipTo": "0830111e-dcf1-4897-9eee-dcd1ab44adce",
  "template": "678323d2-3d86-4a69-8674-bbd4f8eecb33",
  "vendor": "168f8a86-d26c-406e-813f-c7527f241ac3",
  "workflowStatus": "Closed",
  "tags": {
    "tagList": [
      "important"
    ]
  },
  "acqUnitIds": [
    "1895e539-8dac-441e-b1f5-aab62b3fde60",
    "47f504bd-0c1b-498e-a2ae-e2f0a0cea273"
  ],
  "nextPolNumber": 1,
  "customFields": {
    "membership": "opt_0"
  },
  "fiscalYearId": "43aba0df-70e4-435e-8463-d8f730d19e0b",
  "metadata": {
    "createdDate": "2018-08-19T00:00:00.000+0000",
    "createdByUserId": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1"
  }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"purchase-order not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /orders-storage/purchase-orders/{id}

Delete purchase-order item with given {purchase-orderId}

DELETE /orders-storage/purchase-orders/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Purchase Order

Response 204

Item deleted successfully

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete purchase-order -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"purchase-order not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

PUT /orders-storage/purchase-orders/{id}

Update purchase-order item with given {purchase-orderId}

PUT /orders-storage/purchase-orders/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Purchase Order

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "purchase order",
  "type": "object",
  "javaName": "PurchaseOrder",
  "properties": {
    "id": {
      "description": "UUID of this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approved": {
      "description": "whether or not the purchase order has been approved",
      "type": "boolean",
      "default": false
    },
    "approvedById": {
      "description": "UUID of the user approving the order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "approvalDate": {
      "description": "Date and time when purchase order was approved",
      "type": "string",
      "format": "date-time"
    },
    "assignedTo": {
      "description": "UUID of the user this purchase order his assigned to",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "billTo": {
      "description": "UUID of the billing address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "closeReason": {
      "description": "Close reason for purchase order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "reason": {
          "description": "close reason description",
          "type": "string"
        },
        "note": {
          "description": "free-form notes related to closing reason",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "openedById": {
      "description": "UUID of the user opening the Order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "dateOrdered": {
      "description": "Date and time when purchase order was opened",
      "type": "string",
      "format": "date-time"
    },
    "manualPo": {
      "description": "if true, order cannot be sent automatically, e.g. via EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "free-form notes associated with this purchase order",
      "id": "notes",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "poNumber": {
      "description": "A human readable ID assigned to this purchase order",
      "type": "string",
      "pattern": "^[a-zA-Z0-9]{1,22}$"
    },
    "poNumberPrefix": {
      "description": "Purchase order number prefix",
      "type": "string"
    },
    "poNumberSuffix": {
      "description": "Purchase order number suffix",
      "type": "string"
    },
    "orderType": {
      "description": "the purchase order type",
      "type": "string",
      "enum": [
        "One-Time",
        "Ongoing"
      ]
    },
    "reEncumber": {
      "description": "indicates this purchase order should be re-encumbered each fiscal year. Only applies to ongoing orders",
      "type": "boolean",
      "default": false
    },
    "ongoing": {
      "description": "Ongoing information associated with this order",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "interval": {
          "description": "Renewal interval (in days)",
          "type": "integer"
        },
        "isSubscription": {
          "description": "Whether or not this is a subscription",
          "type": "boolean",
          "default": false
        },
        "manualRenewal": {
          "description": "Whether or not this is a manual renewal",
          "type": "boolean",
          "default": false
        },
        "notes": {
          "description": "Notes associated with the Ongoing order",
          "type": "string"
        },
        "reviewPeriod": {
          "description": "Time prior to renewal where changes can be made to subscription",
          "type": "integer"
        },
        "renewalDate": {
          "description": "The date this Ongoing PO's order lines were renewed",
          "type": "string",
          "format": "date-time"
        },
        "reviewDate": {
          "description": "Date when Order has to be reviewed",
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "shipTo": {
      "description": "UUID of the shipping address",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "template": {
      "description": "The ID of the order template used for this order. Applies to both PO and POL",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "vendor": {
      "description": "UUID of the vendor record",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "workflowStatus": {
      "description": "the workflow status for this purchase order",
      "type": "string",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "enum": [
        "Pending",
        "Open",
        "Closed"
      ],
      "default": "Pending"
    },
    "acqUnitIds": {
      "description": "acquisition unit ids associated with this purchase order",
      "type": "array",
      "items": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The UUID format string",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
      }
    },
    "nextPolNumber": {
      "description": "Number that will be used next time a purchase order line is created",
      "type": "integer",
      "readonly": true
    },
    "tags": {
      "type": "object",
      "description": "arbitrary tags associated with this purchase order",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "tags.schema",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "customFields": {
      "description": "Object that contains custom field",
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "javaName": "CustomFields",
      "additionalProperties": true
    },
    "fiscalYearId": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description": "The UUID format string",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    }
  },
  "additionalProperties": false
}

Example:

{
  "id": "0804ddec-6545-404a-b54d-a693f505681d",
  "approved": true,
  "approvedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "approvalDate": "2018-08-19T00:00:00.000Z",
  "assignedTo": "ab18897b-0e40-4f31-896b-9c9adc979a88",
  "billTo": "1df71bab-818c-46ea-988b-a23676d91ae6",
  "closeReason": {
    "reason": "Shipping delay",
    "note": "Two years is too long for shipping of 'Calendar for Year 2017'"
  },
  "openedById": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1",
  "dateOrdered": "2018-08-20T00:00:00.000+0000",
  "manualPo": false,
  "notes": [
    "ABCDEFGHIJKLMNO",
    "ABCDEFGHIJKLMNOPQRST",
    "ABCDEFGHIJKLMNOPQRSTUV"
  ],
  "orderType": "Ongoing",
  "poNumber": "AB268758XYZ",
  "poNumberPrefix": "AB",
  "poNumberSuffix": "XYZ",
  "reEncumber": false,
  "ongoing": {
    "interval": 182,
    "isSubscription": true,
    "manualRenewal": true,
    "notes" : "Some note",
    "reviewPeriod": 30,
    "renewalDate": "2019-04-09T00:00:00.000Z",
    "reviewDate" : "2019-03-09T00:00:00.000Z"
  },
  "shipTo": "0830111e-dcf1-4897-9eee-dcd1ab44adce",
  "template": "678323d2-3d86-4a69-8674-bbd4f8eecb33",
  "vendor": "168f8a86-d26c-406e-813f-c7527f241ac3",
  "workflowStatus": "Closed",
  "tags": {
    "tagList": [
      "important"
    ]
  },
  "acqUnitIds": [
    "1895e539-8dac-441e-b1f5-aab62b3fde60",
    "47f504bd-0c1b-498e-a2ae-e2f0a0cea273"
  ],
  "nextPolNumber": 1,
  "customFields": {
    "membership": "opt_0"
  },
  "fiscalYearId": "43aba0df-70e4-435e-8463-d8f730d19e0b",
  "metadata": {
    "createdDate": "2018-08-19T00:00:00.000+0000",
    "createdByUserId": "28d1057c-d137-11e8-a8d5-f2801f1b9fd1"
  }
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update purchase-order -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"purchase-order not found"

Response 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator