List all price levels

Returns a list of price levels.

NOTE: QuickBooks Desktop does not support pagination for price levels; hence, there is no cursor parameter. Users typically have few price levels.

get/quickbooks-desktop/price-levels

Query parameters

idsstring[]

Filter for specific price levels by their QuickBooks-assigned unique identifier(s).

IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.

NOTE: If any of the values you specify in this parameter are not found, the request will return an error.

Filter for specific price levels by their QuickBooks-assigned unique identifier(s).

IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.

NOTE: If any of the values you specify in this parameter are not found, the request will return an error.

[
  "80000001-1234567890"
]
namesstring[]

Filter for specific price levels by their name(s), case-insensitive. Like id, name is a unique identifier for a price level.

IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.

NOTE: If any of the values you specify in this parameter are not found, the request will return an error.

Filter for specific price levels by their name(s), case-insensitive. Like id, name is a unique identifier for a price level.

IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.

NOTE: If any of the values you specify in this parameter are not found, the request will return an error.

[
  "Wholesale 20% Discount"
]
limitinteger

The maximum number of objects to return.

IMPORTANT: QuickBooks Desktop does not support cursor-based pagination for price levels. This parameter will limit the response size, but you cannot fetch subsequent results using a cursor. For pagination, use the name-range parameters instead (e.g., nameFrom=A&nameTo=B).

When this parameter is omitted, the endpoint returns all price levels without limit, unlike paginated endpoints which default to 150 records. This is acceptable because price levels typically have low record counts.

Example:10

The maximum number of objects to return.

IMPORTANT: QuickBooks Desktop does not support cursor-based pagination for price levels. This parameter will limit the response size, but you cannot fetch subsequent results using a cursor. For pagination, use the name-range parameters instead (e.g., nameFrom=A&nameTo=B).

When this parameter is omitted, the endpoint returns all price levels without limit, unlike paginated endpoints which default to 150 records. This is acceptable because price levels typically have low record counts.

status'active' | 'all' | 'inactive'

Filter for price levels that are active, inactive, or both.

Example:active

Filter for price levels that are active, inactive, or both.

updatedAfterstring

Filter for price levels updated on or after this date/time. Accepts the following ISO 8601 formats:

  • date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the start of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-012025-01-01T00:00:00).
  • datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
  • datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Example:2025-01-01T12:34:56+00:00

Filter for price levels updated on or after this date/time. Accepts the following ISO 8601 formats:

  • date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the start of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-012025-01-01T00:00:00).
  • datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
  • datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
updatedBeforestring

Filter for price levels updated on or before this date/time. Accepts the following ISO 8601 formats:

  • date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the end of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-012025-01-01T23:59:59).
  • datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
  • datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Example:2025-02-01T12:34:56+00:00

Filter for price levels updated on or before this date/time. Accepts the following ISO 8601 formats:

  • date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the end of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-012025-01-01T23:59:59).
  • datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
  • datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
nameContainsstring

Filter for price levels whose name contains this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.

Example:ABC

Filter for price levels whose name contains this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.

nameStartsWithstring

Filter for price levels whose name starts with this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.

Example:ABC

Filter for price levels whose name starts with this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.

nameEndsWithstring

Filter for price levels whose name ends with this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.

Example:ABC

Filter for price levels whose name ends with this substring, case-insensitive.

NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.

nameFromstring

Filter for price levels whose name is alphabetically greater than or equal to this value.

Example:A

Filter for price levels whose name is alphabetically greater than or equal to this value.

nameTostring

Filter for price levels whose name is alphabetically less than or equal to this value.

Example:Z

Filter for price levels whose name is alphabetically less than or equal to this value.

itemIdsstring[]

Filter for price levels containing these items.

Filter for price levels containing these items.

[
  "80000001-1234567890"
]
currencyIdsstring[]

Filter for price levels in these currencies.

Filter for price levels in these currencies.

[
  "80000001-1234567890"
]

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.

Response

Returns a list of price levels.

objectType'list' required

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

urlstring required

The endpoint URL where this list can be accessed.

Example response

{
  "objectType": "list",
  "url": "/v1/quickbooks-desktop/price-levels",
  "data": [
    {
      "id": "80000001-1234567890",
      "objectType": "qbd_price_level",
      "createdAt": "2025-01-01T12:34:56+00:00",
      "updatedAt": "2025-02-01T12:34:56+00:00",
      "revisionNumber": "1721172183",
      "name": "Wholesale 20% Discount",
      "isActive": true,
      "priceLevelType": "fixed_percentage",
      "fixedPercentage": "-10.0",
      "perItemPriceLevels": [
        {
          "item": {
            "id": "80000001-1234567890",
            "fullName": "Widget A"
          },
          "customPrice": "19.99",
          "customPricePercent": "15.0"
        }
      ],
      "currency": {
        "id": "80000001-1234567890",
        "fullName": "USD"
      }
    }
  ]
}

Changes

Changed in 5 of the 46 revisions of this API.2510

    • for the query request parameter status, default value active was added

      request-parameter-default-value-added

    • for the query request parameter status, default value active was removed

      request-parameter-default-value-removed

  • 10d4e9ebd1df81See the full diff
    • response property data/items/fixedPercentage list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/customPrice list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/customPricePercent list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/item/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/item/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the // response's property type changed from object null to no type for status

      response-property-type-changed

    • removed the required property /// from the response with the status

      response-required-property-removed

    • removed the required property /// from the response with the status

      response-required-property-removed

    • added subschema #1 subschema #2 to the // response property anyOf list for the response status

      response-property-any-of-added

  • 8e0b7df2044d78See the full diff
    • the response property // became nullable for the status

      response-property-became-nullable

    • the response property // became nullable for the status

      response-property-became-nullable

    • the response property //// became nullable for the status

      response-property-became-nullable

    • the response property //// became nullable for the status

      response-property-became-nullable

    • the response property ///// became nullable for the status

      response-property-became-nullable

    • the response property ///// became nullable for the status

      response-property-became-nullable

    • the // response's property type changed from no type to object null for status

      response-property-type-changed

    • removed subschema #1 subschema #2 from the // response property anyOf list for the response status

      response-property-any-of-removed

    • response property data/items/fixedPercentage list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property data/items/perItemPriceLevels/items/customPrice list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property data/items/perItemPriceLevels/items/customPricePercent list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property data/items/perItemPriceLevels/items/item/fullName list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property data/items/perItemPriceLevels/items/item/id list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • added the required property /// to the response with the status

      response-required-property-added

    • added the required property /// to the response with the status

      response-required-property-added

  • 5f832f69567581See the full diff
    • response property data/items/fixedPercentage list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/customPrice list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/customPricePercent list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/item/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property data/items/perItemPriceLevels/items/item/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the // response's property type changed from object null to no type for status

      response-property-type-changed

    • removed the required property /// from the response with the status

      response-required-property-removed

    • removed the required property /// from the response with the status

      response-required-property-removed

    • added subschema #1 subschema #2 to the // response property anyOf list for the response status

      response-property-any-of-added