---
title: "Retrieve a purchase order"
method: GET
path: "/quickbooks-desktop/purchase-orders/{id}"
---

# Retrieve a purchase order

`GET /quickbooks-desktop/purchase-orders/{id}`

Retrieves a purchase order by ID.

**IMPORTANT:** If you need to fetch multiple specific purchase orders by ID, use the list endpoint instead with the `ids` parameter. It accepts an array of IDs so you can batch the request into a single call, which is significantly faster.

NOTE: The response automatically includes any linked transactions.

## Path parameters

- `id` string, required — The QuickBooks-assigned unique identifier of the purchase order to retrieve.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Response `200`

Returns the specified purchase order.

- QbdPurchaseOrder
  - `id` string, 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"`.
  - `createdAt` string, 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.
  - `updatedAt` string, 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.
  - `revisionNumber` string, 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.
  - `vendor` object, nullable, required — The vendor who sent this purchase order for goods or services purchased.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `class` object, nullable, required — 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.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `inventorySite` object, nullable, required — The site location where inventory for the item associated with this purchase order is stored.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `shipToEntity` object, nullable, required — The customer, vendor, employee, or other entity to whom this purchase order is to be shipped.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `documentTemplate` object, nullable, required — The predefined template in QuickBooks that determines the layout and formatting for this purchase order when printed or displayed.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `transactionDate` string, date, required — The date of this purchase order, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string, 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.
  - `vendorAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `shippingAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `terms` object, nullable, required — The purchase order's payment terms, defining when payment is due and any applicable discounts.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `dueDate` string, date, nullable, required — The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD).
  - `expectedDate` string, date, nullable, required — The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD).
  - `shippingMethod` object, nullable, required — The shipping method used for this purchase order, such as standard mail or overnight delivery.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `shipmentOrigin` string, 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.
  - `totalAmount` string, 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.
  - `currency` object, nullable, required — The purchase order's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `exchangeRate` number, 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).
  - `totalAmountInHomeCurrency` string, 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.
  - `isManuallyClosed` boolean, 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.
  - `isFullyReceived` boolean, nullable, required — Indicates whether all items in this purchase order have been received and none of them were closed manually.
  - `memo` string, nullable, required — A memo or note for this purchase order that appears in reports, but not on the purchase order.
  - `vendorMessage` string, nullable, required — A message to be printed on this purchase order for the vendor to read.
  - `isQueuedForPrint` boolean, nullable, required — Indicates whether this purchase order is included in the queue of documents for QuickBooks to print.
  - `isQueuedForEmail` boolean, nullable, required — Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer.
  - `salesTaxCode` object, nullable, required — 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.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `otherCustomField1` string, 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.
  - `otherCustomField2` string, 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.
  - `externalId` string, 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.
  - `linkedTransactions` QbdLinkedTransaction[], required — The purchase order's linked transactions, such as payments applied, credits used, or associated purchase orders. **IMPORTANT**: You must specify the parameter `includeLinkedTransactions` when fetching a list of purchase orders to receive this field because it is not returned by default.
    - `id` string, required — The unique identifier assigned by QuickBooks to this linked transaction. This ID is unique across all transaction types.
    - `objectType` 'qbd_linked_transaction', required — The type of object. This value is always `"qbd_linked_transaction"`.
    - `transactionType` 'ar_refund_credit_card' | 'bill' | 'bill_payment_check' | 'bill_payment_credit_card' | 'build_assembly' | 'charge' | 'check' | 'credit_card_charge' | 'credit_card_credit' | 'credit_memo' | 'deposit' | 'estimate' | 'inventory_adjustment' | 'invoice' | 'item_receipt' | 'journal_entry' | 'liability_adjustment' | 'paycheck' | 'payroll_liability_check' | 'purchase_order' | 'receive_payment' | 'sales_order' | 'sales_receipt' | 'sales_tax_payment_check' | 'transfer' | 'vendor_credit' | 'ytd_adjustment' | 'unknown', required — The type of transaction for this linked transaction.
    - `transactionDate` string, date, required — The date of this linked transaction, in ISO 8601 format (YYYY-MM-DD).
    - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this linked transaction, 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.
    - `linkType` 'amount' | 'quantity', nullable, required — Indicates the nature of the link between the transactions: `amount` denotes an amount-based link (e.g., an invoice linked to a payment), and `quantity` denotes a quantity-based link (e.g., an invoice created from a sales order based on the quantity of items received).
    - `amount` string, nullable, required — The monetary amount of this linked transaction, represented as a decimal string.
  - `lines` QbdPurchaseOrderLine[], required — The purchase order's line items, each representing a single product or service ordered.
    - `id` string, required — The unique identifier assigned by QuickBooks to this purchase order line. This ID is unique across all transaction line types.
    - `objectType` 'qbd_purchase_order_line', required — The type of object. This value is always `"qbd_purchase_order_line"`.
    - `item` object, nullable, required — The item associated with this purchase order line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `sku` string, nullable, required — The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number.
    - `description` string, nullable, required — A description of this purchase order line.
    - `quantity` number, nullable, required — The quantity of the item associated with this purchase order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
    - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this purchase order line. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this purchase order line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `rate` string, nullable, required — The price per unit for this purchase order line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared.
    - `class` object, nullable, required — The purchase order line'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. If a class is specified for the entire parent transaction, it is automatically applied to all purchase order lines unless overridden here, at the transaction line level.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `amount` string, nullable, required — The monetary amount of this purchase order line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared.
    - `inventorySiteLocation` object, nullable, required — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `payee` object, nullable, required — If `account` refers to an Accounts-Payable (A/P) account, `payee` refers to the expense's vendor (not the customer). If `account` refers to any other type of account, `payee` refers to the expense's customer (not the vendor).
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `serviceDate` string, date, nullable, required — The date on which the service for this purchase order line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
    - `salesTaxCode` object, nullable, required — The sales-tax code for this purchase order line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. 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.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `receivedQuantity` number, nullable, required — The quantity that has been received against this purchase order line.
    - `unbilledQuantity` number, nullable, required — The quantity that has not been billed for this purchase order line.
    - `isBilled` boolean, nullable, required — Indicates whether this purchase order line has been billed.
    - `isManuallyClosed` boolean, required — Indicates whether this purchase order line has been manually marked as closed, even if this item has not been received or its sale has not been cancelled. If all the purchase order lines are marked as closed, the purchase order itself is marked as closed as well. You cannot change `isManuallyClosed` to `false` after the purchase order line has been fully received.
    - `otherCustomField1` string, nullable, required — A built-in custom field for additional information specific to this purchase order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all purchase order lines 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.
    - `otherCustomField2` string, nullable, required — A second built-in custom field for additional information specific to this purchase order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all purchase order lines 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.
    - `customFields` QbdCustomField[], required — The custom fields for the purchase order line object, added as user-defined data extensions, not included in the standard QuickBooks object.
      - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
      - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
      - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
      - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.
  - `lineGroups` QbdPurchaseOrderLineGroup[], required — The purchase order's line item groups, each representing a predefined set of related items.
    - `id` string, required — The unique identifier assigned by QuickBooks to this purchase order line group. This ID is unique across all transaction line types.
    - `objectType` 'qbd_purchase_order_line_group', required — The type of object. This value is always `"qbd_purchase_order_line_group"`.
    - `itemGroup` object, required — The purchase order line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `description` string, nullable, required — A description of this purchase order line group.
    - `quantity` number, nullable, required — The quantity of the item group associated with this purchase order line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group.
    - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this purchase order line group. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this purchase order line group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
      - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
      - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
    - `shouldPrintItemsInGroup` boolean, required — Indicates whether the individual items in this purchase order line group and their separate amounts appear on printed forms.
    - `totalAmount` string, required — The total monetary amount of this purchase order line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string.
    - `serviceDate` string, date, nullable, required — The date on which the service for this purchase order line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
    - `lines` QbdPurchaseOrderLine[], required — The purchase order line group's line items, each representing a single product or service ordered.
      - `id` string, required — The unique identifier assigned by QuickBooks to this purchase order line. This ID is unique across all transaction line types.
      - `objectType` 'qbd_purchase_order_line', required — The type of object. This value is always `"qbd_purchase_order_line"`.
      - `item` object, nullable, required — The item associated with this purchase order line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `sku` string, nullable, required — The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number.
      - `description` string, nullable, required — A description of this purchase order line.
      - `quantity` number, nullable, required — The quantity of the item associated with this purchase order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
      - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this purchase order line. Must be a valid unit within the item's available units of measure.
      - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this purchase order line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `rate` string, nullable, required — The price per unit for this purchase order line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared.
      - `class` object, nullable, required — The purchase order line'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. If a class is specified for the entire parent transaction, it is automatically applied to all purchase order lines unless overridden here, at the transaction line level.
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `amount` string, nullable, required — The monetary amount of this purchase order line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared.
      - `inventorySiteLocation` object, nullable, required — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored.
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `payee` object, nullable, required — If `account` refers to an Accounts-Payable (A/P) account, `payee` refers to the expense's vendor (not the customer). If `account` refers to any other type of account, `payee` refers to the expense's customer (not the vendor).
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `serviceDate` string, date, nullable, required — The date on which the service for this purchase order line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
      - `salesTaxCode` object, nullable, required — The sales-tax code for this purchase order line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. 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.
        - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
        - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
      - `receivedQuantity` number, nullable, required — The quantity that has been received against this purchase order line.
      - `unbilledQuantity` number, nullable, required — The quantity that has not been billed for this purchase order line.
      - `isBilled` boolean, nullable, required — Indicates whether this purchase order line has been billed.
      - `isManuallyClosed` boolean, required — Indicates whether this purchase order line has been manually marked as closed, even if this item has not been received or its sale has not been cancelled. If all the purchase order lines are marked as closed, the purchase order itself is marked as closed as well. You cannot change `isManuallyClosed` to `false` after the purchase order line has been fully received.
      - `otherCustomField1` string, nullable, required — A built-in custom field for additional information specific to this purchase order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all purchase order lines 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.
      - `otherCustomField2` string, nullable, required — A second built-in custom field for additional information specific to this purchase order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all purchase order lines 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.
      - `customFields` QbdCustomField[], required — The custom fields for the purchase order line object, added as user-defined data extensions, not included in the standard QuickBooks object.
        - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
        - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
        - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
        - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.
    - `customFields` QbdCustomField[], required — The custom fields for the purchase order line group object, added as user-defined data extensions, not included in the standard QuickBooks object.
      - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
      - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
      - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
      - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.
  - `customFields` QbdCustomField[], required — The custom fields for the purchase order object, added as user-defined data extensions, not included in the standard QuickBooks object.
    - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
    - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
    - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
    - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/revisions/0b07b3ebe160/schema)
