GET
/
quickbooks-desktop
/
bills
JavaScript
import Conductor from 'conductor-node';

const conductor = new Conductor({
  apiKey: 'sk_conductor_...',
});

// Automatically fetches more pages as needed.
for await (const bill of conductor.qbd.bills.list({ conductorEndUserId: 'end_usr_1234567abcdefg' })) {
  console.log(bill.id);
}
{
  "objectType": "list",
  "url": "/v1/quickbooks-desktop/bills",
  "data": [
    {
      "id": "123ABC-1234567890",
      "objectType": "qbd_bill",
      "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."
      },
      "vendorAddress": {
        "line1": "Conductor Labs Inc.",
        "line2": "540 Market St.",
        "line3": "Suite 100",
        "line4": "",
        "line5": "",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94110",
        "country": "United States",
        "note": "Conductor HQ"
      },
      "payablesAccount": {
        "id": "80000001-1234567890",
        "fullName": "Accounts-Payable"
      },
      "transactionDate": "2024-10-01",
      "dueDate": "2024-10-31",
      "amountDue": "1000.00",
      "currency": {
        "id": "80000001-1234567890",
        "fullName": "USD"
      },
      "exchangeRate": 1.2345,
      "amountDueInHomeCurrency": "1234.56",
      "refNumber": "BILL-1234",
      "isPending": false,
      "terms": {
        "id": "80000001-1234567890",
        "fullName": "Net 30"
      },
      "memo": "Office supplies for September",
      "salesTaxCode": {
        "id": "80000001-1234567890",
        "fullName": "Non"
      },
      "isPaid": false,
      "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"
        }
      ],
      "expenseLines": [
        {
          "id": "456DEF-1234567890",
          "objectType": "qbd_expense_line",
          "account": {
            "id": "80000001-1234567890",
            "fullName": "Expenses:Office Supplies"
          },
          "amount": "1000.00",
          "memo": "New office chair",
          "payee": {
            "id": "80000001-1234567890",
            "fullName": "Acme Corporation"
          },
          "class": {
            "id": "80000001-1234567890",
            "fullName": "Office Supplies"
          },
          "salesTaxCode": {
            "id": "80000001-1234567890",
            "fullName": "Non"
          },
          "billingStatus": "billable",
          "salesRepresentative": {
            "id": "80000001-1234567890",
            "fullName": "Jane Doe"
          },
          "customFields": [
            {
              "ownerId": "<any>",
              "name": "<any>",
              "type": "<any>",
              "value": "<any>"
            }
          ]
        }
      ],
      "itemLines": [
        {
          "id": "456DEF-1234567890",
          "objectType": "qbd_item_line",
          "item": {
            "id": "80000001-1234567890",
            "fullName": "Widget A"
          },
          "inventorySite": {
            "id": "80000001-1234567890",
            "fullName": "Main Warehouse"
          },
          "inventorySiteLocation": {
            "id": "80000001-1234567890",
            "fullName": "Aisle 3, Shelf B"
          },
          "serialNumber": "SN1234567890",
          "lotNumber": "LOT2023-001",
          "expirationDate": "2025-12-31",
          "description": "High-quality widget with custom engraving",
          "quantity": 5,
          "unitOfMeasure": "Each",
          "overrideUnitOfMeasureSet": {
            "id": "80000001-1234567890",
            "fullName": "Volume Units"
          },
          "cost": "1000.00",
          "amount": "1000.00",
          "customer": {
            "id": "80000001-1234567890",
            "fullName": "Acme Corporation"
          },
          "class": {
            "id": "80000001-1234567890",
            "fullName": "Installation:Residential"
          },
          "salesTaxCode": {
            "id": "80000001-1234567890",
            "fullName": "Non"
          },
          "billingStatus": "billable",
          "salesRepresentative": {
            "id": "80000001-1234567890",
            "fullName": "Jane Doe"
          },
          "customFields": [
            {
              "ownerId": "<any>",
              "name": "<any>",
              "type": "<any>",
              "value": "<any>"
            }
          ]
        }
      ],
      "itemGroupLines": [
        {
          "id": "456DEF-1234567890",
          "objectType": "qbd_item_group_line",
          "itemGroup": {
            "id": "80000001-1234567890",
            "fullName": "Office Supplies Bundle"
          },
          "description": "Standard widget bulk package",
          "quantity": 5,
          "unitOfMeasure": "Each",
          "overrideUnitOfMeasureSet": {
            "id": "80000001-1234567890",
            "fullName": "Volume Units"
          },
          "totalAmount": "1000.00",
          "itemLines": [
            {
              "id": "456DEF-1234567890",
              "objectType": "qbd_item_line",
              "item": {
                "id": "80000001-1234567890",
                "fullName": "Widget A"
              },
              "inventorySite": {
                "id": "80000001-1234567890",
                "fullName": "Main Warehouse"
              },
              "inventorySiteLocation": {
                "id": "80000001-1234567890",
                "fullName": "Aisle 3, Shelf B"
              },
              "serialNumber": "SN1234567890",
              "lotNumber": "LOT2023-001",
              "expirationDate": "2025-12-31",
              "description": "High-quality widget with custom engraving",
              "quantity": 5,
              "unitOfMeasure": "Each",
              "overrideUnitOfMeasureSet": {
                "id": "80000001-1234567890",
                "fullName": "Volume Units"
              },
              "cost": "1000.00",
              "amount": "1000.00",
              "customer": {
                "id": "80000001-1234567890",
                "fullName": "Acme Corporation"
              },
              "class": {
                "id": "80000001-1234567890",
                "fullName": "Installation:Residential"
              },
              "salesTaxCode": {
                "id": "80000001-1234567890",
                "fullName": "Non"
              },
              "billingStatus": "billable",
              "salesRepresentative": {
                "id": "80000001-1234567890",
                "fullName": "Jane Doe"
              },
              "customFields": [
                {
                  "ownerId": "<any>",
                  "name": "<any>",
                  "type": "<any>",
                  "value": "<any>"
                }
              ]
            }
          ],
          "customFields": [
            {
              "ownerId": "<any>",
              "name": "<any>",
              "type": "<any>",
              "value": "<any>"
            }
          ]
        }
      ],
      "openAmount": "500.00",
      "customFields": [
        {
          "ownerId": "<any>",
          "name": "<any>",
          "type": "<any>",
          "value": "<any>"
        }
      ]
    }
  ],
  "nextCursor": "12345678-abcd-abcd-example-1234567890ab",
  "remainingCount": 10,
  "hasMore": true
}

Authorizations

Authorization
string
header
required

Your Conductor secret key using Bearer auth (e.g., "Authorization: Bearer {{YOUR_SECRET_KEY}}").

Headers

Conductor-End-User-Id
string
required

The ID of the EndUser to receive this request (e.g., "Conductor-End-User-Id: {{END_USER_ID}}").

Example:

"end_usr_1234567abcdefg"

Query Parameters

ids
string[]

Filter for specific bills 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.

Example:
["123ABC-1234567890"]
refNumbers
string[]

Filter for specific bills by their ref-number(s), case-sensitive. In QuickBooks, ref-numbers are not required to be unique and can be arbitrarily changed by the QuickBooks user.

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.

Example:
["BILL-1234"]
limit
integer
default:150

The maximum number of objects to return. Accepts values ranging from 1 to 150, defaults to 150. When used with cursor-based pagination, this parameter controls how many results are returned per page. To paginate through results, combine this with the cursor parameter. Each response will include a nextCursor value that can be passed to subsequent requests to retrieve the next page of results.

Required range: 1 <= x <= 150
Example:

150

cursor
string

The pagination token to fetch the next set of results when paginating with the limit parameter. Do not include this parameter on the first call. Use the nextCursor value returned in the previous response to request subsequent results.

Example:

"12345678-abcd-abcd-example-1234567890ab"

updatedAfter
string

Filter for bills 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"

updatedBefore
string

Filter for bills 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"

transactionDateFrom
string<date>

Filter for bills whose date field is on or after this date, in ISO 8601 format (YYYY-MM-DD).

NOTE: QuickBooks Desktop interprets this 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).

Example:

"2025-01-01"

transactionDateTo
string<date>

Filter for bills whose date field is on or before this date, in ISO 8601 format (YYYY-MM-DD).

NOTE: QuickBooks Desktop interprets this 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).

Example:

"2025-02-01"

vendorIds
string[]

Filter for bills received from these vendors.

Example:
["80000001-1234567890"]
accountIds
string[]

Filter for bills associated with these accounts.

Example:
["80000001-1234567890"]
refNumberContains
string

Filter for bills whose refNumber contains this substring.

NOTE: If you use this parameter, you cannot also use refNumberStartsWith or refNumberEndsWith.

Example:

"BILL-1234"

refNumberStartsWith
string

Filter for bills whose refNumber starts with this substring.

NOTE: If you use this parameter, you cannot also use refNumberContains or refNumberEndsWith.

Example:

"BILL"

refNumberEndsWith
string

Filter for bills whose refNumber ends with this substring.

NOTE: If you use this parameter, you cannot also use refNumberContains or refNumberStartsWith.

Example:

"1234"

refNumberFrom
string

Filter for bills whose refNumber is greater than or equal to this value. If omitted, the range will begin with the first number of the list. Uses a numerical comparison for values that contain only digits; otherwise, uses a lexicographical comparison.

Example:

"BILL-0001"

refNumberTo
string

Filter for bills whose refNumber is less than or equal to this value. If omitted, the range will end with the last number of the list. Uses a numerical comparison for values that contain only digits; otherwise, uses a lexicographical comparison.

Example:

"BILL-9999"

currencyIds
string[]

Filter for bills in these currencies.

Example:
["80000001-1234567890"]
paymentStatus
enum<string>
default:all

Filter for bills that are paid, not paid, or both.

Available options:
all,
paid,
not_paid
Example:

"paid"

includeLineItems
boolean
default:true

Whether to include line items in the response. Defaults to true.

Example:

true

includeLinkedTransactions
boolean
default:false

Whether to include linked transactions in the response. Defaults to false. For example, a payment linked to the corresponding bill.

Example:

false

Response

200 - application/json

Returns a list of bills.

The response is of type object.