Coupa · Schema

Coupa Purchase Order

Schema representing a Coupa purchase order, which is a commitment to purchase goods or services from a supplier. Based on the Coupa Core API purchase orders resource as documented at compass.coupa.com.

BSMBusiness Spend ManagementCloud PlatformEnterpriseFinancial ManagementInvoicingProcurementSupply Chain

Properties

Name Type Description
id integer Coupa unique internal identifier for the purchase order.
po-number string Purchase order number. May be auto-generated by Coupa or provided externally.
status string Current status of the purchase order in its lifecycle.
type string Order type classification. ExternalOrderHeader for externally created purchase orders.
version integer PO supplier version number. Increments when revisions are sent to the supplier.
internal-revision integer Internal revision number. Increases each time a change is made to the purchase order.
change-type stringnull Indicates the last modification method applied to the purchase order.
confirmation_status stringnull Current confirmation state from the supplier.
acknowledged-flag boolean Indicates whether the purchase order has been acknowledged by the supplier.
acknowledged-at stringnull Timestamp when the purchase order was acknowledged by the supplier.
total numbernull Total monetary amount of the purchase order, calculated from order lines.
currency object Transaction currency for the purchase order.
supplier object The supplier (vendor) associated with this purchase order.
supplier-site object Specific supplier site or location for the order.
requester object The user who requested the purchase order.
ship-to-address object Delivery destination address for the ordered goods or services.
ship-to-attention stringnull Recipient contact name at the shipping address.
ship-to-user object Designated user to receive the goods.
payment-term object Payment schedule terms for the purchase order.
payment-method stringnull Payment processing method for the order.
shipping-term object Shipping and delivery terms for the purchase order.
order-lines array Collection of line items on the purchase order.
requisition-header objectnull Reference to the source requisition that generated this purchase order.
invoice-stop boolean When true, invoicing is blocked for this purchase order.
exported boolean Indicates whether the purchase order has been exported to an external system (e.g., ERP).
last-exported-at stringnull Timestamp when the purchase order was last exported.
hide-price boolean Supplier-facing price visibility control. When true, prices are hidden from the supplier.
price-hidden boolean Indicates whether pricing is currently hidden from the supplier.
transmission-method-override stringnull Override for the default PO transmission method to the supplier.
transmission-status stringnull Current delivery/transmission status of the purchase order.
transmission-emails stringnull Comma-separated list of email addresses used for PO transmission.
coupa-accelerate-status stringnull Status indicating whether the associated invoice has discount payment terms.
classification stringnull Order classification category.
confirm-by-hrs integernull Number of hours the supplier has to confirm the purchase order.
order-confirmation-level integernull Confirmation depth indicator (0=not_applicable, 1=header, 2=line).
attachments array File attachments linked to the purchase order.
milestones array Procurement milestone markers associated with the purchase order.
pcard objectnull Purchasing card reference for the order.
created-at string Timestamp when the purchase order was created. Automatically set by Coupa.
updated-at string Timestamp when the purchase order was last updated. Automatically set by Coupa.
created-by object The user who created the purchase order.
updated-by object The user who last updated the purchase order.
View JSON Schema on GitHub

JSON Schema

coupa-purchase-order-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-search/coupa/json-schema/coupa-purchase-order-schema.json",
  "title": "Coupa Purchase Order",
  "description": "Schema representing a Coupa purchase order, which is a commitment to purchase goods or services from a supplier. Based on the Coupa Core API purchase orders resource as documented at compass.coupa.com.",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Coupa unique internal identifier for the purchase order.",
      "readOnly": true
    },
    "po-number": {
      "type": "string",
      "description": "Purchase order number. May be auto-generated by Coupa or provided externally.",
      "maxLength": 20
    },
    "status": {
      "type": "string",
      "description": "Current status of the purchase order in its lifecycle.",
      "enum": [
        "buyer_hold",
        "cancelled",
        "closed",
        "currency_hold",
        "draft",
        "error",
        "expensed",
        "issued",
        "supplier_hold",
        "supplier_window_hold",
        "exported"
      ]
    },
    "type": {
      "type": "string",
      "description": "Order type classification. ExternalOrderHeader for externally created purchase orders.",
      "enum": [
        "ExternalOrderHeader"
      ]
    },
    "version": {
      "type": "integer",
      "description": "PO supplier version number. Increments when revisions are sent to the supplier."
    },
    "internal-revision": {
      "type": "integer",
      "description": "Internal revision number. Increases each time a change is made to the purchase order.",
      "readOnly": true
    },
    "change-type": {
      "type": ["string", "null"],
      "description": "Indicates the last modification method applied to the purchase order.",
      "enum": ["change", "revision", "confirmation", null]
    },
    "confirmation_status": {
      "type": ["string", "null"],
      "description": "Current confirmation state from the supplier.",
      "enum": ["pending_supplier_action", "confirmed", "partially_confirmed", "completed", "rejected", null]
    },
    "acknowledged-flag": {
      "type": "boolean",
      "description": "Indicates whether the purchase order has been acknowledged by the supplier."
    },
    "acknowledged-at": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "Timestamp when the purchase order was acknowledged by the supplier."
    },
    "total": {
      "type": ["number", "null"],
      "description": "Total monetary amount of the purchase order, calculated from order lines.",
      "readOnly": true
    },
    "currency": {
      "$ref": "#/$defs/CurrencyReference",
      "description": "Transaction currency for the purchase order."
    },
    "supplier": {
      "$ref": "#/$defs/SupplierReference",
      "description": "The supplier (vendor) associated with this purchase order."
    },
    "supplier-site": {
      "$ref": "#/$defs/SupplierSiteReference",
      "description": "Specific supplier site or location for the order."
    },
    "requester": {
      "$ref": "#/$defs/UserReference",
      "description": "The user who requested the purchase order."
    },
    "ship-to-address": {
      "$ref": "#/$defs/AddressReference",
      "description": "Delivery destination address for the ordered goods or services."
    },
    "ship-to-attention": {
      "type": ["string", "null"],
      "description": "Recipient contact name at the shipping address.",
      "maxLength": 255
    },
    "ship-to-user": {
      "$ref": "#/$defs/UserReference",
      "description": "Designated user to receive the goods."
    },
    "payment-term": {
      "$ref": "#/$defs/PaymentTermReference",
      "description": "Payment schedule terms for the purchase order."
    },
    "payment-method": {
      "type": ["string", "null"],
      "description": "Payment processing method for the order.",
      "enum": ["invoice", "pcard", "invoice_only", "pcard_only", "virtual_card", null]
    },
    "shipping-term": {
      "$ref": "#/$defs/ShippingTermReference",
      "description": "Shipping and delivery terms for the purchase order."
    },
    "order-lines": {
      "type": "array",
      "description": "Collection of line items on the purchase order.",
      "items": {
        "$ref": "#/$defs/OrderLine"
      }
    },
    "requisition-header": {
      "type": ["object", "null"],
      "description": "Reference to the source requisition that generated this purchase order.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier of the source requisition."
        }
      }
    },
    "invoice-stop": {
      "type": "boolean",
      "description": "When true, invoicing is blocked for this purchase order."
    },
    "exported": {
      "type": "boolean",
      "description": "Indicates whether the purchase order has been exported to an external system (e.g., ERP)."
    },
    "last-exported-at": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "Timestamp when the purchase order was last exported."
    },
    "hide-price": {
      "type": "boolean",
      "description": "Supplier-facing price visibility control. When true, prices are hidden from the supplier."
    },
    "price-hidden": {
      "type": "boolean",
      "description": "Indicates whether pricing is currently hidden from the supplier."
    },
    "transmission-method-override": {
      "type": ["string", "null"],
      "description": "Override for the default PO transmission method to the supplier.",
      "enum": ["supplier_default", "email", "cxml", "xml", "do_not_transmit", null]
    },
    "transmission-status": {
      "type": ["string", "null"],
      "description": "Current delivery/transmission status of the purchase order.",
      "enum": ["sent_via_email", "sent_via_cxml", "sent_via_xml", "pending", "not_sent", null]
    },
    "transmission-emails": {
      "type": ["string", "null"],
      "description": "Comma-separated list of email addresses used for PO transmission."
    },
    "coupa-accelerate-status": {
      "type": ["string", "null"],
      "description": "Status indicating whether the associated invoice has discount payment terms."
    },
    "classification": {
      "type": ["string", "null"],
      "description": "Order classification category.",
      "enum": ["msp", "supplier", "vms", null]
    },
    "confirm-by-hrs": {
      "type": ["integer", "null"],
      "description": "Number of hours the supplier has to confirm the purchase order."
    },
    "order-confirmation-level": {
      "type": ["integer", "null"],
      "description": "Confirmation depth indicator (0=not_applicable, 1=header, 2=line)."
    },
    "attachments": {
      "type": "array",
      "description": "File attachments linked to the purchase order.",
      "items": {
        "$ref": "#/$defs/AttachmentReference"
      }
    },
    "milestones": {
      "type": "array",
      "description": "Procurement milestone markers associated with the purchase order.",
      "items": {
        "$ref": "#/$defs/MilestoneReference"
      }
    },
    "pcard": {
      "type": ["object", "null"],
      "description": "Purchasing card reference for the order.",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "created-at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the purchase order was created. Automatically set by Coupa.",
      "readOnly": true
    },
    "updated-at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the purchase order was last updated. Automatically set by Coupa.",
      "readOnly": true
    },
    "created-by": {
      "$ref": "#/$defs/UserReference",
      "description": "The user who created the purchase order."
    },
    "updated-by": {
      "$ref": "#/$defs/UserReference",
      "description": "The user who last updated the purchase order."
    }
  },
  "required": [
    "type",
    "supplier",
    "currency",
    "order-lines"
  ],
  "$defs": {
    "UserReference": {
      "type": "object",
      "description": "Reference to a Coupa user.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the user."
        },
        "login": {
          "type": "string",
          "description": "User login name."
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "User email address."
        }
      }
    },
    "SupplierReference": {
      "type": "object",
      "description": "Reference to a supplier (vendor) in Coupa.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the supplier."
        },
        "name": {
          "type": "string",
          "description": "Supplier name.",
          "maxLength": 100
        },
        "number": {
          "type": "string",
          "description": "Supplier number."
        }
      }
    },
    "SupplierSiteReference": {
      "type": "object",
      "description": "Reference to a supplier site or location.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the supplier site."
        },
        "name": {
          "type": "string",
          "description": "Supplier site name."
        }
      }
    },
    "CurrencyReference": {
      "type": "object",
      "description": "Reference to a currency.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the currency."
        },
        "code": {
          "type": "string",
          "description": "ISO 4217 currency code.",
          "pattern": "^[A-Z]{3}$",
          "examples": ["USD", "EUR", "GBP"]
        }
      }
    },
    "AddressReference": {
      "type": "object",
      "description": "Reference to a physical address in Coupa.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the address."
        },
        "name": {
          "type": "string",
          "description": "Address name or label."
        },
        "street1": {
          "type": "string",
          "description": "Street address line 1."
        },
        "street2": {
          "type": ["string", "null"],
          "description": "Street address line 2."
        },
        "city": {
          "type": "string",
          "description": "City name."
        },
        "state": {
          "type": ["string", "null"],
          "description": "State or province."
        },
        "postal-code": {
          "type": ["string", "null"],
          "description": "Postal or ZIP code."
        },
        "country": {
          "type": "object",
          "description": "Country reference.",
          "properties": {
            "id": {
              "type": "integer"
            },
            "code": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2 country code."
            }
          }
        }
      }
    },
    "PaymentTermReference": {
      "type": "object",
      "description": "Reference to a payment term definition.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the payment term."
        },
        "code": {
          "type": "string",
          "description": "Payment term code."
        }
      }
    },
    "ShippingTermReference": {
      "type": "object",
      "description": "Reference to a shipping term definition.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the shipping term."
        },
        "code": {
          "type": "string",
          "description": "Shipping term code."
        }
      }
    },
    "OrderLine": {
      "type": "object",
      "description": "A line item on a purchase order representing a specific good or service being ordered.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the order line.",
          "readOnly": true
        },
        "line-num": {
          "type": "integer",
          "description": "Sequential line number."
        },
        "description": {
          "type": "string",
          "description": "Description of the item or service.",
          "maxLength": 255
        },
        "quantity": {
          "type": "number",
          "description": "Quantity ordered."
        },
        "price": {
          "type": "number",
          "description": "Unit price of the item."
        },
        "total": {
          "type": "number",
          "description": "Line total (quantity multiplied by price).",
          "readOnly": true
        },
        "uom": {
          "type": "object",
          "description": "Unit of measure.",
          "properties": {
            "id": {
              "type": "integer"
            },
            "code": {
              "type": "string",
              "description": "Unit of measure code (e.g., EA, CS, BX)."
            }
          }
        },
        "need-by-date": {
          "type": ["string", "null"],
          "format": "date-time",
          "description": "Date by which the item is needed."
        },
        "source-part-num": {
          "type": ["string", "null"],
          "description": "Supplier part number.",
          "maxLength": 255
        },
        "supplier-aux-part-num": {
          "type": ["string", "null"],
          "description": "Supplier auxiliary part number."
        },
        "commodity": {
          "type": ["object", "null"],
          "description": "Commodity classification for the line item.",
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "account": {
          "type": ["object", "null"],
          "description": "Chart of accounts reference for cost allocation.",
          "properties": {
            "id": {
              "type": "integer"
            },
            "code": {
              "type": "string"
            }
          }
        },
        "status": {
          "type": "string",
          "description": "Current status of the order line.",
          "readOnly": true
        },
        "currency": {
          "$ref": "#/$defs/CurrencyReference"
        },
        "receiving-warehouse": {
          "type": ["object", "null"],
          "description": "Receiving warehouse reference.",
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "created-at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the line was created.",
          "readOnly": true
        },
        "updated-at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the line was last updated.",
          "readOnly": true
        }
      },
      "required": [
        "description",
        "quantity",
        "price"
      ]
    },
    "AttachmentReference": {
      "type": "object",
      "description": "Reference to a file attachment.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the attachment."
        },
        "file-name": {
          "type": "string",
          "description": "Name of the attached file."
        },
        "file-url": {
          "type": "string",
          "format": "uri",
          "description": "URL to download the attachment."
        }
      }
    },
    "MilestoneReference": {
      "type": "object",
      "description": "Reference to a procurement milestone.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Coupa unique identifier for the milestone."
        },
        "name": {
          "type": "string",
          "description": "Milestone name."
        }
      }
    }
  },
  "examples": [
    {
      "id": 1,
      "po-number": "PO-2024-001",
      "status": "issued",
      "type": "ExternalOrderHeader",
      "version": 1,
      "internal-revision": 1,
      "acknowledged-flag": false,
      "total": 5000.00,
      "currency": {
        "id": 1,
        "code": "USD"
      },
      "supplier": {
        "id": 42,
        "name": "Acme Office Supplies",
        "number": "SUP-001"
      },
      "requester": {
        "id": 10,
        "login": "jsmith",
        "email": "[email protected]"
      },
      "ship-to-address": {
        "id": 5,
        "name": "Main Office",
        "street1": "123 Business Ave",
        "city": "San Francisco",
        "state": "CA",
        "postal-code": "94105",
        "country": {
          "id": 1,
          "code": "US"
        }
      },
      "payment-term": {
        "id": 1,
        "code": "Net 30"
      },
      "payment-method": "invoice",
      "order-lines": [
        {
          "id": 101,
          "line-num": 1,
          "description": "Office Desk Chair - Ergonomic",
          "quantity": 10,
          "price": 500.00,
          "total": 5000.00,
          "uom": {
            "id": 1,
            "code": "EA"
          },
          "need-by-date": "2024-04-15T00:00:00+00:00",
          "source-part-num": "CHAIR-ERG-001"
        }
      ],
      "exported": false,
      "invoice-stop": false,
      "hide-price": false,
      "created-at": "2024-03-01T10:30:00+00:00",
      "updated-at": "2024-03-01T10:30:00+00:00"
    }
  ]
}