List all customers
Returns a list of customers. Use the cursor parameter to paginate through the results.
IMPORTANT: If this request times out or is slow, set excludeAlternateShippingAddresses=true to significantly improve performance. Use the cursor parameter to paginate through the results.
Query parameters
Filter for specific customers 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 customers 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" ]
Filter for specific customers by their full-name(s), case-insensitive. Like id, fullName is a unique identifier for a customer, formed by by combining the names of its parent objects with its own name, separated by colons. For example, if a customer is under "ABC Corporation" and has the name "Website Redesign Project", its fullName would be "ABC Corporation:Website Redesign Project".
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 customers by their full-name(s), case-insensitive. Like id, fullName is a unique identifier for a customer, formed by by combining the names of its parent objects with its own name, separated by colons. For example, if a customer is under "ABC Corporation" and has the name "Website Redesign Project", its fullName would be "ABC Corporation:Website Redesign Project".
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.
[ "ABC Corporation:Website Redesign Project" ]
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.
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.
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.
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.
Filter for customers that are active, inactive, or both.
Filter for customers that are active, inactive, or both.
Filter for customers 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-01 → 2025-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.
Filter for customers 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-01 → 2025-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.
Filter for customers 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-01 → 2025-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.
Filter for customers 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-01 → 2025-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.
Filter for customers whose name contains this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.
Filter for customers whose name contains this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.
Filter for customers whose name starts with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.
Filter for customers whose name starts with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.
Filter for customers whose name ends with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.
Filter for customers whose name ends with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.
Filter for customers whose name is alphabetically greater than or equal to this value.
Filter for customers whose name is alphabetically greater than or equal to this value.
Filter for customers whose name is alphabetically less than or equal to this value.
Filter for customers whose name is alphabetically less than or equal to this value.
Filter for customers whose totalBalance equals this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance equals this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is greater than this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is greater than this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is greater than or equal to this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is greater than or equal to this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is less than this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is less than this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is less than or equal to this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers whose totalBalance is less than or equal to this amount, represented as a decimal string. You can only use one total-balance filter at a time.
Filter for customers in these currencies.
Filter for customers in these currencies.
[ "80000001-1234567890" ]
Filter for customers of these classes. A class is a way end-users can categorize customers in QuickBooks.
Filter for customers of these classes. A class is a way end-users can categorize customers in QuickBooks.
[ "80000001-1234567890" ]
Excludes alternate shipping addresses from each customer returned by the list request. When true, the response returns alternateShippingAddresses as null instead of fetching the address array. Use this when your integration does not need alternate shipping addresses. This significantly improves performance for company files where some customers have many saved shipping addresses (sometimes dozens or hundreds).
Excludes alternate shipping addresses from each customer returned by the list request. When true, the response returns alternateShippingAddresses as null instead of fetching the address array. Use this when your integration does not need alternate shipping addresses. This significantly improves performance for company files where some customers have many saved shipping addresses (sometimes dozens or hundreds).
Headers
The ID of the End-User to receive this request.
The ID of the End-User to receive this request.
Response
Returns a list of customers.
Example response
{
"objectType": "list",
"url": "/v1/quickbooks-desktop/customers",
"data": [
{
"id": "80000001-1234567890",
"objectType": "qbd_customer",
"createdAt": "2025-01-01T12:34:56+00:00",
"updatedAt": "2025-02-01T12:34:56+00:00",
"revisionNumber": "1721172183",
"name": "Website Redesign Project",
"fullName": "ABC Corporation:Website Redesign Project",
"isActive": true,
"class": {
"id": "80000001-1234567890",
"fullName": "Consulting"
},
"parent": {
"id": "80000001-1234567890",
"fullName": "ABC Corporation"
},
"sublevel": 1,
"companyName": "Acme Corporation",
"salutation": "Dr.",
"firstName": "John",
"middleName": "A.",
"lastName": "Doe",
"jobTitle": "Purchasing Manager",
"billingAddress": {
"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"
},
"alternateShippingAddresses": [
{
"name": "Alternate shipping address",
"line1": "Conductor Labs Inc.",
"line2": "540 Market St.",
"line3": "Suite 100",
"city": "San Francisco",
"state": "CA",
"postalCode": "94110",
"country": "United States",
"note": "Conductor HQ",
"isDefaultShippingAddress": true
}
],
"phone": "+1-555-123-4567",
"alternatePhone": "+1-555-987-6543",
"fax": "+1-555-555-1212",
"email": "customer@example.com",
"ccEmail": "manager@example.com",
"contact": "Jane Smith",
"alternateContact": "Bob Johnson",
"customContactFields": [
{
"name": "Main Phone",
"value": "555-123-4567"
}
],
"additionalContacts": [
{
"id": "80000001-1234567890",
"objectType": "qbd_contact",
"createdAt": "2025-01-01T12:34:56+00:00",
"updatedAt": "2025-02-01T12:34:56+00:00",
"revisionNumber": "1721172183",
"name": "Jane Smith",
"salutation": "Dr.",
"firstName": "John",
"middleName": "A.",
"lastName": "Doe",
"jobTitle": "Purchasing Manager",
"customContactFields": [
{
"name": "Main Phone",
"value": "555-123-4567"
}
]
}
],
"customerType": {
"id": "80000001-1234567890",
"fullName": "Retail Customer"
},
"terms": {
"id": "80000001-1234567890",
"fullName": "Net 30"
},
"salesRepresentative": {
"id": "80000001-1234567890",
"fullName": "Jane Doe"
},
"balance": "1000.00",
"totalBalance": "5000.00",
"salesTaxCode": {
"id": "80000001-1234567890",
"fullName": "Non"
},
"salesTaxItem": {
"id": "80000001-1234567890",
"fullName": "State Sales Tax"
},
"salesTaxCountry": "us",
"resaleNumber": "123456789",
"accountNumber": "1010",
"creditLimit": "5000.00",
"preferredPaymentMethod": {
"id": "80000001-1234567890",
"fullName": "Credit Card"
},
"creditCard": {
"number": "xxxxxxxxxxxx1234",
"expirationMonth": 12,
"expirationYear": 2024,
"name": "John Doe",
"address": "1234 Main St, Anytown, USA, 12345",
"postalCode": "12345"
},
"jobStatus": "in_progress",
"jobStartDate": "2024-01-15",
"jobProjectedEndDate": "2024-12-31",
"jobEndDate": "2024-11-30",
"jobDescription": "Kitchen renovation project for residential client.",
"jobType": {
"id": "80000001-1234567890",
"fullName": "Installation"
},
"note": "Our favorite customer.",
"additionalNotes": [
{
"id": 1,
"date": "2024-01-01",
"note": "This is a fun note."
}
],
"preferredDeliveryMethod": "email",
"priceLevel": {
"id": "80000001-1234567890",
"fullName": "Gold Member Pricing"
},
"externalId": "12345678-abcd-1234-abcd-1234567890ab",
"taxRegistrationNumber": "GB123456789",
"currency": {
"id": "80000001-1234567890",
"fullName": "USD"
},
"customFields": [
{
"ownerId": "0",
"name": "Customer Rating",
"type": "string_1024_type",
"value": "Premium"
}
]
}
],
"nextCursor": "12345678-abcd-abcd-example-1234567890ab",
"remainingCount": 10
}