v48

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-262621423.8 MB

Update a purchase order

Updates an existing purchase order.

NOTE: If you include lines or lineGroups, QuickBooks Desktop replaces each included line list with the array you send, so include unchanged lines you want to keep and use id: "-1" for new lines.

post/quickbooks-desktop/purchase-orders/{id}

Path parameters

idstring required

The QuickBooks-assigned unique identifier of the purchase order to update.

Example:123ABC-1234567890

The QuickBooks-assigned unique identifier of the purchase order to update.

Headers

Conductor-End-User-Idstring required

The ID of the End-User to receive this request.

Example:end_usr_1234567abcdefg

The ID of the End-User to receive this request.

Request body

revisionNumberstring required

The current QuickBooks-assigned revision number of the purchase order object you are updating, which you can get by fetching the object first. Provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

vendorIdstring

The vendor who sent this purchase order for goods or services purchased.

classIdstring

The purchase order's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default. A class defined here is automatically used in this purchase order's line items unless overridden at the line item level.

inventorySiteIdstring

The site location where inventory for the item associated with this purchase order is stored.

shipToEntityIdstring

The customer, vendor, employee, or other entity to whom this purchase order is to be shipped.

documentTemplateIdstring

The predefined template in QuickBooks that determines the layout and formatting for this purchase order when printed or displayed.

transactionDatestring date

The date of this purchase order, in ISO 8601 format (YYYY-MM-DD).

refNumberstring

The case-sensitive user-defined reference number for this purchase order, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user.

Maximum length: 11 characters.

termsIdstring

The purchase order's payment terms, defining when payment is due and any applicable discounts.

dueDatestring date

The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD).

expectedDatestring date

The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD).

shippingMethodIdstring

The shipping method used for this purchase order, such as standard mail or overnight delivery.

shipmentOriginstring

The origin location from where the product associated with this purchase order is shipped. This is the point at which ownership and liability for goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB" for this field, which stands for "freight on board". This field is informational and has no accounting implications.

Maximum length: 13 characters.

isManuallyClosedboolean

Indicates whether this purchase order has been manually marked as closed, even if all items have not been received or the sale has not been cancelled. Once the purchase order is marked as closed, all of its line items become closed as well. You cannot change isManuallyClosed to false after the purchase order has been fully received.

memostring

A memo or note for this purchase order that appears in reports, but not on the purchase order.

vendorMessagestring

A message to be printed on this purchase order for the vendor to read.

isQueuedForPrintboolean

Indicates whether this purchase order is included in the queue of documents for QuickBooks to print.

isQueuedForEmailboolean

Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer.

salesTaxCodeIdstring

The sales-tax code for this purchase order, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the vendor. This can be overridden on the purchase order's individual lines.

Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.

otherCustomField1string

A built-in custom field for additional information specific to this purchase order. Unlike the user-defined fields in the customFields array, this is a standard QuickBooks field that exists for all purchase orders for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.

otherCustomField2string

A second built-in custom field for additional information specific to this purchase order. Unlike the user-defined fields in the customFields array, this is a standard QuickBooks field that exists for all purchase orders for convenience. Like otherCustomField1, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.

exchangeRatenumber

The market exchange rate between this purchase order's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).

Example request

{
  "revisionNumber": "1721172183",
  "vendorId": "80000001-1234567890",
  "classId": "80000001-1234567890",
  "inventorySiteId": "80000001-1234567890",
  "shipToEntityId": "80000001-1234567890",
  "documentTemplateId": "80000001-1234567890",
  "transactionDate": "2024-10-01",
  "refNumber": "PO-1234",
  "vendorAddress": {
    "line1": "Conductor Labs Inc.",
    "line2": "540 Market St.",
    "line3": "Suite 100",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94110",
    "country": "United States",
    "note": "Conductor HQ"
  },
  "shippingAddress": {
    "line1": "Conductor Labs Inc.",
    "line2": "540 Market St.",
    "line3": "Suite 100",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94110",
    "country": "United States",
    "note": "Conductor HQ"
  },
  "termsId": "80000001-1234567890",
  "dueDate": "2024-10-31",
  "expectedDate": "2024-01-01",
  "shippingMethodId": "80000001-1234567890",
  "shipmentOrigin": "San Francisco, CA",
  "isManuallyClosed": true,
  "memo": "Office supplies for September",
  "vendorMessage": "Please include packing slip with shipment",
  "isQueuedForPrint": true,
  "isQueuedForEmail": true,
  "salesTaxCodeId": "80000001-1234567890",
  "otherCustomField1": "Special handling required",
  "otherCustomField2": "Always ship with a spare",
  "exchangeRate": 1.2345,
  "lines": [
    {
      "id": "456DEF-1234567890",
      "itemId": "80000001-1234567890",
      "sku": "MPN-123456",
      "description": "Office chairs - Herman Miller Aeron (Black)",
      "quantity": 5,
      "unitOfMeasure": "Each",
      "overrideUnitOfMeasureSetId": "80000001-1234567890",
      "rate": "10.00",
      "classId": "80000001-1234567890",
      "amount": "1000.00",
      "inventorySiteLocationId": "80000001-1234567890",
      "payeeId": "80000001-1234567890",
      "serviceDate": "2024-03-15",
      "salesTaxCodeId": "80000001-1234567890",
      "isManuallyClosed": true,
      "overrideItemAccountId": "80000001-1234567890",
      "otherCustomField1": "Special handling required",
      "otherCustomField2": "Always ship with a spare"
    }
  ],
  "lineGroups": [
    {
      "id": "456DEF-1234567890",
      "itemGroupId": "80000001-1234567890",
      "quantity": 5,
      "unitOfMeasure": "Each",
      "overrideUnitOfMeasureSetId": "80000001-1234567890",
      "lines": [
        {
          "id": "456DEF-1234567890",
          "itemId": "80000001-1234567890",
          "sku": "MPN-123456",
          "description": "Office chairs - Herman Miller Aeron (Black)",
          "quantity": 5,
          "unitOfMeasure": "Each",
          "overrideUnitOfMeasureSetId": "80000001-1234567890",
          "rate": "10.00",
          "classId": "80000001-1234567890",
          "amount": "1000.00",
          "inventorySiteLocationId": "80000001-1234567890",
          "payeeId": "80000001-1234567890",
          "serviceDate": "2024-03-15",
          "salesTaxCodeId": "80000001-1234567890",
          "isManuallyClosed": true,
          "overrideItemAccountId": "80000001-1234567890",
          "otherCustomField1": "Special handling required",
          "otherCustomField2": "Always ship with a spare"
        }
      ]
    }
  ]
}

Response

Returns the updated purchase order.

idstring required

The unique identifier assigned by QuickBooks to this purchase order. This ID is unique across all transaction types.

objectType'qbd_purchase_order' required

The type of object. This value is always "qbd_purchase_order".

createdAtstring required

The date and time when this purchase order was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

updatedAtstring required

The date and time when this purchase order was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

revisionNumberstring required

The current QuickBooks-assigned revision number of this purchase order object, which changes each time the object is modified. When updating this object, you must provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

transactionDatestring date required

The date of this purchase order, in ISO 8601 format (YYYY-MM-DD).

refNumberstring nullable required

The case-sensitive user-defined reference number for this purchase order, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user.

dueDatestring date nullable required

The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD).

expectedDatestring date nullable required

The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD).

shipmentOriginstring nullable required

The origin location from where the product associated with this purchase order is shipped. This is the point at which ownership and liability for goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB" for this field, which stands for "freight on board". This field is informational and has no accounting implications.

totalAmountstring required

The total monetary amount of this purchase order, equivalent to the sum of the amounts in lines and lineGroups, represented as a decimal string.

exchangeRatenumber nullable required

The market exchange rate between this purchase order's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).

totalAmountInHomeCurrencystring nullable required

The total monetary amount of this purchase order converted to the home currency of the QuickBooks company file. Represented as a decimal string.

isManuallyClosedboolean required

Indicates whether this purchase order has been manually marked as closed, even if all items have not been received or the sale has not been cancelled. Once the purchase order is marked as closed, all of its line items become closed as well. You cannot change isManuallyClosed to false after the purchase order has been fully received.

isFullyReceivedboolean nullable required

Indicates whether all items in this purchase order have been received and none of them were closed manually.

memostring nullable required

A memo or note for this purchase order that appears in reports, but not on the purchase order.

vendorMessagestring nullable required

A message to be printed on this purchase order for the vendor to read.

isQueuedForPrintboolean nullable required

Indicates whether this purchase order is included in the queue of documents for QuickBooks to print.

isQueuedForEmailboolean nullable required

Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer.

otherCustomField1string nullable required

A built-in custom field for additional information specific to this purchase order. Unlike the user-defined fields in the customFields array, this is a standard QuickBooks field that exists for all purchase orders for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.

otherCustomField2string nullable required

A second built-in custom field for additional information specific to this purchase order. Unlike the user-defined fields in the customFields array, this is a standard QuickBooks field that exists for all purchase orders for convenience. Like otherCustomField1, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.

externalIdstring nullable required

A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.

Example response

{
  "id": "123ABC-1234567890",
  "objectType": "qbd_purchase_order",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "vendor": {
    "id": "80000001-1234567890",
    "fullName": "Acme Supplies Ltd."
  },
  "class": {
    "id": "80000001-1234567890",
    "fullName": "Office Supplies"
  },
  "inventorySite": {
    "id": "80000001-1234567890",
    "fullName": "Main Warehouse"
  },
  "shipToEntity": {
    "id": "80000001-1234567890",
    "fullName": "Customer"
  },
  "documentTemplate": {
    "id": "80000001-1234567890",
    "fullName": "Purchase Order Template"
  },
  "transactionDate": "2024-10-01",
  "refNumber": "PO-1234",
  "vendorAddress": {
    "line1": "Conductor Labs Inc.",
    "line2": "540 Market St.",
    "line3": "Suite 100",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94110",
    "country": "United States",
    "note": "Conductor HQ"
  },
  "shippingAddress": {
    "line1": "Conductor Labs Inc.",
    "line2": "540 Market St.",
    "line3": "Suite 100",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94110",
    "country": "United States",
    "note": "Conductor HQ"
  },
  "terms": {
    "id": "80000001-1234567890",
    "fullName": "Net 30"
  },
  "dueDate": "2024-10-31",
  "expectedDate": "2024-01-01",
  "shippingMethod": {
    "id": "80000001-1234567890",
    "fullName": "FedEx Ground"
  },
  "shipmentOrigin": "San Francisco, CA",
  "totalAmount": "1000.00",
  "currency": {
    "id": "80000001-1234567890",
    "fullName": "USD"
  },
  "exchangeRate": 1.2345,
  "totalAmountInHomeCurrency": "1234.56",
  "isManuallyClosed": true,
  "memo": "Office supplies for September",
  "vendorMessage": "Please include packing slip with shipment",
  "isQueuedForPrint": true,
  "isQueuedForEmail": true,
  "salesTaxCode": {
    "id": "80000001-1234567890",
    "fullName": "Non"
  },
  "otherCustomField1": "Special handling required",
  "otherCustomField2": "Always ship with a spare",
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "linkedTransactions": [
    {
      "id": "123ABC-1234567890",
      "objectType": "qbd_linked_transaction",
      "transactionType": "invoice",
      "transactionDate": "2024-10-01",
      "refNumber": "LINK-1234",
      "linkType": "amount",
      "amount": "1000.00"
    }
  ],
  "lines": [
    {
      "id": "456DEF-1234567890",
      "objectType": "qbd_purchase_order_line",
      "item": {
        "id": "80000001-1234567890",
        "fullName": "Widget A"
      },
      "sku": "MPN-123456",
      "description": "Office chairs - Herman Miller Aeron (Black)",
      "quantity": 5,
      "unitOfMeasure": "Each",
      "overrideUnitOfMeasureSet": {
        "id": "80000001-1234567890",
        "fullName": "Volume Units"
      },
      "rate": "10.00",
      "class": {
        "id": "80000001-1234567890",
        "fullName": "Office Supplies"
      },
      "amount": "1000.00",
      "inventorySiteLocation": {
        "id": "80000001-1234567890",
        "fullName": "Aisle 3, Shelf B"
      },
      "payee": {
        "id": "80000001-1234567890",
        "fullName": "Acme Corporation"
      },
      "serviceDate": "2024-03-15",
      "salesTaxCode": {
        "id": "80000001-1234567890",
        "fullName": "Non"
      },
      "receivedQuantity": 5,
      "unbilledQuantity": 2,
      "isManuallyClosed": true,
      "otherCustomField1": "Special handling required",
      "otherCustomField2": "Always ship with a spare",
      "customFields": [
        {
          "ownerId": "0",
          "name": "Customer Rating",
          "type": "string_1024_type",
          "value": "Premium"
        }
      ]
    }
  ],
  "lineGroups": [
    {
      "id": "456DEF-1234567890",
      "objectType": "qbd_purchase_order_line_group",
      "itemGroup": {
        "id": "80000001-1234567890",
        "fullName": "Office Supplies Bundle"
      },
      "description": "Office supplies bundle",
      "quantity": 5,
      "unitOfMeasure": "Each",
      "overrideUnitOfMeasureSet": {
        "id": "80000001-1234567890",
        "fullName": "Volume Units"
      },
      "shouldPrintItemsInGroup": true,
      "totalAmount": "1000.00",
      "serviceDate": "2024-03-15",
      "lines": [
        {
          "id": "456DEF-1234567890",
          "objectType": "qbd_purchase_order_line",
          "item": {
            "id": "80000001-1234567890",
            "fullName": "Widget A"
          },
          "sku": "MPN-123456",
          "description": "Office chairs - Herman Miller Aeron (Black)",
          "quantity": 5,
          "unitOfMeasure": "Each",
          "overrideUnitOfMeasureSet": {
            "id": "80000001-1234567890",
            "fullName": "Volume Units"
          },
          "rate": "10.00",
          "class": {
            "id": "80000001-1234567890",
            "fullName": "Office Supplies"
          },
          "amount": "1000.00",
          "inventorySiteLocation": {
            "id": "80000001-1234567890",
            "fullName": "Aisle 3, Shelf B"
          },
          "payee": {
            "id": "80000001-1234567890",
            "fullName": "Acme Corporation"
          },
          "serviceDate": "2024-03-15",
          "salesTaxCode": {
            "id": "80000001-1234567890",
            "fullName": "Non"
          },
          "receivedQuantity": 5,
          "unbilledQuantity": 2,
          "isManuallyClosed": true,
          "otherCustomField1": "Special handling required",
          "otherCustomField2": "Always ship with a spare",
          "customFields": [
            {
              "ownerId": "0",
              "name": "Customer Rating",
              "type": "string_1024_type",
              "value": "Premium"
            }
          ]
        }
      ],
      "customFields": [
        {
          "ownerId": "0",
          "name": "Customer Rating",
          "type": "string_1024_type",
          "value": "Premium"
        }
      ]
    }
  ],
  "customFields": [
    {
      "ownerId": "0",
      "name": "Customer Rating",
      "type": "string_1024_type",
      "value": "Premium"
    }
  ]
}